Takayuki Okazaki's Weblog
ブログ: 岡崎 - Okazaki's blog
20051117 2005年 11月 17日 木曜日
今日のAPI: NetBeans Graph Library
English Translation: (Yahoo!) / (Google)
ちょっと前のことですが、NetBeans Graph LibraryがNetBeans.orgのトップページで紹介されていました。このライブラリはもともとNetBeans Mobility Packのビジュアルデザイナ向けに作られていたようですが、その機能が汎用化されてAPIとして切り出されたものです。
グラフを書くAPIというと、JGraphなんかが有名です。JGraphはまだ試していないので性能や機能の比較はできませんが、スクリーンショットを見る限りはLook and Feelが個人的にNetBeans Graphの方が好みであるということで今回はこちらをご紹介します。

NetBeans Graph APIの使い方はいたって簡単で、NetBeans GraphのJava Web Startデモソース(DemoFrame.javaとDemoGraph.java)を見るとかなり簡単にグラフを制御するプログラムが書けることがわかります。 動作環境としてはJava SE 1.4以降となっており、依存するライブラリとしてOpenIDEのutililtyのライブラリが必要になります。
グラフ全体はGraphDocumentクラスにより表現されており、それぞれのノードがGraphNode、ノードとノードを結ぶリンクはGraphLinkです。 グラフのコンポーネントを作成するには次のようにGraphFactoryを使用します。

 GraphDocument document = new GraphDocument ();
 JComponent view = GraphFactory.createView(document,
       new VMDDocumentRenderer(),
       new DefaultViewController(),
       new MyEventHandler ());
NetBeans Graph LibraryはいわゆるMVC(モデル、ビュー、コントローラ)パターンのアーキテクチャになっています。 GraphFactoryに渡しているのはグラフを描画するレンダラ(org.netbeans.graph.vmd.VMDDocumentRenderer)、ビューのコントローラ(org.netbeans.graph.api.builtin.DefaultViewController)とイベントを処理するハンドラ(MyEventHandler、デフォルトの実装はありませんのでorg.netbeans.graph.api.IGraphEventHandlerを継承して作成します)です。GraphFactoryのcreateViewを使用することでビューが作成されます。このビューはJComponentなので、パネルなどに貼り付けるとグラフが表示されます。
グラフにノードを追加するには次のようにノードを作成して、GraphEventを使用して追加します。
 MyGraphNode node = new MyGraphNode("ノード");
 document.addDocuments(GraphEvent.createSingle(node));
できることはまだありますので、1回のブログに全手順を書くことはできないのですがおおよその雰囲気をつかんでいただくことはできたかと思います。

実はグラフAPIを探していたのはJavaOne TokyoのNight for Javaにプログラムを出したいなと前から思っていて、その出そうと思っていたネタに必要だったからです。まあ、JavaOne Tokyoには間に合わなかった上、イベントも終わってしまいましたので、今回はここでそのネタをご紹介します。

以前に藤井さんが紹介されているFreeMindをはじめとして、マインドマップというのはなんだか最近ちょっとしたブームのようです。個人的にFreeMindは非常によくできたソフトだと思っているのですが、マインドマップをパソコンで書くと結構時間がかかるので会議中にリアルタイムに電子的なマインドマップを書くのは限界があるだろうと思っていました。どちらかというと紙に走り書きしたマインドマップをパソコンで清書するために使うほうが用途としてはあっているかなというところです。
一方、最近O'ReillyのWeb 2.0という話題の記事ではコンテンツ管理にはWikiだ。と書いてあり、マインドマップとWikiを使えばなんかよさそうだというネタです。
今回は夜なべしてその試作品を作ってみました。JRE 5.0がインストールされている環境の場合は、Java Web Startのデモを実行することができます。(なお、NetBeans Graphが使用している org-openide-util.jar 内で、AWTPermissionを要求していたので今回はオレオレ証明書で署名してあります。)

このように、マインドマップというにはまだ無理があるかもしれませんが、それぞれのノード(記事)をリンクさせることでマインドマップの雰囲気を作り出しています。また、それぞれの記事をクリックすると記事のプレビュー、ダブルクリックすると編集ができるようにしてあります。

今回、NetBeans Graph Libraryを使用したことで結構スムースに作ることができました(どちらかというとプログラムより、アイコン画像を作るほうが時間がかかりました)。試作品でなんか、使えそうな感触がしてきたのでもう少し時間ができたら本格的に開発してみようと思います。


投稿されたコメント:

★ お名前を空欄にするとIPアドレスが、お名前欄に記入されます。
コメント
コメントは無効になっています。
過去の記事
« 11月 2009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
今日
Click me to subscribe このブログを購読(RSS)
検索

このブログ著者について
ソフトウエア・インフラストラクチャー・ソリューション本部のソリューション・アーキテクトでした(2008年8月退職)。 本業はSOAソリューションならびにSun Java CAPSによるソリューションのプリセールスをお手伝いするエンジニア、とJavaエバンジェリストグループに参加してセミナーに行ったり、趣味のプログラミング・ネタをこのブログで紹介したりしていました。現在は、ふらふらとwatermint.orgで活動中〜。
リンク
 
SunホットトピックPodcast - SunホットトピックPodcast
 


 

Today's Page Hits: 566