All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gwtopenmaps.openlayers.client.util.JSObject Maven / Gradle / Ivy

There is a newer version: 1.1.0
Show newest version
package org.gwtopenmaps.openlayers.client.util;


import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Element;

/**
 * 

* A JSObject is an opaque handle to a JavaScript object. Like it's parent it * cannot be created directly. A JSObject has to be created via JSNI or via the * static factory method createJSObject. * * It expands upon it's parent by offering several convenience functions, such as * setter and getter methods to set properties on the JSObject. A property can be * a number, boolean or string, but also another JSObject or a DOM Element. * To set a function on a JSObject, it can be created via JSNI, returned as a JSObject and set as property. *

*

* The purpose of the setter and getter methods is to reduce the amount of JSNI code * necessary for working with JavaScript objects. *

* * @author Erdem Gunay * @author Edwin Commandeur - Atlis EJS * */ public class JSObject extends JavaScriptObject { protected JSObject(){ super(); } public static JSObject createJSObject(){ return JSObjectHelper.createObject(); } public static JSObject createJSFunction(){ return JSObjectHelper.createFunction(); } public static JSObject createJSArray(){ return JSObjectHelper.createArray(); } //TODO: implement setProperty and getProperty methods here public final void setProperty(String name, int value){ JSObjectHelper.setProperty(this, name, value); } public final int getPropertyAsInt(String name){ return JSObjectHelper.getPropertyAsInt(this, name); } public final void setProperty(String name, String value){ JSObjectHelper.setProperty(this, name, value); } public final String getPropertyAsString(String name){ return JSObjectHelper.getPropertyAsString(this, name); } public final void setProperty(String name, boolean value){ JSObjectHelper.setProperty(this, name, value); } public final boolean getPropertyAsBoolean(String name){ return JSObjectHelper.getPropertyAsBoolean(this, name); } public final void setProperty(String name, float value){ JSObjectHelper.setProperty(this, name, value); } public final float getPropertyAsFloat(String name){ return JSObjectHelper.getPropertyAsFloat(this, name); } public final void setProperty(String name, double value){ JSObjectHelper.setProperty(this, name, value); } public final double getPropertyAsDouble(String name){ return JSObjectHelper.getPropertyAsDouble(this, name); } public final void setProperty(String name, Element value){ JSObjectHelper.setProperty(this, name, value); } public final Element getPropertyAsDomElement(String name){ return JSObjectHelper.getPropertyAsDomElement(this, name); } public final void setProperty(String name, JSObject value){ JSObjectHelper.setProperty(this, name, value); } public final JSObject getProperty(String name){ return JSObjectHelper.getProperty(this, name); } /** * Let's you inspect the names of properties of a javascript object. * * @return property names - A String with the names of all the properties * of the object, separated by a comma. For example: prop1,prop2,prop3. */ public final String getPropertyNames(){ return JSObjectHelper.getPropertyNames(this); } public final boolean hasProperty(String name){ return JSObjectHelper.hasProperty(this, name); } /** * Unset/Clear the property with the given name. Uses the javascript operator delete * @param object The object in which the property exists * @param name The name of the property */ public final void unsetProperty(String name){ JSObjectHelper.unsetProperty(this, name); } /** * Checks whether the JSObject is a JavaScript Array by duck typing. If the * JSObject is a JavaScript Array it is returned as is, otherwise a JavaScript * Array is returned with the JSObject as element. * * @return JSObject - A JavaScript Array */ public final JSObject ensureOpaqueArray(){ return JSObjectHelper.ensureOpaqueArray(this); } /** * Takes a property name of a JSObject that is a javascript array. It ensures * the object is an array by calling ensureOpaqueArray so you don't have to * * @param name * @return JSObject[] */ public final JSObject[] getPropertyAsArray(String name){ JSObject JSArray = JSObjectHelper.ensureOpaqueArray(this.getProperty(name)); String[] indices = JSArray.getPropertyNames().split(","); JSObject[] arrayOfProperties = new JSObject[indices.length]; int i = 0; for (String index : indices) { arrayOfProperties[i++] = JSArray.getProperty(index); } return arrayOfProperties; } //TODO: do we need a setProperty(array[])? }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy