亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Server JAVA 講座:自定義Functionality

系統(tǒng) 2412 0
今天我們來講講如何自定義Functionality,自定義Functionality有很多用處。它最大的用處是可以訪問數(shù)據(jù)源。我們來看看已經(jīng)存在的Functionality:
AGSMapFunctionality, AIMSMapFunctionality, AWSMapFunctionality, EJBMapFunctionality, WMSMapFunctionality等等等等,查看GISFunctionality接口的子類你可以看到ADF中更多的Functionality。
這些Functionality無一不跟后臺的資源有關(guān)。我們來看看Functionality接口的定義:
    
public void initFunctionality(GISResource arg0) {}
public void destroyFunctionality() {}
public GISResource getResource() {
    return null;
}

  

每個functionality都需要實現(xiàn)Functionality這個接口,這個接口里面有三個方法,初始化方法,destroy方法和得到資源的方法。GISResource對應(yīng)于一個特定的資源,比如我們最常用的資源就是AGSLocalMapResource,當然也可以是ArcIMS的Resource,取決于你把這個functionality注冊到哪個Resource中。我們來看一個例子,雖然Functionality一般跟資源有關(guān),但是也可以做其它的事情,比如我們這里舉一個非常簡單的例子,F(xiàn)ixedZoomin:
    
public class DemoFunction implements GISFunctionality {

  WebContext ctx;

  public void zoomInFunction(){
    WebMap wmap = ctx.getWebMap();
    WebExtent ext = wmap.getCurrentExtent();
    ext.expand(0.5);
    wmap.setCurrentExtent(ext);
    ctx.refresh();
  }

  public void initFunctionality(GISResource arg0) {
    ctx=arg0.getWebContext();
    System.out.print("Demo Function inited");
  }

  public void destroyFunctionality() {
    System.out.print("Demo Function destroyed");
  }

  public GISResource getResource() {
    return null;
  }
}

  

非常簡單的一個例子,從GISResource里面得到WebContext,然后得到WebMap,修改WebMap的Extent,放大功能就實現(xiàn)了。你說非得跟資源有關(guān)系,那么確實也有點關(guān)系,因為我們還是使用了后臺的數(shù)據(jù)來進行操作。需要說明的是,我們這個代碼對于所有的Resource都是適用的,不管你后臺使用了ArcIMS,還是其它的Resource。ADF的妙處也在這里。
寫好了這個Funcionality,那么我們來看看如何部署的,每一個Functionality都需要部署到某個Resource中,那么我來看一下,這個functionality如何來部署:
    
<managed-bean>
     
<managed-bean-name>ags1</managed-bean-name>
<managed-bean-class>com.esri.adf.web.ags.data.AGSLocalMapResource</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>

<managed-property>

<property-name>functionalities</property-name>
<map-entries>
    <!--……略去其它的functionality->
<map-entry>
       <key>demoFunction</key>
<value>#{demoFunction}</value>
    </map-entry>
</map-entries>
</managed-property>
</managed-bean>

  

部署完成了,如何使用呢?隨便在你的一個tools里面,或者task的運行代碼里面,添加下面的代碼:
    
GISResource rec=(GISResource)evt.getWebContext().getResources().get("ags1");
DemoFunction df=(DemoFunction)rec.getFunctionality("demoFunction");
df.zoomInFunction();

  

就可以了。這只是一個簡單的例子,而且是繞了一個遠的例子。大家可以發(fā)掘一下Functionlity的使用方法。在下一次講座中,我們將詳細解釋一個對Resource進行操作的例子。




Server JAVA 講座:自定義Functionality


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产51自产区在线 | 亚洲欧美日韩高清中文在线 | 毛片免费观看久久欧美 | 久久精品中文字幕极品 | 天天曰天天 | 亚洲精品综合一区在线 | 成人午夜毛片在线看 | 色噜噜视频 | 久久99精品国产99久久6男男 | 日韩黄a级成人毛片 | 成人国产精品视频频 | 国产视频一二 | 日本一二三区视频 | 日日摸天天摸狠狠摸视频 | 俺去也理论网站 | 久久精品影院一区二区三区 | 毛片录像 | 一级片免费视频 | 日本综合欧美一区二区三区 | 亚洲国产天堂久久九九九 | 国内揄拍国内精品久久 | 香蕉久久精品国产 | 中文字幕在线观看免费 | 亚洲综合区小说区激情区噜噜 | 四虎影音先锋 | 91一区二区在线观看精品 | 国产小呦| 日韩欧美一区二区在线 | 久久这里只精品热在线8 | 久久成人午夜 | 第一福利视频网 | 日日夜夜精品 | 国产精品麻豆久久99 | 国产最新在线视频 | 日本精品久久久久中文字幕2 | 青青青在线视频国产 | 欧美日韩视频一区二区 | 日本aaaa毛片在线看 | 四虎成人影视 | 国产日韩精品一区二区在线观看 | jiz欧美高清|