Overloading methods of the Filter class

The Flag Renderer overloads the following IlvFilterSDMRenderer methods:
The overloaded methods start by calling super, which calls the superclass method of the same name before processing the flag.
Creating the flag
    /**
     * 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);
       }
The addNodeGraphic method creates the flag when a new node is added.
Cleaning and re-creating a flag
    /**
     * 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);
                   }
                }
A property change may or may not change the flag. Therefore, the propertyChanged method clears the flag and re-creates it.
Clearing a flag
    /**
     * Clears flag.
     * */
    public void removeNodeGraphic(IlvSDMEngine engine,
                              java.lang.Object node,
                                    IlvGraphic graphic,
                                       boolean redraw){    
              super.removeNodeGraphic(engine, node, graphic, redraw);
              cleanNode(engine, graphic);
    }
The removeNodeGraphic method clears the flag when a node is removed.
Moving the flag with the node
    /**
     * 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));
           }
The nodeGraphicBBoxChanged method is called when the bounding box of the node is changed. Note that no property change event is sent, although x and y may change.