📄 setpolygonsymbolstask.java
字号:
package com.esri.solutions.jitk.web.tasks.preferences.selectionsymbols;
import javax.xml.bind.JAXBException;
import org.apache.log4j.Logger;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.query.WebQuery;
import com.esri.adf.web.data.symbol.WebSimplePolygonSymbol;
import com.esri.solutions.jitk.personalization.PersonalizationException;
import com.esri.solutions.jitk.personalization.data.beans.v1.ObjectFactory;
import com.esri.solutions.jitk.personalization.data.beans.v1.PolygonSymbolType;
@SuppressWarnings("deprecation")
public class SetPolygonSymbolsTask extends SetLineSymbolsTask {
private static final long serialVersionUID = 1082560513788948618L;
private static final Logger _logger = Logger.getLogger(SetPolygonSymbolsTask.class);
protected String polygonBoundaryType;
protected int polygonBoundaryWidth;
protected String polygonBoundaryColor;
protected String polygonBoundaryCapType;
protected String polygonBoundaryJoinType;
protected double polygonBoundaryTransparency;
protected String polygonFillType;
protected String polygonFillColor;
protected int polygonFillInterval;
protected double polygonFillTransparency;
protected double polygonAngle;
protected boolean polygonAntialiasing;
protected boolean readFromPreferences(PolygonSymbolType pPolygonSymbol) throws PersonalizationException {
if (pPolygonSymbol != null) {
this.polygonBoundaryType = pPolygonSymbol.getLineType();
this.polygonBoundaryWidth = pPolygonSymbol.getWidth();
this.polygonBoundaryColor = toADFRgbColor(pPolygonSymbol.getColor());
this.polygonBoundaryCapType = pPolygonSymbol.getCapType();
this.polygonBoundaryJoinType = pPolygonSymbol.getJoinType();
this.polygonBoundaryTransparency = pPolygonSymbol.getTransparency();
this.polygonFillType = pPolygonSymbol.getFillType();
this.polygonFillColor = toADFRgbColor(pPolygonSymbol.getFillColor());
this.polygonFillInterval = pPolygonSymbol.getFillInterval();
this.polygonFillTransparency = pPolygonSymbol.getFillTransparency();
this.polygonAngle = pPolygonSymbol.getAngle();
this.polygonAntialiasing = pPolygonSymbol.isAntialiasing();
return true;
}
return false;
}
protected void readFromSession(WebContext context) {
super.readFromSession(context);
WebQuery webQuery = context.getWebQuery();
if (webQuery == null)
_logger.error("WebContext returned null WebQuery");
WebSimplePolygonSymbol polygonSymbol = webQuery.getPolygonGraphicSymbol();
if (polygonSymbol == null) {
//TODO: This is a work around to an ADF bug. Once the bug is resolve, these
//lines should be removed.
_logger.warn("WebQuery returned null PolygonGraphicSymbol - ADF Bug SRX00322");
_logger.warn("Working around ADF bug by generating polygon selection symbols");
polygonSymbol = generateNewPolygonSymbol();
webQuery.setPolygonGraphicSymbol(polygonSymbol);
}
this.polygonBoundaryType = polygonSymbol.getLineType();
this.polygonBoundaryWidth = polygonSymbol.getWidth();
this.polygonBoundaryColor = polygonSymbol.getColor();
this.polygonBoundaryCapType = polygonSymbol.getCapType();
this.polygonBoundaryJoinType = polygonSymbol.getJoinType();
this.polygonBoundaryTransparency = polygonSymbol.getTransparency();
this.polygonFillType = polygonSymbol.getFillType();
this.polygonFillColor = polygonSymbol.getFillColor();
this.polygonFillInterval = polygonSymbol.getFillInterval();
this.polygonFillTransparency = polygonSymbol.getFillTransparency();
this.polygonAngle = polygonSymbol.getAngle();
this.polygonAntialiasing = polygonSymbol.isAntialiasing();
}
public WebSimplePolygonSymbol generateNewPolygonSymbol() {
WebSimplePolygonSymbol polygonSymbol = new WebSimplePolygonSymbol();
polygonSymbol.setLineType(Val.chkStr(null, WebSimplePolygonSymbol.SOLID));
polygonSymbol.setWidth(Val.chkInt(null, 2));
polygonSymbol.setColor(Val.chkStr(null, "0,0,0"));
polygonSymbol.setCapType(Val.chkStr(null, WebSimplePolygonSymbol.BUTT));
polygonSymbol.setJoinType(Val.chkStr(null, WebSimplePolygonSymbol.ROUND));
polygonSymbol.setTransparency(Val.chkDbl(null, 1.0));
polygonSymbol.setFillType(Val.chkStr(null, WebSimplePolygonSymbol.SOLID));
polygonSymbol.setFillColor(Val.chkStr(null, "0,255,255"));
polygonSymbol.setFillInterval(Val.chkInt(null, 1));
polygonSymbol.setFillTransparency(Val.chkDbl(null, 1.0));
polygonSymbol.setAngle(0);
polygonSymbol.setAntialiasing(true);
return polygonSymbol;
}
public WebSimplePolygonSymbol getSimplePolygonSymbol() {
WebSimplePolygonSymbol polygonSymbol = new WebSimplePolygonSymbol();
polygonSymbol.setLineType(this.polygonBoundaryType);
polygonSymbol.setWidth(this.polygonBoundaryWidth);
polygonSymbol.setColor(this.polygonBoundaryColor);
polygonSymbol.setCapType(this.polygonBoundaryCapType);
polygonSymbol.setJoinType(this.polygonBoundaryJoinType);
polygonSymbol.setTransparency(this.polygonBoundaryTransparency);
polygonSymbol.setFillType(this.polygonFillType);
polygonSymbol.setFillColor(this.polygonFillColor);
polygonSymbol.setFillInterval(this.polygonFillInterval);
polygonSymbol.setFillTransparency(this.polygonFillTransparency);
polygonSymbol.setAngle(this.polygonAngle);
polygonSymbol.setAntialiasing(this.polygonAntialiasing);
//Java ADF throws error when attempting to set the bounder line type to
//anything but solid when the border width is set to zero
if (polygonSymbol.getWidth() <= 0) {
polygonSymbol.setLineType(WebSimplePolygonSymbol.SOLID);
}
return polygonSymbol;
}
protected PolygonSymbolType getPolygonSymbolType() throws JAXBException {
PolygonSymbolType pPolygonSymbol = new ObjectFactory().createPolygonSymbolType();
pPolygonSymbol.setLineType(this.polygonBoundaryType);
pPolygonSymbol.setWidth(this.polygonBoundaryWidth);
pPolygonSymbol.setColor(toRgbColorType(this.polygonBoundaryColor));
pPolygonSymbol.setCapType(this.polygonBoundaryCapType);
pPolygonSymbol.setJoinType(this.polygonBoundaryJoinType);
pPolygonSymbol.setTransparency(this.polygonBoundaryTransparency);
pPolygonSymbol.setFillType(this.polygonFillType);
pPolygonSymbol.setFillColor(toRgbColorType(this.polygonFillColor));
pPolygonSymbol.setFillInterval(this.polygonFillInterval);
pPolygonSymbol.setFillTransparency(this.polygonFillTransparency);
pPolygonSymbol.setAngle(this.polygonAngle);
pPolygonSymbol.setAntialiasing(this.polygonAntialiasing);
//Java ADF throws error when attempting to set the bounder line type to
//anything but solid when the border width is set to zero
if (pPolygonSymbol.getWidth() <= 0) {
pPolygonSymbol.setLineType(WebSimplePolygonSymbol.SOLID);
}
return pPolygonSymbol;
}
public String getPolygonBoundaryType() {
return polygonBoundaryType;
}
public void setPolygonBoundaryType(String polygonBoundaryType) {
this.polygonBoundaryType = polygonBoundaryType;
}
public int getPolygonBoundaryWidth() {
return polygonBoundaryWidth;
}
public void setPolygonBoundaryWidth(int polygonBoundaryWidth) {
this.polygonBoundaryWidth = polygonBoundaryWidth;
}
public String getPolygonBoundaryColor() {
return polygonBoundaryColor;
}
public void setPolygonBoundaryColor(String polygonBoundaryColor) {
this.polygonBoundaryColor = polygonBoundaryColor;
}
public double getPolygonBoundaryTransparency() {
return polygonBoundaryTransparency;
}
public void setPolygonBoundaryTransparency(double polygonBoundaryTransparency) {
this.polygonBoundaryTransparency = polygonBoundaryTransparency;
}
public String getPolygonBoundaryCapType() {
return polygonBoundaryCapType;
}
public void setPolygonBoundaryCapType(String polygonBoundaryCapType) {
this.polygonBoundaryCapType = polygonBoundaryCapType;
}
public String getPolygonBoundaryJoinType() {
return polygonBoundaryJoinType;
}
public void setPolygonBoundaryJoinType(String polygonBoundaryJoinType) {
this.polygonBoundaryJoinType = polygonBoundaryJoinType;
}
public String getPolygonFillType() {
return polygonFillType;
}
public void setPolygonFillType(String polygonFillType) {
this.polygonFillType = polygonFillType;
}
public String getPolygonFillColor() {
return polygonFillColor;
}
public void setPolygonFillColor(String polygonFillColor) {
this.polygonFillColor = polygonFillColor;
}
public int getPolygonFillInterval() {
return polygonFillInterval;
}
public void setPolygonFillInterval(int polygonFillInterval) {
this.polygonFillInterval = polygonFillInterval;
}
public double getPolygonFillTransparency() {
return polygonFillTransparency;
}
public void setPolygonFillTransparency(double polygonFillTransparency) {
this.polygonFillTransparency = polygonFillTransparency;
}
public double getPolygonAngle() {
return this.polygonAngle;
}
public void setPolygonAngle(double polygonAngle) {
this.polygonAngle = polygonAngle;
}
public boolean isPolygonAntialiasing() {
return this.polygonAntialiasing;
}
public void setPolygonAntialiasing(boolean polygonAntialiasing) {
this.polygonAntialiasing = polygonAntialiasing;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -