Durch die Klasse FMComplexMediaObject werden die komplexen Medienobjekte
des IMRA-Modells implementiert.
Die Abhängigkeiten zwischen den funktionalen Komponenten, aus denen sich
komplexe Medienobjekte zusammensetzen,
sind in Abbildung 7.8 ersichtlich.
Die Editorkomponente eines
FMComplexMedia-Objektes enthält einen Strukturierungseditor,
dessen Layout von der White-Box-Darstellung komplexer
Medienobjekte in den Media-Relationship-Diagrammen geprägt ist
(siehe das Fenster Composition-Editor in Abbildung 7.10).
Beziehungsinhalte werden aus Gründen einer besseren Übersichtlichkeit
nicht direkt an die Kanten geschrieben, sondern in
einen speziellen Relationship-Editor, der jeder Kante zugeordnet ist
und der sich über ein Popup-Menü öffnen läßt (siehe das
Fenster Relationship-Panel in Abbildung 7.10).
Die Komponentenobjekte und Beziehungen innerhalb eines komplexen
Medienobjektes werden in der Spezifikationskomponente verwaltet. Die
Spezifikationskomponente wird von der Persistenzkomponente zum
Speichern eines komplexen Medienobjektes genutzt.
Einmal gespeicherte
Informationen können auch wieder geladen und der
Spezifikationskomponente zugeführt werden.
Die Steuerungskomponente enthält die Aktivitätsfunktion
eines komplexen Objektes. Sie holt sich die benötigten
Informationen aus der Spezifikationskomponente und dient selbst wieder
als Input für die Interpretationskomponente. Diese
startet die Aktivitätsfunktion bei der Aktivierung des komplexen Objektes.
Standardmäßig sind für die Klasse FMComplexMediaObject
bereits einige Attribute vordefiniert, die strukturell der
Interpretationskomponente zuzuordnen sind und die als
Flag-Attribute oder als Attribute zum Zwischenspeichern von Informationen,
d.h. zur Realisierung indirekter Beziehungen,
benutzt werden können (siehe auch Kapitel 6.3.1.2).
Ihre initialen Werte können in einem
speziellen Attributeditor der Editorkomponente durch einen
Autor festgelegt werden. Sie werden in der Spezifikationskomponente
gespeichert. Bei der Aktivierung eines komplexen Objektes lädt
die Interpretationskomponente die Attribute mit den initialen Werten.
Desweiteren ist sie für die Manipulation der Attribute aufgrund von
Aktionen zuständig, die durch eine erfüllte Beziehungsbedingung
ausgelöst werden.