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.