ダイアグラム・コンポーネントへのデータ・モデルおよびスタイル・シートのロード

ツリー・モデルのサンプルは、 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 では、親子構造はサポートされていないことに注意してください。