Filter クラスのメソッドの多重定義

Flag レンダラーは、以下の IlvFilterSDMRenderer メソッドを多重定義します。
多重定義されたメソッドは、まず super を呼び出し、これはフラグの処理前に同じ名前のスーパークラス・メソッドを呼び出します。
フラグの作成
    /**
     * Creates flag.
     * */
    public void addNodeGraphic(IlvSDMEngine engine,
                           java.lang.Object node,
                                 IlvGraphic graphic,
                                    boolean redraw) {
       super.addNodeGraphic(engine,node,graphic,redraw);
       checkNode(engine, node, graphic);
       }
addNodeGraphic メソッドは、新規ノードが追加されるとフラグを作成します。
フラグの消去および再作成
    /**
     * Recreates flag.
     * */
    public void propertyChanged(IlvSDMEngine engine,
                            java.lang.Object object,
                            java.lang.String propertyName,
                            java.lang.Object oldValue,
                            java.lang.Object newValue,
                                  IlvGraphic graphic) {
                super.propertyChanged(engine,object,propertyName,
                oldValue,newValue,graphic);
                if (!engine.getModel().isLink(object)) {
                   cleanNode(engine, graphic);
                   checkNode(engine, object, graphic);
                   }
                }
プロパティーの変更によって、フラグが変更される場合も、変更されない場合もあります。 そのため、propertyChanged メソッドはフラグを消去して再作成します。
フラグの消去
    /**
     * Clears flag.
     * */
    public void removeNodeGraphic(IlvSDMEngine engine,
                              java.lang.Object node,
                                    IlvGraphic graphic,
                                       boolean redraw){    
              super.removeNodeGraphic(engine, node, graphic, redraw);
              cleanNode(engine, graphic);
    }
removeNodeGraphic メソッドは、ノードが削除されるとフラグを消去します。
ノードのフラグの移動
    /**
     * Adjusts flag position.
     * */
    public void nodeGraphicBBoxChanged(IlvSDMEngine engine,
                java.lang.Object node,
                IlvGraphic graphic,
                IlvRect oldBBox,
                IlvRect newBBox,
                java.lang.String[] pseudoClasses) {
           super.nodeGraphicBBoxChanged(engine,node,graphic,
                     oldBBox,newBBox,pseudoClasses);
              moveNode(newBBox,(IlvGraphic)graphic.getProperty(FLAG_GRAPHICS));
           }
nodeGraphicBBoxChanged メソッドは、ノードのバウンディング・ボックスが変更されると呼び出されます。 なお、x と y が変更される場合もありますが、プロパティー変更イベントは送信されません。