Skip to content

Latest commit

 

History

History
116 lines (80 loc) · 9.29 KB

File metadata and controls

116 lines (80 loc) · 9.29 KB
graph LR
    Application_Core["Application Core"]
    Domain_Model["Domain Model"]
    Persistence_History["Persistence & History"]
    User_Interface["User Interface"]
    Modeling_Language_Services["Modeling Language Services"]
    Code_Generation["Code Generation"]
    Application_Core -- "initializes and manages" --> Domain_Model
    Application_Core -- "triggers operations on" --> Persistence_History
    Application_Core -- "initializes and manages" --> User_Interface
    Application_Core -- "initializes and manages" --> Modeling_Language_Services
    Domain_Model -- "persists and loads via" --> Persistence_History
    Domain_Model -- "notifies changes to" --> Persistence_History
    Domain_Model -- "provides data to" --> User_Interface
    User_Interface -- "updates" --> Domain_Model
    Domain_Model -- "provides model to" --> Code_Generation
    Modeling_Language_Services -- "configures" --> Domain_Model
    Modeling_Language_Services -- "provides definitions to" --> User_Interface
    User_Interface -- "initiates file operations on" --> Persistence_History
    click Application_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/Application_Core.md" "Details"
    click Domain_Model href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/Domain_Model.md" "Details"
    click Persistence_History href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/Persistence_History.md" "Details"
    click User_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/User_Interface.md" "Details"
    click Modeling_Language_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/Modeling_Language_Services.md" "Details"
    click Code_Generation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/gaphor/Code_Generation.md" "Details"
Loading

CodeBoardingDemoContact

Details

The Gaphor project exhibits a clear Model-View-Controller (MVC) like architecture, with a strong emphasis on a central Domain Model that encapsulates the core UML/SysML data. The Application Core acts as the orchestrator, managing the lifecycle of various services and components. Persistence & History is a critical component for data integrity and user experience, handling model storage and change tracking. The User Interface serves as the primary interaction point, visualizing and allowing manipulation of the Domain Model. Specialized services like Modeling Language Services and Code Generation extend the core functionality, providing language-specific configurations and model-to-code transformations, respectively. The design promotes modularity, allowing for clear separation of concerns and facilitating future extensions, particularly in supporting new modeling languages or export formats.

Application Core [Expand]

Manages the overall application lifecycle, service orchestration, event dispatching, and plugin management. It acts as the central hub for application-wide concerns, ensuring services are properly initialized and coordinated.

Related Classes/Methods:

Domain Model [Expand]

The foundational component responsible for managing the abstract UML/SysML data model. It is the "Model" in the MVC pattern, encapsulating the core data, relationships, and business logic of the modeling domain.

Related Classes/Methods:

Persistence & History [Expand]

Handles the loading, saving, and recovery of models from storage, along with managing the history of model changes to support undo and redo operations. This component ensures data integrity and user flexibility.

Related Classes/Methods:

  • gaphor.storage.load
  • gaphor.storage.save
  • gaphor.storage.recovery
  • gaphor.services.undomanager

User Interface [Expand]

Encompasses all graphical user interface elements for user interaction, including diagram editing, property editing, model browsing, and file management dialogs. It combines the "View" and "Controller" aspects for visual interaction.

Related Classes/Methods:

Modeling Language Services [Expand]

Manages the active modeling language (e.g., UML, SysML), providing language-specific definitions for toolbox elements, diagram types, and element behaviors. It ensures the application adheres to the rules and constructs of the chosen modeling standard.

Related Classes/Methods:

Code Generation [Expand]

Translates the abstract model into executable code or other textual representations (e.g., XML, documentation). This component provides the capability to derive artifacts from the visual model.

Related Classes/Methods: