2009年4月30日星期四

ArcGIS Server Java ADF 案例教程 22

二 Task的执行

Task的执行主要在对应的功能类(比如上面的QueryTask类)中实现,上面已经详述了Task中的Parameter、Command、Tool分别对应的功能类中的元素,下面就让我们看看怎么去使用它们。

在上面定义的那个QueryTask中,我们设计点击“查询”按钮就能根据文本框中输入的关键词去查找相应的要素。下面是实现这样功能的一段代码:
public void query(TaskEvent event)
{
WebContext webContext = event.getWebContext();

WebQuery webQuery = (WebQuery) webContext.getAttribute("query");
TextCriteria textCriteria = new TextCriteria();
textCriteria.setMaxRecordCount(100);
textCriteria.setSearchText(this.keyWord);

List
listQueryResult = webQuery.query(textCriteria, webQuery.getQueryLayers());

webContext.getWebGraphics().clearGraphics();
for (int i = 0; i <>
{
QueryResult queryResult = listQueryResult.get(i);
queryResult.highlight();
}

webContext.refresh();
}

我们可以看到,从TaskEvent中可以直接获得我们的WebContext对象;从WebContext开始可以执行一系列的操作,其中用到了keyWord这个属性,keyWord对应的就是用户在Task面板的文本框中输入的文字;最后查询到结果在地图上通过Graphic高亮出来,通过WebContext的refresh方法输出到浏览器。

这里涉及到了Parameter和Command的使用;至于Tool,唯一的区别就是WebContext是从MapEvent中获得,因此这里就不详细写了。另外,这段代码中还涉及到如何进行查询、如何使用Graphic等,这些内容我们在后面会详细讲。

没有评论: