this is an observer on Display_Objects
has to be called if the Object_Display was moved or had become a new position
has to be called if there were any changes
has to be called if the node has to be destroyed
has to be called if the edge has to be destroyed
has to be called if the visibility has changed
Object is the superclass of Node_Display and Edge_Display
private OpenCAGE.GUI.Displays.States.State State |
holds the state of the node e.g. marked, selected, normal
private Boolean In_Viewport |
true means will be drawn, false means out of viewport
private OpenCAGE.GUI.Displays.Object_Displays.Observer_Lists.List Observers |
the list of observers which are registered
private OpenCAGE.GUI.Menus.Top_Menus.Top_Menu Context_Menu |
holds the context menu
private Ada.Strings.Unbounded.Unbounded_String Default_Command |
this command will be executed if an user double-clicks on this object
private OpenCAGE.Zoom_Tables.Zoom_Table Zoom |
holds a pointer to the Zoom_Table
private OpenCAGE.GUI.Displays.Object_Displays.Zoom_Observer Zoom_Observer |
our internal zoom observer
private Boolean Drawable |
Tells whether the object can be drawn or not. E.g. edges can't be drawn if they are missing a start or an end node.
Draws the object on the given graphic component
Draws a sketch of the object on the given graphic component
updates the display
returns the position of the object. Returns null if it has not a particular position e.g. an edge. This is not a very nice solution. The null value is used to calculate the Used_Area in Object_Display_Containers.
see Visitor Pattern
returns the size of the object
returns the size/2 of the object
attaches the observer to the list of observers
detaches he observer to the list of observers
This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
returns the position of upper left corner of the object. Returns null if it has not a particular position e.g. an edge. This is not a very nice solution. The null value is used to calculate the Used_Area in Object_Display_Containers.
returns the position of lower right corner of the object. Returns null if it has not a particular position e.g. an edge. This is not a very nice solution. The null value is used to calculate the Used_Area in Object_Display_Containers.
This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
Tells the observers, that an edge display is going to be destroyed. This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
Tells the observers, that an object display has changed. This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
Is called by Update. Don't ever called from somewhere else unless you know what you're doing. This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
Tells the observers, that the visibility of an object display has changed. This method is protected, i.e. it should not be called from outside. Unfortunatly Ada doesn't support this feature.
part of the Visitor-Pattern
part of the Visitor-Pattern
part of the Visitor-Pattern
part of the Visitor-Pattern
extends OpenCAGE.Zoom_Tables.Zoom_Observer
private OpenCAGE.GUI.Displays.Object_Displays.Object_Display Display |
the observer's display