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

Server JAVA 講座:自定義Functionality

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

  

每個functionality都需要實現Functionality這個接口,這個接口里面有三個方法,初始化方法,destroy方法和得到資源的方法。GISResource對應于一個特定的資源,比如我們最常用的資源就是AGSLocalMapResource,當然也可以是ArcIMS的Resource,取決于你把這個functionality注冊到哪個Resource中。我們來看一個例子,雖然Functionality一般跟資源有關,但是也可以做其它的事情,比如我們這里舉一個非常簡單的例子,FixedZoomin:
    
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,放大功能就實現了。你說非得跟資源有關系,那么確實也有點關系,因為我們還是使用了后臺的數據來進行操作。需要說明的是,我們這個代碼對于所有的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();

  

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




Server JAVA 講座:自定義Functionality


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本一级毛片免费看 | 国产成人精品三级91在线影院 | 好看的中文字幕在线 | 国产成人午夜片在线观看 | 幸福宝色多多 | 亚洲自拍第二页 | 韩国三日本三级中文字幕 | 亚洲国产精品yw在线观看 | 91视频社区 | 欧美午夜精品 | 91九色精品国产免费 | 男人的天堂一区二区视频在线观看 | 色玖玖| 高清国产美女一级a毛片录 高清国产美女一级毛片 | 亚洲国产一区二区三区 | 免费国产一级特黄aa大片在线 | 国产成人99精品免费视频麻豆 | 色天使色婷婷在线影院亚洲 | 天海翼一区二区三区高清视频 | 成 人 黄 色 大 片全部 | 色综合久久一本首久久 | 成人久久18免费网址 | 美女色影院 | 97se亚洲国产综合自在线 | 青娱乐国产在线视频 | 成人激情在线视频 | 欧美18—19sex性护士 | 中文字幕在线观看不卡视频 | 成人凹凸短视频在线观看 | 97精品在线观看 | 999人在线精品播放视频 | 四虎在线视频免费观看 | 美女毛片 | 午夜私人影院在线观看 | 九九精品九九 | 成人一a毛片免费视频 | 中文字幕日本一区波多野不卡 | 日韩一级精品视频在线观看 | 天天干夜夜欢 | 五月色婷婷综合激情免费视频 | 奇米视频777 |