package edu.ucdavis.cstars.client.tasks; import com.google.gwt.core.client.JavaScriptObject; import edu.ucdavis.cstars.client.callback.GenerateRendererCallback; import edu.ucdavis.cstars.client.dojo.Deferred; import edu.ucdavis.cstars.client.event.ErrorHandler; import edu.ucdavis.cstars.client.event.GenerateRendererHandler; import edu.ucdavis.cstars.client.layers.LayerDataSource; import edu.ucdavis.cstars.client.layers.LayerMapSource; /** * The GenerateRendererTask class creates a renderer based on a classification definition and optional where * clause. The classification definition is used to define the base symbol and color ramp for the renderer. * The output renderer can be applied to graphics layers, feature layers or dynamic layers. The GenerateRendererTask * is available for map service or tables that support the generateDataClasses operation (version 10.1 or greater). * * @author Justin Merz */ public class GenerateRendererTask { protected GenerateRendererTask() {} /** * Creates a new GenerateRendererTask object. * * @return GenerateRendererTask */ public static native GenerateRendererTask create(String url) /*-{ if( !@edu.ucdavis.cstars.client.tasks.GenerateRendererTask::assertLoaded()() ) return {}; return new $wnd.esri.tasks.GenerateRendererTask(url); }-*/; /** * Creates a new GenerateRendererTask object. * * @return GenerateRendererTask */ public static native GenerateRendererTask create(String url, Options options) /*-{ if( !@edu.ucdavis.cstars.client.tasks.GenerateRendererTask::assertLoaded()() ) return {}; return new $wnd.esri.tasks.GenerateRendererTask(url, options); }-*/; /** * Check that the esri.tasks.closestfacility has been loaded * * @return boolean */ public static native boolean assertLoaded() /*-{ if( $wnd.esri.tasks.GenerateRendererTask ) return true; $wnd.alert("The ESRI_TASKS_GENERATERENDERERTASK package has not been loaded"); return false; }-*/; /** * Perform a classification on the layer or table resource. Upon successful completion of the classification operation the onComplete * event is fired and the optional callback function is invoked. The result is a renderer object that can be applied to graphics layers, * feature layers or dynamic layers. * * @param generateRendererParameters - A GenerateRendererParameters object that defines the classification definition and an optional * where clause. * @param callback - This handler will be called when the operation is complete * @return Deferred */ public final native Deferred execute(GenerateRendererParameters generateRendererParameters, GenerateRendererCallback callback) /*-{ return this.execute(generateRendererParameters, function(renderer) { callback.@edu.ucdavis.cstars.client.callback.GenerateRendererCallback::onComplete(Ledu/ucdavis/cstars/client/renderer/Renderer;)(renderer); }, function(error) { callback.@edu.ucdavis.cstars.client.callback.GenerateRendererCallback::onError(Ledu/ucdavis/cstars/client/Error;)(error); } ); }-*/; /** * Perform a classification on the layer or table resource. Upon successful completion of the classification operation the onComplete * event is fired and the optional callback function is invoked. The result is a renderer object that can be applied to graphics layers, * feature layers or dynamic layers. * * @param generateRendererParameters - A GenerateRendererParameters object that defines the classification definition and an optional * where clause. * @return Deferred */ public final native Deferred execute(GenerateRendererParameters generateRendererParameters) /*-{ return this.execute(generateRendererParameters); }-*/; /** * * @param handler - Fired when the GenerateRendererTask solve is complete. */ public final native void addCompleteHandler(GenerateRendererHandler handler) /*-{ $wnd.dojo.connect( this, "onComplete", function(renderer) { handler.@edu.ucdavis.cstars.client.event.GenerateRendererHandler::onComplete(Ledu/ucdavis/cstars/client/renderer/Renderer;)(renderer); } ); }-*/; /** * * @param handler - Fired when an error occurs during task execution. */ public final native void addErrorHandler(ErrorHandler handler) /*-{ $wnd.dojo.connect( this, "onError", function(error) { handler.@edu.ucdavis.cstars.client.event.ErrorHandler::onError(Ledu/ucdavis/cstars/client/Error;)(error); } ); }-*/; public static class Options extends JavaScriptObject { protected Options() {} /** * * @param gdbVersion - Specify the geodatabase version to display. (As of v2.7). * Requires ArcGIS Server service 10.1 or greater */ public final native void setGdbVersion(String gdbVersion) /*-{ this["gdbVersion"] = gdbVersion; }-*/; /** * * @param source - The dynamic layer source. Required when the GenerateRenderer url is set to * http://<map service url>/dynamicLayer. (As of v2.7). Requires ArcGIS Server service 10.1 or greater */ public final native void setSource(LayerMapSource source) /*-{ this["source"] = source; }-*/; /** * * @param source - The table source. Required when the GenerateRenderer url is set to * http://<map service url>/dynamicLayer. (As of v2.7). Requires ArcGIS Server service 10.1 or greater */ public final native void setSource(LayerDataSource source) /*-{ this["source"] = source; }-*/; } }