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

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

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


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


/**
 * Static methods for working with {@link JSObject} objects.
 * 

* The getProperty/setProperty methods are convenience methods for reducing * the amount of JSNI code that is necessary for creating JSObject wrappers. * Be aware: getProperty methods can die horribly at runtime if * property does not exist. *

* ECMA-262 (Ecmascript = Javascript) defines an object as an unordered collection of * properties each of which contains a primitive value, object, or function. * * @author Edwin Commandeur - Atlis EJS * @author Alexander Solovets */ public class JSObjectHelper { public static native JSObject createObject() /*-{ return new $wnd.Object(); }-*/; public static native JSObject createFunction() /*-{ return new $wnd.Function(); }-*/; public static native JSObject createArray() /*-{ return new $wnd.Array(); }-*/; //TODO: implement setProperty getProperty methods // and remove setAttribute methods from ElementHelper that actually set properies public static native void setProperty(JSObject object, String name, int value) /*-{ object[name] = value; }-*/; public static native int getPropertyAsInt(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? 0 : ret; }-*/; public static native void setProperty(JSObject object, String name, String value) /*-{ object[name] = value; }-*/; public static native String getPropertyAsString(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? null : ret; }-*/; public static native void setProperty(JSObject object, String name, boolean value) /*-{ object[name] = value; }-*/; public static native boolean getPropertyAsBoolean(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? 0 : ret; }-*/; public static native void setProperty(JSObject object, String name, float value) /*-{ object[name] = value; }-*/; public static native float getPropertyAsFloat(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? 0 : ret; }-*/; public static native void setProperty(JSObject object, String name, double value) /*-{ object[name] = value; }-*/; public static native double getPropertyAsDouble(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? 0 : ret; }-*/; public static native void setProperty(JSObject object, String name, JSObject value) /*-{ object[name] = value; }-*/; public static native JSObject getProperty(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? null : ret; }-*/; public static native void setProperty(JSObject object, String name, Element value) /*-{ object[name] = value; }-*/; public static native Element getPropertyAsDomElement(JSObject object, String name) /*-{ var ret = object[name]; return (ret === undefined) ? null : ret; }-*/; public static native String getPropertyNames(JSObject object) /*-{ var ret = ""; for (var i in object){ if(ret == ""){ ret = ret + i } else { ret = ret + "," + i; } } return ret; }-*/; public static native boolean hasProperty(JSObject object, String name) /*-{ if(object[name] != undefined){return true}else{return false}; }-*/; /** * 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 static native void unsetProperty(JSObject object, String name) /*-{ delete object[name]; }-*/; /** * Utility method for creating arguments to functions that take an array of objects. * * @param object - an opaque handle on a JavaScript object * @return object - an opaque handle on a JavaScript object that is surely an Array */ public static native JSObject ensureOpaqueArray(JSObject object)/*-{ //GWT breaks instanceof, so use a duck type test for testing if object is Array if(object.push && object.splice && object.unshift){ return object; }else{ return [object]; } }-*/; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy