Flag レンダラーの統合

新規レンダラーを統合するには、以下の 2 つの方法があります。

レンダラーの宣言

効率を最大化するには、スタイル・シートでフラグ・レンダラーを宣言します。
この例では、モデル・オブジェクトが特定の状態に一致した場合にフラグを作成する特定のルールがあります。 Flag レンダラーはグラフィック・プロパティー Flag をルールから取り出し、 フラグ (ここでは、ラベル「ALARM HERE」) を表す IlvGraphic オブジェクトを取得します。
以下のコード例で、必要なスタイル・ルールを示します。
フラグ用のスタイル・ルール
node[state=alarm] {
      Flag : @#alarm
}

Subobject#alarm {
        class        : 'ilog.views.sdm.graphic.IlvGraphicFactories$ZoomableLabel' ;
        label        : "ALARM HERE" ;
        antialiasing : true ;
        leftMargin   : 5 ;
        rightMargin  : 5 ;
        topMargin    : 5 ;
        bottomMargin : 5 ;
        foreground   : red ;
}

node {
     Flag : ’’ ;
}
ルールは以下のように作動します。
  1. 最初のルールは、必要な場合に IlvGraphic オブジェクトを作成するように求める指示を設定しています。
  2. 2 番目のルールは、単純な赤いラベルとしてフラグを作成しています。
  3. 3 番目のルールは、ノードが通常の状態に戻るとフラグを消去します。 その場合、フラグのデフォルト値は null になります。

レンダラーの登録

レンダラーを統合する最も単純な方法は、スタイル・シートが読み取られるときに認識されるように、レンダラーを登録することです。
レンダラーを登録するには、単にクラス IlvRendererUtil の静的メソッド addRendererAlias を呼び出します。 これは、スタイル・シートをロードする前に実行する必要があります。 以下のコード例で、Flag レンダラーのコード行 (強調表示) を示します。
Java™ コードでの Flag レンダラーの登録
public static void main(String[] args)    {
   IlvRendererUtil.addRendererAlias("Flag", "tutorial.FlagRenderer");
   SDMViewer v = new SDMViewer();
   v.init(args);
}
メソッドの引数は以下のとおりです。
  • 第 1 引数: スタイル・シートで使用する記号名
  • 第 2 引数: レンダラーの完全修飾クラス名 (これは、必要に応じて動的にロードされます)
Flag レンダラーは、登録後には、他のすべてのレンダラーと同様に、スタイル・シートで使用することができます。 以下のコード例で、これを使用するルールの単純な例を示します。
登録された Flag レンダラーの単純なスタイル・ルール
SDM {
   Flag : true ;
}
Flag {
   flagLayer : 30 ;
}