ツリー・モデルのサンプルは、 IlvDiagrammerApplication のサブクラスです。したがって、『定義済みアプリケーションのカスタマイズ』で説明されている、完全なアプリケーション機能があります。
データ・モデル
TreeSDMModel
オブジェクトをロードするために、
このサンプルは、 createDiagrammer メソッドをオーバーライドして、追加の操作を実行します。以下のコード例を参照してください。
protected IlvDiagrammer createDiagrammer() { // Create a default tree model. The JTree creates one // if you don't specify a model: let's use it. // TreeModel treeModel = new JTree().getModel(); // Create the IlvDiagrammer instance. // IlvDiagrammer diagrammer = super.createDiagrammer(); // Create a default tree model. The JTree creates one
このサンプルでは、
TreeSDMModel
のインスタンスを作成し、
それにパラメーターとしてデフォルトのツリー・モデルを渡します。以下のコード例を参照してください。
// Create the Tree -> SDM model adapter. // TreeSDMModel sdmModel = new TreeSDMModel(treeModel);
このサンプルでは、以下のコード例で示すように、 IlvDiagrammer インスタンスの SDM エンジンを取得して、
TreeSDMModel
インスタンスにそのデータ・モデルを設定します。
// Tell the IlvDiagrammer to use this model: // diagrammer.getEngine().setModel(sdmModel); return diagrammer; }
スタイル・シート
ツリー・モデルの表示に使用される スタイル・シート は、
<installdir>/jviews-diagrammer89/codefragments/datamodel/treemodel/data に置かれています。
スタイル・シートをロードするには、サンプルへの相対パスをスタートアップ引数として渡します。
public TreeModelDemo() { super(new String[]{ "-title", "Tree Model Demo", "-style", "data/tree.css", }); }
このスタイル・シートは、以下のコード例に示す 2 つのルールで、さまざまなパラメーターを使用して放射モードのツリー・レイアウトを指定します。
SDM { GraphLayout : "Tree" ; } GraphLayout { flowDirection : "Bottom"; layoutMode : "RADIAL"; globalLinkStyle : "ORTHOGONAL_STYLE"; position : "300,200"; parentChildOffset : "10"; siblingOffset : "10"; }
また、このスタイル・シートは、さまざまなオブジェクトの色も指定しています。
TreeSDMNode
クラスの CSSclass
プロパティーは、その名前のために、CSS クラス を指定しているものと CSS エンジンによって自動的に認識されるので、この属性の値をルールで直接使用することができます。
これにより、単純な構文を使用して、オブジェクト・タイプ・レベルで色を設定できるようになります。以下のコード例を参照してください。
node.food { fillColor2 : "lightgreen" ; } // node.treenode[userObject='food'] node.treenode { // fillColor2 : "lightgreen" ; // }
コメント行に、food オブジェクトに色を設定する場合の、やや遠回りの代替方法を示しています。
この遠回りの方法は、Java 用 CSS の親子構造を使用しています。Designer では、親子構造はサポートされていないことに注意してください。