📄 agsfilterfunctionality.java
字号:
package com.esri.solutions.jitk.web.ags.data;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.ags.data.AGSMapFunctionality;
import com.esri.adf.web.data.GISResource;
import com.esri.adf.web.data.WebLayerInfo;
import com.esri.arcgisws.LayerDescription;
import com.esri.solutions.jitk.web.data.IFilterFunctionality;
public class AGSFilterFunctionality implements IFilterFunctionality{
private static final Logger _logger = LogManager.getLogger(AGSFilterFunctionality.class);
private GISResource _resource = null;
public void filter(WebLayerInfo wlInfo, String definitionExpression) {
_logger.info("Setting definition expression: " + definitionExpression);
LayerDescription layerDesc = getLayerDesc(wlInfo);
if (layerDesc != null){
layerDesc.setDefinitionExpression(definitionExpression);
wlInfo.getResource().getWebContext().refresh();
}
else {
_logger.error("LayerDescription is null, filter could not be set");
}
}
//TODO: Add this feature back in once its needed
//public WebLayerInfo[] getFilterLayers() {
//
// AGSMapResource agsMapResource = (AGSMapResource)_resource;
// AGSMapFunctionality agsMapFunc = (AGSMapFunctionality)(agsMapResource).getFunctionality("map");
// MapLayerInfo[] agsLayerInfos = agsMapFunc.getLayerInfos();
// return null;
//}
public GISResource getResource() {
return _resource;
}
public void initFunctionality(GISResource resource) {
_logger.debug("Initializing functionality");
_resource = resource;
}
public void destroyFunctionality() {
_logger.debug("Destroying functionality");
}
/**
* Obtain the layer description for the given layers
*/
private LayerDescription getLayerDesc(WebLayerInfo wlInfo) {
int iLayerId = -1;
WebLayerInfo webLayerInfo = wlInfo;
if (webLayerInfo != null) {
iLayerId = webLayerInfo.getId();
GISResource resource = webLayerInfo.getResource();
AGSMapFunctionality agsMapFunc = (AGSMapFunctionality)resource.getFunctionality("map");
LayerDescription[] arLayerDescs = agsMapFunc.getLayerDescriptions();
for(int iIdx = 0; iIdx < arLayerDescs.length; iIdx++) {
if (arLayerDescs[iIdx].getLayerID() == iLayerId) {
return arLayerDescs[iIdx];
}
}
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -