国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Cytoscape插件開發小結

galaxy_robot / 1728人閱讀

摘要:前段時間接了一個,是給生命學院的老師開發一個的插件。如果你一定要使用的新特性,可以嘗試一下使用最新版本的插件。這可以參考這個插件的。閱讀別人開發的插件是最快捷的學習方法,當你多方求索而不得時可以考慮在的里面求助。

前段時間接了一個 parttime job,是給生命學院的老師開發一個 Cytoscape 的插件。本文做個簡單的技術總結,所有的細節都基于 Cytoscape3.3.0,閱讀時請注意版本號。

Hello World from Maven

首先要安裝好 Cytoscape、JDK 8 和 Maven。在此我不做贅述。

如果你沒有接觸過 Maven,最好稍微了解一下。因為 Hello World 就需要利用 Maven 命令自動生產模范代碼。Cytoscape 的 wiki 上便有詳細的介紹,請參見 Tutorial:Creating_an_OSGi_Bundle_Cytoscape_3_App。

關于 Maven,還有兩個問題需要解決,其中一個是如果你使用了 Java 8 的函數式編程特性,很有可能導致編譯能通過但是沒辦法用 Maven 打包,這是 Maven 插件的問題,我的解決方案是避免使用。如果你一定要使用 Java 8 的新特性,可以嘗試一下使用最新版本的插件。另外一個問題是怎樣引入一個外部的 jar 包。這可以參考 stringApp 這個插件的 pom.xml。注意,其中 groupID 是org.cytoscape的這些包依賴的寫法和末尾那些外部包依賴寫法上的區別。因為Cytoscape自己的那些包只是編譯時依賴,而外部包是運行時依賴。

More about packaging

Cytoscape 的插件就是 jar包,除了需要放在jar包里面的常規 class 文件,我們還需要放一些數據文件,比如 sqlite3 的數據庫,csv 格式的文本文件等等。那么怎么在運行時訪問這些資源呢?

針對這個問題,你可以看我在Stackoverflow上的一個回答:add sqlite DB to executable JAR file

AbstactTask

一般情況下可以繼承 AbstractTask,將任務在 run 方法中實現。這樣做的好處在于 Cytoscape 可以捕獲到其中的異常,在日志中顯示,以供除蟲。而且可以利用 TaskMonitor 顯示執行任務的進度。但是在實踐中發現顯示任務進度這個功能會和彈出窗口沖突,也就是說我沒法在執行任務的中途彈出一個窗口讓用戶做一些選擇。這個時候就只能放棄繼承 AbstractTask,直接把任務放在所觸發的動作中。

Debugging

可以使用標準輸出,也可以使用 Cytoscape 的日志系統。(在 Windows 下使用命令行啟動 Cytoscape,但是 cmd 的標準輸出并不能顯示,所以推薦用后者)后者可以點擊 Cytoscape 界面左下角的圖標顯示。

import org.apache.log4j.Logger;
final Logger logger = Logger.getLogger("org.cytoscape.application.userlog");
Resources

閱讀別人開發的 Cytoscape 插件是最快捷的學習方法,當你多方求索而不得時可以考慮在 Cytoscape 的 Google Groups 里面求助。如果還是不行,就只能訴諸 Cytoscape 源碼了。

就說這么多,建議從這里開始,https://github.com/cytoscape/cytoscape-app-samples,挑幾個樣例過一遍代碼,再開始編碼。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65947.html

相關文章

  • vim插件vundle/bundle安裝錯誤小結

    摘要:事情經過是這樣的換了臺機器,想部署自己的開發環境。結果原來機器明明好使的插件,現在居然不好使了。報了各種錯誤,以為是插件中有個各種路徑是原來的機器路勁,那就重新安裝吧。 事情經過是這樣的:換了臺linux機器,想部署自己的開發環境。那vimrc必須配置上。結果原來機器明明好使的vundle插件,現在居然不好使了。報了各種錯誤,以為是插件中有個各種路徑是原來的機器路勁,那就重新安裝吧。明...

    honmaple 評論0 收藏0
  • 面試小結(三)

    摘要:好了,我的面試小結似乎告一段落了,希望自己以后多寫寫技術型的博客,這種總結型的博客,次之 1、項目中使用的技術棧,遇到的問題,解決辦法;2、這個是我的項目中的問題:Rax中banner圖,使用插件還是手寫;3、react怎么使用循環渲染;4、開發的項目兼容哪些瀏覽器;5、自己單獨負責項目過什么項目(體現自己的基礎);6、手機兼容:彈性盒子,安卓手機不支持,這個問題遇到過嗎; 參考:op...

    魏明 評論0 收藏0
  • 面試小結(三)

    摘要:好了,我的面試小結似乎告一段落了,希望自己以后多寫寫技術型的博客,這種總結型的博客,次之 1、項目中使用的技術棧,遇到的問題,解決辦法;2、這個是我的項目中的問題:Rax中banner圖,使用插件還是手寫;3、react怎么使用循環渲染;4、開發的項目兼容哪些瀏覽器;5、自己單獨負責項目過什么項目(體現自己的基礎);6、手機兼容:彈性盒子,安卓手機不支持,這個問題遇到過嗎; 參考:op...

    ephererid 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<