Skip to content

Daedalus Ribbon Configuration Design (2026-04-10)

Design Goals

  • Keep ribbon as a thin orchestration layer.
  • Route actionable mutations through operation + adapter paths.
  • Avoid duplicate mutation logic between ribbon, menu, and sidebar.

Tab Model

  • home
  • draw
  • modify
  • annotate
  • view
  • layer
  • snapAssist
  • file

Group Model

  • Home: tools, history
  • Draw: quick tools, construction
  • Modify: transform, line edit, constraints
  • Annotate: dimension, annotation style
  • View: grid/zoom/minimap
  • Layer: layer manager, entity style, paper layout controls
  • SnapAssist: object snaps, quick draw assist, diagnostics
  • File: new/open/save/export

Command Wiring Policy

  • Ribbon action -> single function in D_Daedalus.vue
  • That function uses one of:
    • applyOperationWithHistoryCommand + shared execute helper
    • executeLayoutCommandEntry fallback only if operation command is unavailable
  • Avoid action-specific duplicated history execution blocks.

Layout/Viewport Controls Policy

  • Use edit-layouts command group for:
    • active space/layout switching
    • viewport add/remove/update/lock
    • title block and title fields
  • Keep pointer-move preview mutations outside history until pointer-up commit.

Duplication Cleanup Rule

  • Shared helper executes generated history command and applies post-steps:
    • applyLayoutStateFromDocument
    • markCoreSpatialIndexDirty
    • scheduleAutoSave

Next Maintenance Steps

  • Continue replacing repeated applyOperationWithHistoryCommand + execute boilerplate with shared helper usage.
  • Add lightweight unit tests for operationHistoryAdapter mapping of layout operations.

Last updated:

この記事の著者

MECHPHAISTOS | センサーを使わない保全

Yoshitaka Notoです。保全業務に携わり、AI時代の3Kと呼ばれるメンテナンス保全をもっと楽にしたい。 そういった保全ツール開発してます。