?? mycustomtestbean.java
字號:
/*
* Copyright (c) 2008 ESRI
*
* All rights reserved under the copyright laws of the United States
* and applicable international laws, treaties, and conventions.
*
* You may freely redistribute and use this sample code, with or
* without modification, provided you include the original copyright
* notice and use restrictions.
*
* See use restrictions at <install>/ArcGIS/java/samples/userestrictions.
*/
package com.esri.adf.sample.criteria;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebContextInitialize;
import com.esri.adf.web.data.WebLayerInfo;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPolyline;
import com.esri.adf.web.data.query.IdentifyCriteria;
import com.esri.adf.web.data.query.LayerDefinition;
import com.esri.adf.web.data.query.QueryResult;
import com.esri.adf.web.data.query.TextCriteria;
import com.esri.adf.web.data.query.WebQuery;
import com.esri.adf.web.data.results.ResultDefinition;
import com.esri.adf.web.faces.event.MapEvent;
/*
* Test bean that runs queries based on different query criterias.
*/
public class MyCustomTestBean implements WebContextInitialize, Serializable {
private static final long serialVersionUID = 1L;
private WebContext context = null;
public void init(WebContext wc) {
this.context = wc;
}
public void destroy() {
}
/*
* Runs query based on the custom query criteria.
*/
public void myCustomCriteria() {
try {
WebQuery webQuery = this.context.getWebQuery();
int layerIndex = 3;
MyCustomCriteria criteria = new MyCustomCriteria();
List<WebLayerInfo> queryAllLayers = webQuery.getQueryLayers();
List<WebLayerInfo> querySpecficLayer = new ArrayList<WebLayerInfo>(1);
querySpecficLayer.add(queryAllLayers.get(layerIndex));
List<QueryResult> results = webQuery.query(criteria, querySpecficLayer);
ResultDefinition definition = new ResultDefinition();
definition.setHeader("Custom Criteria : ");
definition.setDisplayNameMethodName("getName");
definition.setDetailsMethodName("getDetails");
Map<String, String> actions = new LinkedHashMap<String, String>();
actions.put("Zoom", "zoom");
actions.put("HighLight", "highlight");
actions.put("Clear Graphic", "clearGraphic");
definition.setActionMethodNames(actions);
definition.setRemoveMethodName("clearGraphic");
this.context.getWebResults().addQueryResults(results, definition);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* Runs query based on the IdentifyCriteria.
*/
public void identifyCriteria(MapEvent event) {
WebQuery webQuery = this.context.getWebQuery();
int layerIndex = 3;
WebGeometry geometry = event.getWebGeometry().toMapGeometry(this.context.getWebMap());
if (geometry instanceof WebPolyline) {
System.out.println("Performing a IdentifyCriteria query based on a polyline");
}
IdentifyCriteria ic = new IdentifyCriteria(geometry);
ic.setLayerDefinitions(this.getLayerDefinitions());
List<WebLayerInfo> infos = webQuery.getQueryLayers();
List<WebLayerInfo> newInfo = new ArrayList<WebLayerInfo>(1);
newInfo.add(infos.get(layerIndex));
// List of Query Result(s)
List<QueryResult> results = webQuery.query(ic, newInfo);
// Adding Query Result(s) into WebResult object
ResultDefinition definition = new ResultDefinition();
definition.setHeader("Search Result(s)");
definition.setDisplayNameMethodName("getName");
definition.setDetailsMethodName("getDetails");
Map<String, String> actions = new LinkedHashMap<String, String>();
actions.put("Zoom", "zoom");
actions.put("HighLight", "highlight");
actions.put("Clear Graphic", "clearGraphic");
definition.setActionMethodNames(actions);
definition.setRemoveMethodName("clearGraphic");
this.context.getWebResults().addQueryResults(results, definition);
}
/*
* Runs query based on the TextCriteria.
*/
public void textCriteria() {
WebQuery webQuery = this.context.getWebQuery();
String searchText = "California";
int layerIndex = 3;
TextCriteria tc = new TextCriteria();
tc.setSearchText(searchText);
tc.setLayerDefinitions(this.getLayerDefinitions());
List<WebLayerInfo> infos = webQuery.getQueryLayers();
List<WebLayerInfo> newInfo = new ArrayList<WebLayerInfo>(1);
newInfo.add(infos.get(layerIndex));
// List of Query Result(s)
List<QueryResult> results = webQuery.query(tc, newInfo);
// Adding Query Result(s) into WebResult object
ResultDefinition definition = new ResultDefinition();
definition.setHeader("Text Search : " + searchText);
definition.setDisplayNameMethodName("getName");
definition.setDetailsMethodName("getDetails");
Map<String, String> actions = new LinkedHashMap<String, String>();
actions.put("Zoom", "zoom");
actions.put("HighLight", "highlight");
actions.put("Clear Graphic", "clearGraphic");
definition.setActionMethodNames(actions);
definition.setRemoveMethodName("clearGraphic");
this.context.getWebResults().addQueryResults(results, definition);
}
/*
* Returns the layer definitions
*/
private List<LayerDefinition> getLayerDefinitions() {
List<String> searchFields = new ArrayList<String>();
searchFields.add("STATE_NAME");
List<String> returnFields = new ArrayList<String>();
returnFields.add("STATE_NAME");
returnFields.add("STATE_ABBR");
LayerDefinition lyrDef1 = new LayerDefinition();
lyrDef1.setResourceId("myCustomCriteriaResource");
lyrDef1.setLayerId(2);
lyrDef1.setDisplayFieldName("STATE_NAME");
lyrDef1.setSearchFields(searchFields);
lyrDef1.setReturnFields(returnFields);
lyrDef1.setMaxRecordCount(3);
lyrDef1.setResultTemplate(LayerDefinition.DEFAULT_TEMPLATE);
lyrDef1.setCalloutTemplate(LayerDefinition.DEFAULT_TEMPLATE);
List<LayerDefinition> lyrDefs = new ArrayList<LayerDefinition>(1);
lyrDefs.add(lyrDef1);
return lyrDefs;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -