Jump to: navigation, search

E4/Modeling

Modeling the Workbench and the Things in It

  • DOM/CSS
    • we need a simple uniform model API that can be styled much like is possible DOM and CSS
  • Provider style API
    • we need some type of uniform API for imposing a view structure on a model instance, i.e., a unification of ILabelProvider, IContentProvider, IFontProvider, and so on.
  • Event Bus
    • we need to make it easier to register listeners in a central location
  • Commands
    • we need a uniform mechanism for changing state
  • Tools for Modeling
    • we need high level tools to make it easy to develop models
  • Data binding
    • we need a mechanism for mapping a model of the data onto a model of the user interface
  • Constraints
    • we need ways of enforcing consistency

Current Eclipse GUI Artifacts

  • Workbench Window(s) (sizing frame, sys menu, min/max/close button?)
    • Main Menu (visible?, items)
      • Items/Sub-Menus
    • Trim
      • Top Trim
        • CBanner (visible?, split/tiled?
          • Main TB
            • Toolbars(groups) (chevrons?), Sub-Menus
          • Perspective Switcher
            • Menu Button (action, context menu)
            • Perspective Buttons (radio set, chevron?)
      • Left Trim
        • Minimized Stack
      • Bottom Trim
        • StatusLine (items...)
        • Stuff (FVB, Progress...)
  • Client Area (what's left over after the trim has been arranged)
    • Global Views (currently called 'sticky' views)
  • Perspective
    • Detached Windows for the active persp
    • Main Layout (ViewSashContainer)
      • Editor Area (Visible?, state)
        • EditorSashContainer
          • EditorStack(s) (chevron)
        • Sticky Right (ViewStack)
        • ViewStack(s)
          • ToolBar
          • CTabFolder (Site..., min/max handling 'supportsState'
            • items (label, image, active?, selected?)
            • tool area
            • msg area
  • Activation
    • Shell->WBW->Perspective->(View/Editor)
    • Editor Area (last active has no shading)
    • Active part (Help)
    • Menu/TB contents/state (including views)
  • What you don't (sometimes):
    • Detached Windows for inactive persps
    • ShellPool
    • Context menus
    • views open in other persps
    • pages(?) for non active persps
    • ContainerPlaceHolders
    • ViewPlaceHolders (preferred location)
    • Trim in the activation chain