|
2006.02.13 株式会社四次元データ 鈴木 圭
JUNG 4章 頂点やエッジに文字列を設定する
前回の続きです。頂点の周辺に文字列を表示する方法を説明します。 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());
|
![]()
![]()
|