graph LR
Element["Element"]
ElementFactory["ElementFactory"]
ElementDispatcher["ElementDispatcher"]
Properties["Properties"]
Diagram["Diagram"]
Presentation["Presentation"]
Collection["Collection"]
Element -- "emits events to" --> ElementDispatcher
Element -- "utilizes" --> Properties
ElementFactory -- "creates and manages" --> Element
ElementFactory -- "triggers events through" --> ElementDispatcher
Properties -- "manages data for" --> Element
Diagram -- "contains" --> Presentation
ElementFactory -- "creates" --> Diagram
Presentation -- "observes changes in" --> Element
Collection -- "manages relationships for" --> Element
The Domain Model subsystem is the core of the Gaphor application, embodying the "Model" in the Model-View-Controller (MVC) pattern. It encapsulates the abstract UML/SysML data, relationships, and fundamental business logic, ensuring a clear separation from the graphical representation and user interaction. The subsystem is primarily defined by the gaphor.core.modeling package.
The foundational abstract class for all model entities. It provides a unique identifier, manages properties and associations, handles its lifecycle (initialization, saving, unlinking), and emits events when its state changes.
Related Classes/Methods:
Manages the lifecycle and creation of all model elements. It is responsible for creating new Element instances, maintaining a registry of all active elements, and handling the removal of unlinked elements.
Related Classes/Methods:
The central event system for model changes. It acts as an event bus, subscribing to and dispatching events related to element changes (e.g., property modifications, unlinking) and model loading to various listeners throughout the application, ensuring loose coupling.
Related Classes/Methods:
Defines and manages attributes and associations of elements. It provides the mechanism for defining and managing properties of Element instances, handling storage, change notification, and managing relationships (e.g., opposite ends of associations).
Related Classes/Methods:
A model element representing a diagram, acting as a container for Presentation elements. It manages the overall layout and visual properties of a diagram within the model.
Related Classes/Methods:
The model's representation of a graphical element, linking to an Element. It handles visual properties and reacts to changes in the underlying model element to update its conceptual display within the model.
Related Classes/Methods:
Manages relationships between model elements. It provides specialized collection types for managing ordered or unordered associations and containment relationships between Element instances.
Related Classes/Methods: