4.4 KiB
| id | ticket | title | status | created | completed | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0013 | studio-code-editor-workspace-foundations | Implement the read-only Code Editor workspace shell and passive surfaces | open | 2026-03-30 |
|
Objective
Replace the current hardcoded EditorWorkspace with the DEC-0008 read-only workspace shell: left navigator column with reserved Outline region, central tab/editor area, passive helper region, and passive status bar.
Background
The current EditorWorkspace is only a CodeArea mounted under a toolbar.
DEC-0008 requires a stable read-only composition that reserves future surfaces without implementing semantic or writable behavior yet.
Scope
Included
- Recompose
EditorWorkspaceinto the DEC-0008 structural layout. - Introduce passive placeholder surfaces for
Outline, helper, and status bar. - Replace write-oriented/editorially misleading controls with a first-wave read-only shell.
- Keep the central editor body ready to host read-only opened file content.
Excluded
- Project-tree scanning and refresh logic.
- Actual file opening/session state orchestration beyond the minimum shell integration points.
- Save, dirty tracking, write controls, or semantic/LSP behavior.
Execution Steps
Step 1 - Replace the current EditorWorkspace composition root
What:
Turn EditorWorkspace into a composition root that mounts the DEC-0008 layout instead of a single hardcoded CodeArea.
How: Refactor the current border-pane structure into explicit regions:
- left column for navigator + reserved outline region,
- central work area for tab strip + read-only editor body,
- bottom helper placeholder,
- bottom status bar. Prefer dedicated controls/panels over one large monolithic workspace class.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/editor/EditorWorkspace.javaprometeu-studio/src/main/java/p/studio/workspaces/editor/
Step 2 - Introduce passive placeholder controls
What: Add concrete passive UI surfaces for the reserved regions required by DEC-0008.
How: Create lightweight controls/panels for:
- reserved
Outlineregion, - passive helper region,
- passive status bar,
- and the tab-strip shell. These controls should be visually real, but functionally passive where DEC-0008 says behavior is deferred.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/editor/
Step 3 - Align editor chrome with read-only first-wave scope
What: Remove or neutralize UI affordances that imply writable/editor-semantic behavior not present in this wave.
How: Review the current toolbar and shell-level controls so the first-wave editor does not imply:
- save,
- run/build from inside the editor,
- active outline,
- or helper-driven functionality that does not exist yet. If a control must remain for layout reasons, make it visually passive and consistent with DEC-0008.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/editor/EditorToolbar.javaprometeu-studio/src/main/java/p/studio/workspaces/editor/
Test Requirements
Unit Tests
- Add focused tests for any pure layout/session-state model extracted from the workspace shell composition.
- If dedicated status/tab placeholder models are introduced, cover their default state with unit tests.
Integration Tests
- No JavaFX full integration harness is required as a prerequisite for this plan.
Manual Verification
- Verify the workspace visually matches DEC-0008 layout.
- Verify the left column contains navigator + reserved outline region.
- Verify the helper and status bar are present but passive.
- Verify no visible control implies save/write behavior in the first wave.
Acceptance Criteria
EditorWorkspaceis no longer a single hardcodedCodeAreaview.- The workspace visibly contains navigator, reserved outline region, central tab/editor area, helper placeholder, and status bar.
- The first-wave shell is visually coherent with DEC-0008 read-only scope.
- Placeholder surfaces are present without implying semantic or writable functionality.
Dependencies
- DEC-0008 accepted.
- PLN-0012 should land first or in parallel if the wording is stable.
Risks
- If the composition stays monolithic, later navigator/session work will be harder to integrate cleanly.
- Leaving write-oriented controls visible would immediately contradict DEC-0008 and confuse later implementation waves.