Display Hierarchy Diagram

Figure 5-1. Display Hierarchy Diagram

Display Hierarchy Diagram

The display hierarchy diagram shows the interactions between the Graph Interface (GIF) and the final visualization of the graph in the Graph Window.

Motivation

Mechanics

The upper square in the display hierarchy diagram shows only a part of the Display and the lower square shows only a part of the Graph Interface (GIF). For complete information see The Graph Interface (GIF) (the Section called The Graph Interface (GIF) in Chapter 7).

The classes Node_Model and the Edge_Model holds e.g. the type of node and other attributes which are independent of the final visualization of the graph and the Graph Window. For complete information see The GIF (the Section called The GIF in Chapter 4). The classes Node_Model and Edge_Model also have a list of observers which they have to notify if there are any changes e.g. the classes Node_Display and Edge_Display.

The class Node_Display holds the data needed for the visualization of a Node_Model e.g. position of nodes, visibility the node, etc. The class Edge_Display has the same job for the Edge_Models. Each Node_Display/Edge_Display has its own Node_Model/Edge_Model.

The class Graph_Window_Model holds the data needed for the visualization of the Graph Window. These data consist of a list of Node_Displays and Edge_Displays, size of the Graph Area, the position of the Graph Window, the attributes of the state flags in the Graph Window, etc.

The class Graph_Window_Display displays the Graph Window on the screen by using the Graph_Window_Model.

The classes Node_Displays.Model_Observer and Edge_Displays.Model_Observer will notify the Node_Display and the Edge_Display if they were changed. The other observers work in the same way.

The class Display_Controller handles the user requests of a Window representing a part of the graph, e.g. if the user double-clicks on a node.