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

📄 shaperedliningtask.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.web.tasks.redlining.shape;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.esri.adf.web.data.WebMap;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.TaskEvent;

/**
 * This task supports the ability to add point, line and polygon to the graphics
 * layer. 
 */
public class ShapeRedliningTask extends ArcDrawingTask {
	private static final long serialVersionUID = 6375926442902315L;
	private static final Logger _logger = Logger.getLogger(ShapeRedliningTask.class);
	private static final String SHAPE_REDLINING_TASK = "Shape Redlining Task";

	private String _shapeProperties = null;
	private String _footerNote = null;

	private String _shapePreview = "";
	private String _selectShapeFeatures = "0";
	private String _deleteShapeMessage = null;
	private String _deleteSelectedShapeMessage = null;
	
	private String _legendPreview = null;
	private String _legendPointStyle = null;
	private String _legendLineStyle = null;
	private String _legendFillStyle = null;
	private String _legendBorderStyle = null;
	private String _legendArcStyle = null;
	private String _legendConcentricSettings = null;
	
	public ShapeRedliningTask() {
		
		_logger.debug("ShapeRedliningTask was successfully created.");
		
		setTaskInfo(new ShapeRedliningTaskInfo());
		setTaskName(SHAPE_REDLINING_TASK);
		
		initPointProperties();
		initLineProperites();
		initPolygonProperties();
		initArcProperties();
	}

	public void deleteAllShapes(TaskEvent event) {
		
		try {
			_logger.info("Deleting all shape redlines from map.");
			requestTaskRender();
			
			mgResource.deleteAllShapes();
			setSelectShapeFeatures("0");
			
			event.getWebContext().refresh();
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not delete all shape redlines from map.", ex);
		}
	}
	
	public void findElement(MapEvent event) {
		
		try {
			_logger.info("Selecting shape redlines for deletion.");
			requestTaskRender();
			
			mgResource.clearVertexSelection();
			mgResource.clearSelections();
			
			// Init LayerInfos in case they haven't been initialized yet
			if(mgResource.getLayerInfos().size() != 3) {
				List<String> layerNames = new ArrayList<String>();
				layerNames.add(mgResource.getPointLayerName());
				layerNames.add(mgResource.getLineLayerName());
				layerNames.add(mgResource.getPolygonLayerName());
				mgResource.setLayerInfos(layerNames);
			}
			
			setSelectShapeFeatures(Integer.toString(mgResource.selectShapes((WebExtent)event.getWebGeometry().toMapGeometry(event.getWebContext().getWebMap()), 1, false)));
			
			event.getWebContext().refresh();
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not select shape redlines for deletion: ", ex);
		}
	}

	public void deleteSelectShapes(TaskEvent event) {
		
		try {
			_logger.info("Deleting selected shape redlines.");
			requestTaskRender();
			
			mgResource.deleteSelectedShapes();
			mgResource.clearSelections();
			setSelectShapeFeatures("0");
			
			event.getWebContext().getWebQuery().clearGraphics();
			event.getWebContext().refresh();			
		
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not delete selected shape redlines.", ex);
		}
	}
	
	public void moveVertex(MapEvent event) {
		
		try {
			_logger.info("Moving vertex.");
			
			int selectCount = mgResource.getSelectedVertexCount();
			_logger.debug(selectCount + " shapes selected.");
		
			WebMap webMap = event.getWebContext().getWebMap();
			WebPoint point = (WebPoint) event.getWebGeometry().toMapGeometry(webMap);			
			
			if (selectCount == 0) {
				selectCount = mgResource.selectShapeVertex(point, 100);
				_logger.debug(selectCount + " vertices selected.");
			
			} 
			else {
				mgResource.moveSelectedVertex(webMap, point);
				mgResource.clearVertexSelection();
			}
			
			event.getWebContext().refresh();			
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not move vertex.", ex);			
		}
	}
	
