UI Component Hierarchy

graph TD %% Core Layout A[BorderPane: Root] B[TabPane: Content] A --> B %% Tab Views C[ScrollPane: Dashboard] D[ScrollPane: Details] E[ScrollPane: Workshop] F[ScrollPane: Analytics] B --> C B --> D B --> E B --> F %% Dashboard Components G[Statistics] H[Progress] I[Charts] C --> G & H & I %% Details Components J[Details Form] K[Tasks] L[Resources] D --> J & K & L %% Workshop Components M[WorkArea] N[Tools] O[Layers] E --> M & N & O %% Analytics Components P[Charts] Q[Metrics] F --> P & Q %% Styling classDef c1 fill:#e1f5fe,stroke:#01579b classDef c2 fill:#fff,stroke:#0288d1 classDef c3 fill:#e8f5e9,stroke:#2e7d32 class A,B c1 class C,D,E,F c2 class G,H,I,J,K,L,M,N,O,P,Q c3

Project Dashboard Sequence Diagram

sequenceDiagram actor User participant DashboardView participant DashboardController participant ProjectViewModel participant StatisticsService participant DB %% Initial Dashboard Load User->>DashboardView: Open Dashboard DashboardView->>DashboardController: initialize() DashboardController->>ProjectViewModel: loadProjects() ProjectViewModel->>DB: fetchProjects() DB-->>ProjectViewModel: projects list ProjectViewModel-->>DashboardController: updateProjectSelector par Statistics Cards DashboardController->>StatisticsService: getTaskStats() StatisticsService->>DB: fetch task metrics DB-->>StatisticsService: task counts StatisticsService-->>DashboardController: update stat cards and Progress Grid DashboardController->>StatisticsService: getProjectProgress() StatisticsService->>DB: fetch progress data DB-->>StatisticsService: progress metrics StatisticsService-->>DashboardController: update progress bars end DashboardController-->>DashboardView: refresh UI DashboardView-->>User: Display Dashboard %% Project Selection User->>DashboardView: Select Project DashboardView->>DashboardController: handleProjectSelection() DashboardController->>ProjectViewModel: updateSelectedProject() ProjectViewModel->>DB: fetchProjectDetails() DB-->>ProjectViewModel: project details ProjectViewModel-->>DashboardController: update project view DashboardController-->>DashboardView: refresh project data %% View Details User->>DashboardView: Click View Details DashboardView->>DashboardController: handleViewDetails() DashboardController-->>DashboardView: navigate to details view

Project Details Sequence Diagram

sequenceDiagram actor User participant DetailView participant DetailController participant ProjectViewModel participant TaskService participant FileService participant ResourceService participant DB %% Initial Load User->>DetailView: Open Project Details DetailView->>DetailController: initialize() DetailController->>ProjectViewModel: loadProjectsList() ProjectViewModel->>DB: fetchProjects() DB-->>ProjectViewModel: projects list ProjectViewModel-->>DetailController: updateProjectSelector() %% Project Selection User->>DetailView: Select Project DetailView->>DetailController: handleProjectSelection(projectId) par Project Info DetailController->>ProjectViewModel: getProjectDetails() ProjectViewModel->>DB: fetch project DB-->>ProjectViewModel: project data ProjectViewModel-->>DetailController: update project fields and Task List DetailController->>TaskService: getProjectTasks() TaskService->>DB: fetch tasks DB-->>TaskService: tasks data TaskService-->>DetailController: update tasksTable and File List DetailController->>FileService: getProjectFiles() FileService->>DB: fetch files DB-->>FileService: files data FileService-->>DetailController: update filesTable and Resources DetailController->>ResourceService: getProjectResources() ResourceService->>DB: fetch resources DB-->>ResourceService: resources data ResourceService-->>DetailController: update resourcesTable end DetailController-->>DetailView: refresh UI %% Task Operations User->>DetailView: Add Task DetailView->>DetailController: handleAddTask() DetailController->>TaskService: createTask(taskData) TaskService->>DB: save task DB-->>TaskService: confirmation TaskService-->>DetailController: update tasksTable %% File Operations User->>DetailView: Upload File DetailView->>DetailController: handleFileUpload() DetailController->>FileService: uploadFile(fileData) FileService->>DB: save file DB-->>FileService: confirmation FileService-->>DetailController: update filesTable %% Resource Management User->>DetailView: Add Resource DetailView->>DetailController: handleAddResource() DetailController->>ResourceService: addResource(resourceData) ResourceService->>DB: save resource DB-->>ResourceService: confirmation ResourceService-->>DetailController: update resourcesTable %% Progress Update DetailController->>ProjectViewModel: updateProgress() ProjectViewModel->>DB: save progress DB-->>ProjectViewModel: confirmation ProjectViewModel-->>DetailController: refresh progress bar DetailController-->>DetailView: update UI

Workshop Sequence Diagram

sequenceDiagram actor User participant WorkshopView participant WorkshopController participant ResourceManager participant LayerManager participant CanvasManager participant PropertyManager participant FileSystem %% Initial Load User->>WorkshopView: Open Workshop WorkshopView->>WorkshopController: initialize() par Resource Loading WorkshopController->>ResourceManager: loadResources() ResourceManager->>FileSystem: fetchResourceList() FileSystem-->>ResourceManager: resources ResourceManager-->>WorkshopController: updateResourceList() and Layer Setup WorkshopController->>LayerManager: initializeLayers() LayerManager-->>WorkshopController: layerStructure and Canvas Setup WorkshopController->>CanvasManager: setupCanvas() CanvasManager-->>WorkshopController: canvasReady end WorkshopController-->>WorkshopView: setup complete %% Resource Operations User->>WorkshopView: Select Resource WorkshopView->>WorkshopController: handleResourceSelection() WorkshopController->>ResourceManager: loadResource() ResourceManager-->>WorkshopController: resourceLoaded WorkshopController->>CanvasManager: placeResourceOnCanvas() %% Layer Management User->>WorkshopView: Add Layer WorkshopView->>WorkshopController: handleAddLayer() WorkshopController->>LayerManager: createNewLayer() LayerManager-->>WorkshopController: layerCreated WorkshopController->>CanvasManager: refreshLayers() %% Canvas Interactions User->>WorkshopView: Modify Canvas WorkshopView->>WorkshopController: handleCanvasAction() WorkshopController->>CanvasManager: processAction() CanvasManager->>PropertyManager: updateProperties() PropertyManager-->>WorkshopController: propertiesUpdated WorkshopController-->>WorkshopView: refresh view %% Save Operation User->>WorkshopView: Click Save WorkshopView->>WorkshopController: handleSave() WorkshopController->>CanvasManager: captureState() CanvasManager-->>WorkshopController: currentState WorkshopController->>FileSystem: saveProject() FileSystem-->>WorkshopController: saveConfirmed WorkshopController-->>WorkshopView: show success %% Undo/Redo User->>WorkshopView: Click Undo WorkshopView->>WorkshopController: handleUndo() WorkshopController->>CanvasManager: undoLastAction() CanvasManager->>PropertyManager: syncProperties() PropertyManager-->>WorkshopController: stateRestored WorkshopController-->>WorkshopView: refresh canvas

Project Performance Analysis Sequence Diagram

sequenceDiagram actor User participant AnalyticsView participant AnalyticsController participant ChartService participant ResourceService participant DB %% Initial Load User->>AnalyticsView: Open Analytics AnalyticsView->>AnalyticsController: initialize() AnalyticsController->>ChartService: loadProjectList() ChartService->>DB: fetchProjects() DB-->>ChartService: projects ChartService-->>AnalyticsController: updateProjectSelector %% Project Selection User->>AnalyticsView: Select Project AnalyticsView->>AnalyticsController: handleProjectSelection() par Overall Progress Chart AnalyticsController->>ChartService: getProgressData() ChartService->>DB: fetchProgressMetrics DB-->>ChartService: progress data ChartService-->>AnalyticsController: updatePieChart and Tasks Overview AnalyticsController->>ChartService: getTasksOverview() ChartService->>DB: fetchTaskMetrics DB-->>ChartService: tasks data ChartService-->>AnalyticsController: updateBarChart and Completion Rate AnalyticsController->>ChartService: getCompletionTrend() ChartService->>DB: fetchTrendData DB-->>ChartService: trend metrics ChartService-->>AnalyticsController: updateLineChart and Resource Table AnalyticsController->>ResourceService: getResourceUtilization() ResourceService->>DB: fetchResourceData DB-->>ResourceService: resource metrics ResourceService-->>AnalyticsController: updateTable end AnalyticsController-->>AnalyticsView: refreshUI AnalyticsController->>AnalyticsView: updateStatusBar AnalyticsView-->>User: Display Analytics %% Back Navigation User->>AnalyticsView: Click Back AnalyticsView->>AnalyticsController: handleBack() AnalyticsController-->>AnalyticsView: navigateToDashboard