next up previous contents index
Next: StreamManagers Up: Managers Previous: AppManagers

GuiManagers

    Implementations of the mmstream.gui.GuiManager interface are responsible for displaying the state and behaviour of architecture components. Therefore, the interface contains methods to inform a GuiManager object of the creation or termination of architecture components, for example a registerProducer() or a deleteSession() method. On invocation of such methods, the GuiManager must take measures to create, update, or delete appropriate elements of the application's user interface. The notification methods are normally invoked by the AppManager object.

The other task of a GuiManager object is to serve as a repository of architecture component-specific GUI components. The GuiManager interface comprises various methods for registering configuration or display GUI elements. For example, there are the ConnectionOptions, the ProtocolCoDecOptions, the ConsumerOptions, and the ProducerOptions interfaces. The GUI elements are stored in java.util.Hashtable objects, together with a key name describing the ``type of things'' that the corresponding architecture component can handle. The following example invocation registers the mmstream.gui.UDP_ConnectionOptions class, which conforms to the mmstream.gui.ConnectionOptions interface and which can be used to configure and instantiate Connection objects that are capable of operating UDP.

guiMan.registerConnectionOptionsGui(
        mmstream.config.Connection_TypeConfiguration.UDP_Name, 
        Class.forName("mmstream.gui.UDP_ConnectionOptions")
       );

    The mmstream.gui package offers a sample GUI implementation built on the classes provided by java.awt and java.awt.image packages. In particular, it contains the TOMS_GuiManager implementation, the MainFrame class, which is the root window of the grpahical user interface, the ExportImport_Dialog, which is used to add or delete session description import or export channels, and a collection of minor support classes. In addition, there are the NewSession_Dialog, NewProducer_Dialog, and NewConsumer_Dialog classes as well as component specific implementations of the various Options interfaces, which create parametrised instances of the respective components; furthermore, the package comprises the Session_Dialog, ProtoSession_Dialog, LocalSource_Dialog, RemoteSource_Dialog, Producer_Dialog, and Consumer_Dialog classes for displaying the state of the respective components.



tspeuker@cip.informatik.uni-erlangen.de