	public void moveShape(MapEvent event) {
		
		try {
			_logger.info("Moving shape.");
			
			int selectCount = mgResource.getSelectedCount();
			_logger.debug(selectCount + " shapes selected.");
		
			WebMap webMap = event.getWebContext().getWebMap();
			WebGeometry webGeo = event.getWebGeometry();
			WebPoint point = (WebPoint) webGeo.toMapGeometry(webMap);			
			
			if (selectCount == 0) {
				selectCount = mgResource.selectShapes(point, 1, true);
				_logger.debug(selectCount + " shapes selected.");
			
			} 
			else {
				mgResource.moveSelectedShape(webMap, point);
				mgResource.clearSelections();
			}
			
			event.getWebContext().refresh();
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not move shape.", ex);			
		}		
	}

	public void clearSelectShapes(TaskEvent event){
		
		try {
			_logger.info("Clearing shape redlines.");
			requestTaskRender();
			
			mgResource.clearSelections();
			setSelectShapeFeatures("0");
			
			event.getWebContext().refresh();					
		} 
		catch (Exception ex) {
			renderExceptionMessage(ex);
			_logger.error("Could not clear redline shapes.", ex);
		}
	}

	public void setShapeProperties(String shapeProperties) {
		this._shapeProperties = shapeProperties;
	}

	public String getShapeProperties() {
		return this._shapeProperties;
	}
	
	/**
	 * Get footer note
	 */
	public String getFooterNote(){
		return this._footerNote;
	}

	/**
	 * Set footer note
	 */
	public void setFooterNote(String footerNote){
		this._footerNote = footerNote;
	}
	
	public Map<String, String> getSizeList(){
		
		Map<String, String> sizes = new LinkedHashMap<String, String>();		
		
		for (int i = 1; i < 11; i++){
			sizes.put(String.valueOf(i), String.valueOf(i));
		}
		
		return sizes;
	}

	public void setSelectShapeFeatures(String selectShapeFeatures){
		this._selectShapeFeatures = selectShapeFeatures;
	}

	public String getSelectShapeFeatures(){
		return this._selectShapeFeatures;
	}

	public String getDeleteShapeMessage(){
		return this._deleteShapeMessage;
	}

	public void setDeleteShapeMessage(String deleteShapeMessage){
		this._deleteShapeMessage = deleteShapeMessage;
	}

	public String getDeleteSelectedShapeMessage(){
		return this._deleteSelectedShapeMessage;
	}

	public void setDeleteSelectedShapeMessage(String deleteSelectedShapeMessage){
		this._deleteSelectedShapeMessage = deleteSelectedShapeMessage;
	}	
	
	public void setShapePreview(String shapePreview){
		this._shapePreview = shapePreview;
	}

	public String getShapePreview(){
		return this._shapePreview;
	}	
	
	public void setLegendPreview(String legendPreview){
		this._legendPreview = legendPreview;
	}
	public String getLegendPreview(){
		return this._legendPreview;
	}

	public void setLegendPointStyle(String legendPointStyle){
		this._legendPointStyle = legendPointStyle;
	}
	public String getLegendPointStyle(){
		return this._legendPointStyle;
	}
	
	public void setLegendLineStyle(String legendLineStyle){
		this._legendLineStyle = legendLineStyle;
	}
	public String getLegendLineStyle(){
		return this._legendLineStyle;
	}
	
	public void setLegendFillStyle(String legendFillStyle){
		this._legendFillStyle = legendFillStyle;
	}
	public String getLegendFillStyle(){
		return this._legendFillStyle;
	}
	
	public void setLegendBorderStyle(String legendBorderStyle){
		this._legendBorderStyle = legendBorderStyle;
	}
	public String getLegendBorderStyle(){
		return this._legendBorderStyle;
	}
	
	public void setLegendArcStyle(String legendArcStyle){
		this._legendArcStyle = legendArcStyle;
	}
	public String getLegendArcStyle(){
		return this._legendArcStyle;
	}
	
	public void setLegendConcentricSettings(String legendConcentricSettings){
		this._legendConcentricSettings = legendConcentricSettings;
	}
	public String getLegendConcentricSettings(){
		return this._legendConcentricSettings;
	}
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -