Skip to content

feat: Modellgetriebenes Command-System, Command Palette, XMI-Import#47

Open
vwfox wants to merge 3 commits into
mainfrom
ui-improvements
Open

feat: Modellgetriebenes Command-System, Command Palette, XMI-Import#47
vwfox wants to merge 3 commits into
mainfrom
ui-improvements

Conversation

@vwfox
Copy link
Copy Markdown
Contributor

@vwfox vwfox commented May 18, 2026

Summary

  • Command-System: Modellgetriebene Commands via Ecore, CommandRegistry, KeybindingService
  • Command Palette (Ctrl+Shift+P): Fuzzy-Suche, Kategorien, Keyboard-Navigation
  • ProposedActions: Server-vorgeschlagene Folge-Commands mit ApprovalDialog
  • XMI-Import (UC-ACT-006 / Fixes Minimal Instanceviewer #36): Replace/Merge-Dialog, Dangling-Reference-Check
  • StatusBar: Animierter Spinner + Running X Jobs
  • 12 Plugin-Ecores, 43 neue Unit-Tests, 3 E2E-Tests

Test plan

  • Ctrl+Shift+P oeffnet Command Palette
  • Remote Action mit Test-Server: ApprovalDialog zeigt ProposedActions
  • XMI-Import: Replace ersetzt, Merge fuegt hinzu
  • StatusBar zeigt Running Jobs, Click oeffnet Jobs-Panel
  • npm run test:unit: 130 Tests bestehen

vwfox added 3 commits May 13, 2026 12:33
- Jede Property als eigenes Fieldset statt gruppierte Felder
- Gruppen (Attributes, References, Derived) als zentrierte Überschriften
  mit dezenter Primary-Color Verlaufslinie
- Fieldsets mit mehr Abstand (margin 1.25rem)
- Labels kompakter (0.8125rem, secondary color)
- Non-containment Referenzen: Dropdown+Button durch einheitliches
  Popup-Menü ersetzt (gleich wie containment Add)
- Listen: dezentere Zebrastreifen, kein Doppel-Scroll
- Validation: roter Rahmen für invalide Felder im Dark Theme
- Dark Theme: --surface-border dezenter (transparent)
- Metamodel-Modus: eSuperTypes können jetzt hinzugefügt werden
  (Kandidaten aus rootPackage statt Instance-Tree)
- Keine Duplikate mehr bei non-containment Referenz-Kandidaten
- Jede Property als eigenes Fieldset statt gruppierte Felder
- Gruppen (Attributes, References, Derived) als zentrierte Überschriften
  mit dezenter Primary-Color Verlaufslinie
- Non-containment Referenzen: einheitliches Popup-Menü statt Dropdown+Button
- Listen: dezentere Zebrastreifen, kein Doppel-Scroll, Hover-Effekte
- Validation: roter Rahmen für invalide Felder im Dark Theme
- Dark Theme: --surface-border dezenter
- Metamodel-Modus: eSuperTypes hinzufügen über Add-Menü und Suche
  (Kandidaten aus rootPackage, Suche nutzt rootPackage-Resource)
- Keine Duplikate bei Referenz-Kandidaten, built-in Packages gefiltert
…gs und XMI-Import

Command-System Infrastruktur:
- command-model.ecore: Basis-Modell mit CommandInterface, CommandScope, CommandCategory
- EcoreCommandParser: Parst Ecore-XML und extrahiert CommandDefinitions aus EOperations
- CommandRegistry: Zentrales Command-Register mit When-Auswertung und ActionRegistry-Bridge
- KeybindingService: Keyboard-Shortcut-System mit globalem keydown-Listener

UI-Komponenten:
- CommandPalette (Ctrl+Shift+P): Fuzzy-Suche, Kategorien, Keyboard-Navigation
- ActionApprovalDialog: Bestaetigungs-Dialog fuer Server-ProposedActions
- XmiImportDialog: Replace/Merge-Auswahl fuer XMI-Import (UC-ACT-006)
- StatusBar: Animierter Spinner + "Running X Jobs" bei laufenden Jobs

Plugin-Integration (12 Plugins):
- Jedes Plugin definiert Commands in model/*-commands.ecore
- Commands werden in activate() via registerCommandsFromEcore() registriert
- ui-actions als Dependency in allen Plugin-Manifests
- vite-env.d.ts fuer *.ecore?raw Imports

Remote Action Flow:
- RemoteExecutor: XMI-Response-Parsing mit ProposedAction-Extraktion
- AsyncPoller: XMI-Result-Parsing und EventBus-Emission bei Job-Abschluss
- ActionManager: EventBus-Retry fuer spaete Verfuegbarkeit
- ProposedAction in action-api.ecore und ActionApiPackage

UC-ACT-006 XMI-Import:
- instance.importXmi Command mit REPLACE/MERGE Modi
- REPLACE: Resource leeren + neu laden
- MERGE: Objekte zur bestehenden Resource hinzufuegen
- Dangling-Reference-Check nach Import
- Fehler ins Problems-Panel bei fehlgeschlagenem Import

Tests:
- 43 Unit-Tests (EcoreCommandParser, CommandRegistry, KeybindingService, ActionApproval)
- E2E-Tests fuer Command Palette, Jobs Panel, Remote Action Approval

Fixes #36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Minimal Instanceviewer

1 participant