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.