70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# PR-02 - Studio Shell Components Wave 1
|
|
|
|
## Briefing
|
|
|
|
The Studio has already decided that used visual controls should come through `prometeu-studio-components`.
|
|
|
|
Before implementing the new shell entry flow, the codebase needs the first component wave for the shell itself.
|
|
|
|
## Objective
|
|
|
|
Establish the first set of Studio shell controls in `prometeu-studio-components` so the launcher and shell work do not grow on top of raw JavaFX controls.
|
|
|
|
## Dependencies
|
|
|
|
- [`../specs/1. Studio Shell and Workspace Layout Specification.md`](../specs/1.%20Studio%20Shell%20and%20Workspace%20Layout%20Specification.md)
|
|
- [`../specs/3. Studio Components Module Specification.md`](../specs/3.%20Studio%20Components%20Module%20Specification.md)
|
|
- `PR-01 - StudioEventBus Foundation`
|
|
|
|
## Scope
|
|
|
|
- create the first shell-facing controls in `prometeu-studio-components`
|
|
- establish theme and i18n-safe control patterns
|
|
- wire the Studio shell to consume those controls
|
|
|
|
Initial candidate controls:
|
|
|
|
- shell menu surface
|
|
- workspace rail or workspace selector control
|
|
- right utility panel shell
|
|
- run surface control
|
|
- simple shell panel/header primitives as needed
|
|
|
|
## Non-Goals
|
|
|
|
- implementing the full Assets workspace
|
|
- introducing every future Studio control family
|
|
- building a generic docking framework
|
|
- solving project launcher behavior in full
|
|
|
|
## Execution Method
|
|
|
|
1. Define the first Studio shell controls in `prometeu-studio-components`.
|
|
2. Keep each control API small and Studio-facing.
|
|
3. Keep styling themeable through CSS.
|
|
4. Keep user-facing text bindable and locale-safe.
|
|
5. Establish explicit `subscribe()` and `unsubscribe()` lifecycle hooks in the control layer so event-driven controls can override them when needed.
|
|
6. Establish `onAttached()` and `onDetached()` hooks that call `subscribe()` and `unsubscribe()` respectively.
|
|
7. Refactor the shell layer in `prometeu-studio` to consume these controls instead of raw JavaFX where the controls are now available.
|
|
8. Avoid adding speculative controls with no immediate shell use.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- the first shell-facing controls exist in `prometeu-studio-components`
|
|
- those controls are used by the Studio shell code
|
|
- no new shell control work lands directly on raw JavaFX when a Studio control is now available
|
|
- event-driven controls have explicit subscribe and unsubscribe lifecycle hooks
|
|
- attach and detach lifecycle hooks drive subscription setup and teardown
|
|
- theme and i18n compatibility are preserved
|
|
|
|
## Validation
|
|
|
|
- compile validation of `prometeu-studio` and `prometeu-studio-components`
|
|
- smoke validation that the Studio still launches and renders the shell
|
|
|
|
## Affected Artifacts
|
|
|
|
- `prometeu-studio-components`
|
|
- `prometeu-studio` shell code
|
|
- shell styling and theme resources
|