Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

2006.02.13 株式会社四次元データ 鈴木 圭

前回の続きです。頂点の周辺に文字列を表示する方法を説明します。

4.3. 頂点ごとに異なる文字列を設定する

頂点ごとに異なる文字列を設定するには、先ほど説明した UserDataContainer を使用します。まず、頂点に関連付けられた文字列を返す VertexStringer を作成します。ここで重要なのは、文字列を関連付けるときに使用するキーを決めておくことです。

// 関連付けられた名前を返す VertexStringer.
class NameVertexStringer implements VertexStringer {
    /** 頂点に名前を関連付けるときのキー. */
    public static final Object VERTEX_NAME_KEY = new Object();

    /** {@inheritDoc} */
    public String getLabel(ArchetypeVertex vertex) {
        return (String) vertex.getUserDatum(VERTEX_NAME_KEY);
    }
}

次に、頂点を作成するときに対応する文字列を関連付けておきます。

Graph graph = ...

// 頂点を作成.
Vertex hogeVertex = graph.addVertex(new DirectedSparseVertex());
Vertex piyoVertex = graph.addVertex(new DirectedSparseVertex());
Vertex fugaVertex = graph.addVertex(new DirectedSparseVertex());
Vertex gofuVertex = graph.addVertex(new DirectedSparseVertex());

// 頂点に対応する名前を設定.
hogeVertex.addUserDatum(NameVertexStringer.VERTEX_NAME_KEY, "Hoge", UserData.SHARED);
piyoVertex.addUserDatum(NameVertexStringer.VERTEX_NAME_KEY, "Piyo", UserData.SHARED);
fugaVertex.addUserDatum(NameVertexStringer.VERTEX_NAME_KEY, "Fuga", UserData.SHARED);
gofuVertex.addUserDatum(NameVertexStringer.VERTEX_NAME_KEY, "Gofu", UserData.SHARED);

最後に、作成した NameVertexStringer を PluggableRenderer に設定すれば、頂点ごとに異なる文字列を表示させることができます。

PluggableRenderer renderer = new PluggableRenderer();

...

renderer.setVertexStringer(new NameVertexStringer());

頂点ごとに異なる文字列を設定する



前のページへ TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa