Similarly, there is a parent-child relationship between a GUIFrame controller and a GUIContent Pane controller. For all other services, the controller needs to pass actions on to its parent. If a controller can't handle its event, the Chain of Responsibility pattern signals the controller to pass the event to its parent. Navigation events are typically those that change the look and feel of the view. The application developer would need to identify these events and create some basic stereotypes.
Controllers can also communicate via data events.
If a Content GUIPane needs to display data in some JTextField objects, then the Content GUIPane would create a data event. The Content GUIPane would then pass it to its controller, which, upon determining that it is a data event, would delegate it to the associated model. The model subsequently would pass a refresh request to the Content GUIPane, which would deliver a clean and well-defined communication path. For data-request events, the controller delegates the request to an associated model object. HMVC makes a provision for models at every layer of the hierarchy, but it is up to the application designer to actually implement them.