Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 155984

Summary: [Cheat Sheet Authoring] New simple cheat sheet editor UI
Product: [Eclipse Project] PDE Reporter: Mike Pawlowski <mike.pawlowski>
Component: UIAssignee: Mike Pawlowski <mike.pawlowski>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: pde-ui-inbox
Version: 3.3   
Target Milestone: 3.3 M2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on:    
Bug Blocks: 146988    

Description Mike Pawlowski CLA 2006-09-01 10:40:50 EDT
Create the UI for a new simple cheat sheet editor.

Functionality required by Bug # 146988
Comment 1 Mike Pawlowski CLA 2006-09-02 15:55:51 EDT
Patch applied to HEAD in CVS

WORK DONE:

* Created two new simple cheat sheet model interface methods

  -> getName: to facilitate clean programming for tree section to access
     simple cheat sheet object names through PDE label provider
  
  -> getChildren: to facilitate clean programming for tree section to access
     simple cheat sheet object children through cheat sheet content provider

  -> Implemented new interface methods for all simple cheat sheet objects
     (11 underlying model classes)

* Created new simple cheat sheet editor extension

   -> Created new content type extension to associate XML files that contain 
      'cheatsheet' root elements with the simple cheat sheet editor

   -> Created associated simple cheat sheet editor contributor
   
   -> Created underlying simple cheat sheet editor class and hook in with
      simple cheat sheet input context

* Implemented the simple cheat sheet editor input context 

   -> Loads the XML simple cheat sheet file content into the simple cheat sheet
      model using the underlying model parsing facilities
      
   -> Flushs the simple cheat sheet model back to file using the underlying
      model parsing facilities

* Implemented the simple cheat sheet input context manager

* Copied in reasonable placeholder images to represent simple cheat sheet
  items, subitems, intros, onCompletions and commands in the master
  tree section

* Updated PDE label provider to retrieve associated simple cheat sheet object 
  names and images for simple cheat sheet items, subitems, intros, 
  onCompletions and commands in the master tree section
  
* Updated cheat sheet wizard to generate proper values for generated 
  simple cheat sheet using simple cheat sheet model on wizard finish
  
* Updated cheat sheet wizard to open new simple cheat sheet editor using
  generated simple cheat sheet content as input on wizard finish  

* Implemented master details block pattern for simple cheat sheet editor page

  -> Implemented the details page provider to update the details section
     with the appropriate section depending on the node selected in the 
     master tree section

* Implemented the UI and hooked in a content provider and label provider for
  the master tree section of the master details block pattern

* Implemented simple cheat sheet content provider for the master tree
  section in order to adapt elements in the simple cheat sheet model into
  a model representation suitable for the tree widget

* Implemented the UI and associated UI update facilities (read from the 
  simple cheat sheet model) for the following details sections of the master 
  details block pattern:

  -> items
  
  -> subitems
  
  -> cheatsheets
  
  -> descriptions
  
  -> intros
  
  -> commands

* Implemented feature to abort editor UI generation on invalid XML simple
  cheat sheet input 
  
  -> uses generated RuntimeException (temporary)

TODO:

* Submit image request to visual design team for images to represent simple 
  cheat sheet items, subitems, intros, onCompletions and commands in the master
  tree section
  
* Submit image request to visual design team for images to represent simple 
  cheat sheet actions, conditional subitems, repeated subitems, perform whens
  in the master tree section

* Implement the UI and associated UI update facilities (read from the 
  simple cheat sheet model) for the following details sections of the master 
  details block pattern:

  -> onCompletions
  
  -> actions
  
  -> conditional-subitems
  
  -> repeated-subitems
  
  -> perform-whens

* Solicit feedback from Wassim
  
FEEDBACK:

* Initial UI feedback provided by Dejan and Curtis too much to list for this 
  bug report

  -> Will open up each recommendation as a separate bug
 
Comment 2 Wassim Melhem CLA 2006-09-02 19:25:59 EDT
Good progress, Mike.

A couple of suggestions:

1. It appears as though the Cheat Sheet content tree is on its way to show a one-to-one mapping to the xml elements in the documents.  This is not necessary.  It would be better if we stayed away from that.

For example, I prefer to see an item's description as a property of that item in the UI, rather than a child element node of the 'item' node.  The fact that a 'description' is a subelement is just implementation-detail.

2. Also, the label for an 'item' in the tree should be based on the value of its 'title' attribute.  If such an attribute is not defined yet, then 'item' is fine.

The point here is that we want the labels/icons in the tree to be as descriptive as possible at a glance.  We don't want people to start clicking on each node to see what it does.  If that's the case, then they'd be better off looking at the content in a plain text editor, which we want to avoid.
Comment 3 Mike Pawlowski CLA 2006-09-05 01:34:47 EDT
Thanks for the feedback, Wassim.
Agree on all counts.
Curtis and Dejan voiced similar concerns.
Comment 4 Wassim Melhem CLA 2006-09-05 01:39:57 EDT
Mike, I disabled the editor for the I-build.
Comment 5 Mike Pawlowski CLA 2006-09-19 14:27:35 EDT
Patch released to HEAD in CVS

Work Done:

* Updated master tree view node labels to reflect actual node content
  -> Labels updated on save
  -> Created feature to truncate and trail off text (using '...')
     - Use for long labels

* Made master tree view node layout structure aesthetically a one-to-one 
  correspondence with the cheat sheet view

* Refactored out the help and command sections into a UI factory utility

* Created UI for commands
  -> Utilizes a separate section specifying the following:
     - A text field widget for the presentable command name
     - A command parameters table 
     - A browse button for Command Composer
  -> Utilize ParameterizedCommand as interface between editor and Command
     Composer
     
* Created new simple cheat sheet editor outline view