⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setselectionsymbolstask.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 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 + -