📄 setselectionsymbolstask.java
字号:
package com.esri.solutions.jitk.web.tasks.preferences.selectionsymbols;
import java.util.LinkedHashMap;
import java.util.Map;
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.WebSimpleLineSymbol;
import com.esri.adf.web.data.symbol.WebSimpleMarkerSymbol;
import com.esri.adf.web.data.symbol.WebSimplePolygonSymbol;
import com.esri.adf.web.data.tasks.TaskInfo;
import com.esri.adf.web.faces.event.TaskEvent;
import com.esri.solutions.jitk.common.personalization.IPersonalizable;
import com.esri.solutions.jitk.common.personalization.IPersonalizationContext;
import com.esri.solutions.jitk.personalization.PersonalizationException;
import com.esri.solutions.jitk.personalization.data.IPreferenceSettings;
import com.esri.solutions.jitk.personalization.data.beans.v1.SelectionSymbolSetType;
import com.esri.solutions.jitk.web.tasks.RenderAwareTaskDescription;
@SuppressWarnings("deprecation")
public class SetSelectionSymbolsTask extends SetPolygonSymbolsTask implements IPersonalizable {
private static final long serialVersionUID = -1466547566184122606L;
private static final Logger _logger = Logger.getLogger(SetSelectionSymbolsTask.class);
private WebContext context = null;
private TaskInfo taskInfo = null;
protected IPersonalizationContext _PersonalizationContext;
private int[] POINT_MARKER_TYPE = { WebSimpleMarkerSymbol.CIRCLE, WebSimpleMarkerSymbol.SQUARE, WebSimpleMarkerSymbol.TRIANGLE, WebSimpleMarkerSymbol.CROSS, WebSimpleMarkerSymbol.STAR };
private String[] POINT_MARKER_DESC = { "Circle", "Square", "Triangle", "Cross", "Star" };
private String[] LINE_TYPE = { WebSimpleLineSymbol.SOLID, WebSimpleLineSymbol.DASH, WebSimpleLineSymbol.DOT, WebSimpleLineSymbol.DASH_DOT, WebSimpleLineSymbol.DASH_DOT_DOT};
private String[] LINE_TYPE_DESC = { "Solid", "Dash", "Dot", "Dash dot", "Dash dot dot" };
private String[] JOIN_TYPE = { WebSimpleLineSymbol.ROUND, WebSimpleLineSymbol.MITER, WebSimpleLineSymbol.BEVEL };
private String[] JOIN_TYPE_DESC = { "Round", "Miter", "Bevel" };
private String[] CAP_TYPE = { WebSimpleLineSymbol.ROUND, WebSimpleLineSymbol.SQUARE }; //WebSimpleLineSymbol.BUTT,
private String[] CAP_TYPE_DESC = { "Round", "Square" }; //"Butt",
private String[] POLYGON_BOUNDARY_TYPE = { WebSimplePolygonSymbol.SOLID, WebSimplePolygonSymbol.DASH, WebSimplePolygonSymbol.DASH_DOT, WebSimplePolygonSymbol.DASH_DOT_DOT, WebSimplePolygonSymbol.DOT };
private String[] POLYGON_BOUNDARY_TYPE_DESC = { "Solid", "Dash", "Dash dot", "Dash dot dot", "Dot" };
private String[] POLYGON_FILL_TYPE = {
WebSimplePolygonSymbol.SOLID,
WebSimplePolygonSymbol.TRANSPARENT,
WebSimplePolygonSymbol.GRAY,
WebSimplePolygonSymbol.LIGHTGRAY,
WebSimplePolygonSymbol.DARKGRAY,
WebSimplePolygonSymbol.HORIZONTAL,
WebSimplePolygonSymbol.VERTICAL,
WebSimplePolygonSymbol.CROSS,
WebSimplePolygonSymbol.DIAGCROSS,
WebSimplePolygonSymbol.BDIAGONAL,
WebSimplePolygonSymbol.FDIAGONAL
};
private String[] POLYGON_FILL_DESC = {
"Solid",
"Transparent",
"Gray",
"Light Gray",
"Dark Gray",
"Horizontal Lines",
"Vertical Lines",
"Cross",
"Diagonal Cross",
"Backward Diagonal",
"Forward Diagonal"
};
private String _preview = null;
private String _tab1 = null;
private String _tab2 = null;
private String _tab3 = null;
private String _footerNoteTab1 = null;
private String _footerNoteTab2 = null;
private String _footerNoteTab3 = null;
protected boolean readFromPreferences() throws NullPointerException, PersonalizationException {
if(_PersonalizationContext == null) {
throw new NullPointerException("PersonalizationContext object cannot be null.");
}
IPreferenceSettings preferences = _PersonalizationContext.getData().getPreferenceSettings();
SelectionSymbolSetType symbolSet = preferences.getPreferenceSettings().getSelectionSymbols();
if(symbolSet != null) {
return readFromPreferences(symbolSet.getPointSymbol()) &&
readFromPreferences(symbolSet.getLineSymbol()) &&
readFromPreferences(symbolSet.getPolygonSymbol());
}
return false;
}
public void saveToPreferences() throws NullPointerException, JAXBException, PersonalizationException {
if(_PersonalizationContext == null) {
throw new NullPointerException("PersonalizationContext object cannot be null.");
}
IPreferenceSettings preferences = _PersonalizationContext.getData().getPreferenceSettings();
SelectionSymbolSetType symbolSet = preferences.getPreferenceSettings().getSelectionSymbols();
symbolSet.setPointSymbol(getPointSymbolType());
symbolSet.setLineSymbol(getLineSymbolType());
symbolSet.setPolygonSymbol(getPolygonSymbolType());
preferences.getPreferenceSettings().setSelectionSymbols(symbolSet);
preferences.save();
}
public void saveToSession() throws NullPointerException {
WebContext context = getContext();
if(context == null) {
throw new NullPointerException("WebContext object cannot be null.");
}
WebQuery webQuery = context.getWebQuery();
webQuery.setPointGraphicSymbol(getSimpleMarkerSymbol());
webQuery.setLineGraphicSymbol(getSimpleLineSymbol());
webQuery.setPolygonGraphicSymbol(getSimplePolygonSymbol());
}
public void save(TaskEvent event) {
_logger.debug("Saving selection symbol settings");
((RenderAwareTaskDescription)taskInfo.getTaskDescriptor()).setShouldRender(true);
try {
saveToSession();
saveToPreferences();
renderResourceMessage("jitk.task.setSelectionSymbols.ui.msg.setSuccess", messageType.SUCCESS);
} catch(Exception ex) {
renderResourceMessage("jitk.task.setSelectionSymbols.ui.msg.setFailure", messageType.ERROR);
_logger.error("Selection symbology persistance failed: " + ex.toString());
}
}
public void init(WebContext context) {
try {
if(readFromPreferences())
saveToSession();
else
readFromSession(context);
} catch(Exception ex) { _logger.error("Reading symbology from preferences failed: " + ex.toString()); readFromSession(context); }
}
public WebContext getContext() {
return context;
}
public void setContext(WebContext context) {
if (context != null) {
this.context = context;
init(context);
} else taskInfo.getTaskDescriptor().setDisabled(true);
}
public void setPersonalizationContext(IPersonalizationContext ctx) {
if (ctx == null) {
_logger.error("Personalization context passed as null");
throw new NullPointerException();
} else _PersonalizationContext = ctx;
}
public TaskInfo getTaskInfo() {
if (this.context == null)
taskInfo.getTaskDescriptor().setDisabled(true);
return this.taskInfo;
}
public void setTaskInfo(TaskInfo taskInfo) {
this.taskInfo = taskInfo;
}
public Map<Integer, String> getPointMarkerTypeList(){
LinkedHashMap<Integer, String> newLayerList = new LinkedHashMap<Integer, String>();
for(int i=0; i < POINT_MARKER_TYPE.length; i++){
newLayerList.put(new Integer(POINT_MARKER_TYPE[i]), POINT_MARKER_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getLineTypeList(){
LinkedHashMap<String, String> newLayerList = new LinkedHashMap<String, String>();
for(int i=0; i < LINE_TYPE.length; i++) {
newLayerList.put(LINE_TYPE[i], LINE_TYPE_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getJoinTypeList(){
LinkedHashMap<String, String> newLayerList = new LinkedHashMap<String, String>();
for(int i=0; i < JOIN_TYPE.length; i++) {
newLayerList.put(JOIN_TYPE[i], JOIN_TYPE_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getCapTypeList(){
LinkedHashMap<String, String> newLayerList = new LinkedHashMap<String, String>();
for(int i=0; i < CAP_TYPE.length; i++) {
newLayerList.put(CAP_TYPE[i], CAP_TYPE_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getPolygonBoundaryTypeList(){
LinkedHashMap<String, String> newLayerList = new LinkedHashMap<String, String>();
for(int i=0; i < POLYGON_BOUNDARY_TYPE.length; i++) {
newLayerList.put(POLYGON_BOUNDARY_TYPE[i], POLYGON_BOUNDARY_TYPE_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getPolygonFillTypeList(){
LinkedHashMap<String, String> newLayerList = new LinkedHashMap<String, String>();
for(int i=0; i < POLYGON_FILL_TYPE.length; i++) {
newLayerList.put(POLYGON_FILL_TYPE[i], POLYGON_FILL_DESC[i]);
}
return newLayerList;
}
public Map<String, String> getPolygonFillIntervalList() {
Map<String, String> intervals = new LinkedHashMap<String, String>();
for (int i = 1; i < 42; i++) {
intervals.put(String.valueOf(i), String.valueOf(i) + " pixels");
}
return intervals;
}
public Map<String, String> getSizeList(){
Map<String, String> sizes = new LinkedHashMap<String, String>();
for (int i = 0; i < 42; i++) {
sizes.put(String.valueOf(i), String.valueOf(i) + " pixels");
}
return sizes;
}
public Map<String, String> getTransparencyList() {
Map<String, String> trans = new LinkedHashMap<String, String>();
for (double i=0; i<=100; i+=10) {
trans.put(String.valueOf(1.0 - i/100), String.valueOf(Math.round(i)) + "%");
}
return trans;
}
public Map<String, String> getAngleList() {
Map<String, String> angles = new LinkedHashMap<String, String>();
for (double i=0; i<=360; i+=5) {
angles.put(String.valueOf(i), String.valueOf(Math.round(i)) + " degrees");
}
return angles;
}
/**
* Get preview
*/
public String getPreview(){
return this._preview;
}
/**
* Set preview
*/
public void setPreview(String preview){
this._preview = preview;
}
/**
* Get tab 1
*/
public String getTab1(){
return this._tab1;
}
/**
* Set tab 1
*/
public void setTab1(String tab){
this._tab1 = tab;
}
/**
* Get tab 2
*/
public String getTab2(){
return this._tab2;
}
/**
* Set tab 2
*/
public void setTab2(String tab){
this._tab2 = tab;
}
/**
* Get tab 3
*/
public String getTab3(){
return this._tab3;
}
/**
* Set tab 3
*/
public void setTab3(String tab){
this._tab3 = tab;
}
/**
* Get footer note on tab 1
*/
public String getFooterNoteTab1(){
return this._footerNoteTab1;
}
/**
* Set footer note on tab 1
*/
public void setFooterNoteTab1(String footerNote){
this._footerNoteTab1 = footerNote;
}
/**
* Get footer note on tab 2
*/
public String getFooterNoteTab2(){
return this._footerNoteTab2;
}
/**
* Set footer note on tab 2
*/
public void setFooterNoteTab2(String footerNote){
this._footerNoteTab2 = footerNote;
}
/**
* Get footer note on tab 3
*/
public String getFooterNoteTab3(){
return this._footerNoteTab3;
}
/**
* Set footer note on tab 3
*/
public void setFooterNoteTab3(String footerNote){
this._footerNoteTab3 = footerNote;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -