Difference between revisions of "Slicer3:UIDesign:WorkingProblems:SlicerFlexibleLayout:UXP3"

From Slicer Wiki
Jump to: navigation, search
Line 18: Line 18:
 
** '''Question:''' what module is selected -- home? none?
 
** '''Question:''' what module is selected -- home? none?
 
* '''Question:''' What happens if the layout contains multiple GUI panels and user selects a new module from the toolbar?
 
* '''Question:''' What happens if the layout contains multiple GUI panels and user selects a new module from the toolbar?
** new module GUI replaces last module GUI to be touched
+
** new module GUI replaces last module GUI to be touched (?) or
 +
** new tab opens with module selected from the toolbar and layout associated with that module (?)
 
* '''Question:''' Are module GUIs part of a layout, or separate from a layout??  
 
* '''Question:''' Are module GUIs part of a layout, or separate from a layout??  
* Currently, we assume that each layout contains a module GUI somewhere. New, flexible layout designs may mean that layouts have NO module GUI! In that case, Module navigation can not happen at the application level. Instead, it only makes sense from within a module GUI. So each module GUI panel will keep its own history of modules it has displayed, and navigation will happen only within a module GUI's history.  
+
** Currently, we assume that each layout contains a module GUI somewhere. New, flexible layout designs may mean that layouts have NO module GUI! In that case, Module navigation can not happen at the application level. Instead, it only makes sense from within a module GUI. So each module GUI panel will keep its own history of modules it has displayed, and navigation will happen only within a module GUI's history.  
 
* However, toolbar essentially provides module navigation at the application level.  
 
* However, toolbar essentially provides module navigation at the application level.  
** Maybe we should make the toolbar automatically open a selected module GUI in a new tab, that displays a layout associated to the selected module.
+
** How about if the '''toolbar''' automatically open a selected module GUI in a new tab, that displays a layout associated to the selected module.
  
 
== Default layout at startup ==
 
== Default layout at startup ==

Revision as of 23:37, 10 February 2010

Home < Slicer3:UIDesign:WorkingProblems:SlicerFlexibleLayout:UXP3

Back to Flexible Layouts Overview

Adding multiple tabs to a Slicer application window

  • Challenge: Will be useful to specify and switch among multiple tabs in the main application window.
    • Each tab can display a layout, and that layout may include multiple views, multiple module guis, etc.
  • Displaying multiple module guis at once requires each module UI to contain module select/navigate controls.
  • Need controls for adding a tab, deleting current tab.
  • Slicer starts up: first time user sees welcome module in a single tab.
  • Slicer starts up: returning user sees their tabs from last session restored.

Open questions

  • Question: What is the desired behavior when user selects a module from the toolbar?
    • switch the currently raised tab's GUI.
  • Question: What happens when user selects "+" to add a new tab?
    • new tab is added with same layout as previously raised tab.
    • Question: what module is selected -- home? none?
  • Question: What happens if the layout contains multiple GUI panels and user selects a new module from the toolbar?
    • new module GUI replaces last module GUI to be touched (?) or
    • new tab opens with module selected from the toolbar and layout associated with that module (?)
  • Question: Are module GUIs part of a layout, or separate from a layout??
    • Currently, we assume that each layout contains a module GUI somewhere. New, flexible layout designs may mean that layouts have NO module GUI! In that case, Module navigation can not happen at the application level. Instead, it only makes sense from within a module GUI. So each module GUI panel will keep its own history of modules it has displayed, and navigation will happen only within a module GUI's history.
  • However, toolbar essentially provides module navigation at the application level.
    • How about if the toolbar automatically open a selected module GUI in a new tab, that displays a layout associated to the selected module.

Default layout at startup

Ok: we've just fired up Slicer and we see the following presentation (which is presumably restored from the application registry).

  • We see Slicer's Logo
  • The data module (my home module) is presented
  • A first tab indicating this module is shown (and indicator that shows I can create other tabs).
  • The data module GUI now contains controls for changing the raised module, or navigating among previously used modules.
  • If I use the module selector, or the module shortcuts in the toolbar, the tab name will change to reflect the module selected in this tab.
  • YUK: the line between navigating among modules and "layouts" can become blurry.
    • For instance: a developer may design their module to use a custom layout: say there are two GUI panels, a 3Dviewer and a plot viewer in MyCustomModule.
    • In the layout below, I have previously selected the "Data Module" and a "Conventional Layout". Now I choose "MyCustomModule" and both the GUI panel(s) and the layout change.
    • Question: What happens when I select the "last module" button to go back to the Data Module? -- does the layout change as well?

TabbedApplicationWindowStartup.png

Annotations of modifications to main application layout to accommodate tabs (and multiple module GUIs)

TabbedApplicationWindowStartupAnno.png

Adding a new tab

TabbedApplicationWindowNewTab.png

Adding a tab with a user-specified custom layout containing multiple module GUIs.

  • User clicks the + icon to create a new tab.
  • Tab is raised:
    • Question: what module if any is displayed in new tab? -- suggest none: just a module selector with "Select module:" in menubutton. (other ideas?)
    • Question: what layout is displayed in new tab? -- suggest same layout that is in previously raised tab. (thoughts?)
  • User selects Layouts->Define Custom Layout from toolbar
  • Layout designer interface pops up and
    • user defines a grid,
    • assigns views and UIs to panes,
    • names the new layout "Custom".
    • user exits the layout designer.
  • new pane is now presented according to "Custom" layout and is named "Custom_1".
  • user selects volumes module in one GUI panel, and data module in another UI panel in "Custom_1" tab.
  • If user selects "Models Module" from the toolbar:
    • Question: Which GUI panel changes?

TabbedApplicationWindowCustomLayout.png

  • If "Custom_1" tab contains NO module GUIs at all? -- say, just views and a plot widget:
    • Question: What happens when user selects "Models Module" from the toolbar?