package edu.ucdavis.cstars.client.symbol;
import com.google.gwt.core.client.JavaScriptObject;
import edu.ucdavis.cstars.client.dojo.Color;
/**
* Line symbols are used to draw linear features on the graphics layer. SimpleLineSymbol is either
* a solid line or a predefined pattern of dashes and dots.
*
* @author Justin Merz
*/
public class SimpleLineSymbol extends LineSymbol {
public static enum StyleType {
NOT_SET(""),
STYLE_DASH("dash"),
STYLE_DASHDOT("dashdot"),
STYLE_DASHDOTDOT("longdashdotdot"),
STYLE_DOT("dot"),
STYLE_NULL("none"),
STYLE_SOLID("solid");
private String val;
private StyleType(String value){
val = value;
}
public String getValue(){
return val;
}
}
protected SimpleLineSymbol() {}
/**
* Creates a new SimpleLineSymbol object using a JSON object.
*
* @param json - JSON object representing the SimpleLineSymbol.
* @return SimpleLineSymbol
*/
public static native SimpleLineSymbol create(JavaScriptObject json) /*-{
return new $wnd.esri.symbol.SimpleLineSymbol(json);
}-*/;
/**
* Creates a new empty SimpleLineSymbol object.
*
* @return SimpleLineSymbol
*/
public static native SimpleLineSymbol create() /*-{
return new $wnd.esri.symbol.SimpleLineSymbol();
}-*/;
/**
* Creates a new SimpleLineSymbol object with parameters.
*
* @param style - line style.
* @param color - line color.
* @param width - Width of the line in pixels.
* @return SimpleLineSymbol
*/
public static SimpleLineSymbol create(StyleType style, Color color, int width ){
return _create(style.getValue(), color, width);
}
private static native SimpleLineSymbol _create(String style, Color color, int width) /*-{
return new $wnd.esri.symbol.SimpleLineSymbol(style, color, width);
}-*/;
/**
* The line style. The default value is STYLE_SOLID.
*
* @return StyleLine
*/
public final StyleType getStyle() {
String s = _getStyle();
for( int i = 0; i < StyleType.values().length; i++ ){
if( StyleType.values()[i].getValue().contentEquals(s) ){
return StyleType.values()[i];
}
}
return StyleType.NOT_SET;
}
private final native String _getStyle() /*-{
return this.style;
}-*/;
/**
* Sets the line symbol style.
*
* @param style - Line style.
* @return SimpleFillSymbol
*/
public final SimpleFillSymbol setStyle(StyleType style) {
return _setStyle(style.getValue());
}
private final native SimpleFillSymbol _setStyle(String style) /*-{
return this.setStyle(style);
}-*/;
}