📄 extendedagstoclayercontent.java
字号:
package com.esri.solutions.jitk.common.contextmenus;
import java.util.ArrayList;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.ags.data.AGSLocalMapResource;
import com.esri.adf.web.ags.data.AGSMapFunctionality;
import com.esri.adf.web.ags.data.AGSTocLayerContent;
import com.esri.adf.web.faces.event.TocEvent;
import com.esri.arcgisws.Fields;
import com.esri.arcgisws.LayerDescription;
import com.esri.arcgisws.MapLayerInfo;
import com.esri.solutions.jitk.web.ags.data.AGSFilterFunctionality;
import com.esri.solutions.jitk.web.tasks.filter.FilterTask;
public class ExtendedAGSTocLayerContent extends AGSTocLayerContent{
private static final long serialVersionUID = 7302705850029483270L;
public static final String FILTER_LAYER_CONTEXT_MENU_ITEM = "filterLayer";
private static final Logger _logger = LogManager.getLogger(ExtendedAGSTocLayerContent.class);
public ExtendedAGSTocLayerContent(){
}
public void handleContextMenuEvent(String contextMenuItemValue, TocEvent args) throws Exception {
if (contextMenuItemValue.equals(FILTER_LAYER_CONTEXT_MENU_ITEM)) {
TocEvent event = args;
AGSMapFunctionality mapFunc = this.tocFunc.getMapFunctionality();
MapLayerInfo layerInfo = mapFunc.getLayerInfo(this.layerDesc.getLayerID());
LayerDescription desc = mapFunc.getLayerDescription(layerInfo.getLayerID());
String resourceId = event.getWebContext().getResourceId(mapFunc.getResource());
String mapSourceName = mapFunc.getResource().getAlias();
// See if this is an AGSLocalMapResource
if (mapFunc.getResource() instanceof AGSLocalMapResource){
mapSourceName = ((AGSLocalMapResource)mapFunc.getResource()).getServerObjectName();
}
Fields fields = layerInfo.getFields();
String _layerName = null;
String _resourceName = null;
AGSFilterFunctionality agsFunc = null;
agsFunc = (AGSFilterFunctionality)mapFunc.getResource().getFunctionality("AGSFilter");
if (layerInfo.isHasAttributes() && (fields != null) && (agsFunc != null)) {
_resourceName = resourceId + "!" + layerInfo.getLayerID();
_layerName = mapSourceName + "." + layerInfo.getName();
FacesContext facesContext = FacesContext.getCurrentInstance();
FilterTask filterTask = (FilterTask) facesContext.getApplication().createValueBinding("#{FilterTask}").getValue(facesContext);
// Set the properties for the FilterTask
filterTask.setInputLayer(_layerName);
filterTask.inputLayerLabelSet(_layerName);
filterTask.setLayer(_resourceName);
filterTask.getUpdateAttributeList(_resourceName);
// this is used to uniquely identify the node for changing the style in the TOC
String layerNameId = layerInfo.getName();
filterTask.setTextValue("");
// Display the currently set definition expression
filterTask.setSql(desc.getDefinitionExpression());
_logger.debug("- ExtendedAGSTocLayerContent - Definition Expression: " + desc.getDefinitionExpression());
// Set the domainvaluelist to null - display 'No Values'
filterTask.resetDomainValueList();
filterTask.setSelectedLayer(layerNameId);
filterTask.getFilterTaskRenderer().setDisplayFilterTask(true);
event.getWebContext().refresh();
}
return;
}
super.handleContextMenuEvent(contextMenuItemValue,args);
}
public List<SelectItem> getContextMenuItems() {
AGSMapFunctionality mapFunc = this.tocFunc.getMapFunctionality();
MapLayerInfo layerInfo = mapFunc.getLayerInfo(this.layerDesc.getLayerID());
Fields fields = layerInfo.getFields();
List<SelectItem> contextMenuItems = null;
int origContextMenuSize = super.getContextMenuItems().size();
contextMenuItems = new ArrayList<SelectItem>(origContextMenuSize + 1);
SelectItem reorderLayer = new SelectItem(FILTER_LAYER_CONTEXT_MENU_ITEM, "Filter", "Filter Layer");
for (int i=0; i<origContextMenuSize; i++) {
contextMenuItems.add((SelectItem)super.getContextMenuItems().get(i));
}
if (layerInfo.isHasAttributes() && (fields != null) &&
(!this.hasSingleFusedMapCache)) {
contextMenuItems.add(reorderLayer);
}
return contextMenuItems;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -