The Graph_Display_Controller (GDC) has observers attached to the Node_Model it represents, i.e. the background object of the GDC. It also has observers attached to every object that is shown in the Graph Window corresponding to the GDC.
The GDC listens to the following messages of its background object but ignores the other messages of the Node_Model_Observer:
The GDC destroys itself, too.
The GDC creates a Node_Display and adds it to its children.
The GDC removes the appropriate Node_Display from its children.
The GDC removes the appropriate Node_Display from its children.
The GDC updates its status bar.
The GDC listens to the following messages of the nodes shown in its Graph_Window but ignores the other messages of the Node_Model_Observer:
The GDC gets the Edge_Display if it already exists, otherwise it creates the Edge_Display. Then it sets the end node properly.
The GDC gets the Edge_Display if it already exists, otherwise it creates the Edge_Display. Then it sets the start node properly.
The GDC sets the end node of the Edge_Display to null.
The GDC sets the start node of the Edge_Display to null.
Node_Displays end Edge_Displays listen only to the following messages:
The display destroys itself, i.e. sending all its observer the "Destroying" Message beforehand.
The display sends its observers the "Changed" Message.