📄 shaperedliningtask.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 + -