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.