| 608 |
</tr> |
</tr> |
| 609 |
<tr> |
<tr> |
| 610 |
<td height="232" colspan="2" valign="top"> |
<td height="232" colspan="2" valign="top"> |
|
<p><strong>Team Goals:</strong></p> |
|
|
<ul> |
|
|
<li>P1: Simplify the programming model for contributing menu and toolbar items to the workbench (and their corresponding appearance and behaviour).</li> |
|
|
<li>P1: Improved control over menu definition and item ordering. Scenario: Search and Run menus.</li> |
|
|
<li>P1: Allow the selected object in a view to override an action, e.g. Rename in Navigator on Java element yields refactoring rename</li> |
|
|
<li>P1: Maintain a strong separation between a command, its handler(s) and its placement(s) in the UI</li> |
|
|
<li>P2: Address difficulty in determining keybindings to show for context menu items.</li> |
|
|
<li>P2: Support dynamic entries in (top-level) menus, e.g. File > New submenu, window list, recent file list, Run > Run As..., QuickDiffToggleAction </li> |
|
|
<li>P2: Keybindings for object contributions</li> |
|
|
<li>P2: Ability to define a default command handler</li> |
|
|
<li>P2: Provide a localized command service for parts to use (generalize IKeyBindingService), and support nesting of parts.</li> |
|
|
<li>P2: Improve support for contributing items to nested parts/pages (e.g. console view scenario, bug 75737).</li> |
|
|
<li>P2: Resolve problems with object contributions in editors (new and experimental in 3.1). See bug 75273.</li> |
|
|
<li>P3: Allow the same item to be placed in the UI in multiple places, while minimizing duplication (e.g. of XML enablement expressions).</li> |
|
|
<li>P3: Look up and execute existing behaviour in the interface by identifier, e.g. to support welcome, cheat sheets, macros, scripting</li> |
|
|
<li>P3: Address JFace impedence mismatch: no notion of commands or keybindings at JFace layer</li> |
|
|
<li>P4: Make workbench actions available for others to place elsewhere in IDE. Bug 71028.</li> |
|
|
</ul> |
|
| 611 |
<p><strong>Team:</strong></p> |
<p><strong>Team:</strong></p> |
| 612 |
<ul> |
<ul> |
| 613 |
<li>Nick Edgar</li> |
<li>Nick Edgar</li> |
| 615 |
<li>Douglas Pollock</li> |
<li>Douglas Pollock</li> |
| 616 |
<li>Michael Van Meekeren </li> |
<li>Michael Van Meekeren </li> |
| 617 |
</ul> |
</ul> |
| 618 |
<p><strong>Principles:</strong></p> |
|
| 619 |
The work on simplifying the programming model will follow these principles: |
<p>The goal is to make significant enhancements to the contributions mechanism.</p> |
|
<ul> |
|
|
<li>Model/UI separation. Commands and command handlers/actions are specified independently of their placement in the UI.</li> |
|
|
<li>Universal extensibility. Every menu and toolbar can be extended - structurally and content wise. Explicit sealing of menus may be an option.</li> |
|
|
<li>Universal keybindings. From user's point of view, every menu item and tool item can have a user defined keybinding. From the system's perspective, every command can be triggered by a key binding.</li> |
|
|
<li>Separation of structure content. The structure of menus (i.e. which groups they contain) is defined independently from the content of the menus (i.e. the concrete items). |
|
|
Everything must be explicitly defined (e.g., there is no implicit definition of new groups in menus).</li> |
|
|
<li>Fine-grained control over visibility. Items can specify their visibility based on a context and its properties (think of core expressions).</li> |
|
|
<li>Container-managed enablement. Allow the container for an item to choose whether enablement of the item is computed eagerly or on-demand. E.g. menus items can be done on demand, but tool items will need to be done more eagerly. Items determine their enablement based on the associated command handler. This may also apply to visibility.</li> |
|
|
</ul> |
|
| 620 |
|
|
| 621 |
<p><strong>Documents:</strong></p> |
<p><strong>Documents:</strong></p> |
| 622 |
<ul> |
<ul> |
| 623 |
<li><a href="../contributions-proposal/requestForComments.html">Proposal (v0.2)</a> [<a href="../contributions-proposal/requestForComments.pdf">PDF</a>] [<a href="../contributions-proposal/requestForComments.sxw">OpenOffice</a>]</li> |
<li><a href="../contributions-proposal/requestForComments.html">Proposal (v0.3)</a> [<a href="../contributions-proposal/requestForComments.pdf">PDF</a>] [<a href="../contributions-proposal/requestForComments.sxw">OpenOffice</a>]</li> |
| 624 |
<li>Complete example of the <a href="../contributions-proposal/fullExample-new.xml">proposed extension point syntax</a>.</li> |
<li>Complete example of the <a href="../contributions-proposal/fullExample-new.xml">proposed extension point syntax</a>.</li> |
| 625 |
<li>Complete example of the <a href="../contributions-proposal/fullExample.xml">existing extension point syntax</a>.</li> |
<li>Complete example of the <a href="../contributions-proposal/fullExample.xml">existing extension point syntax</a>.</li> |
| 626 |
<li><a href="../contributions-proposal/scenarios.html">Scenarios for contributing menu items and toolbar items in the Workbench</a>.</li> |
<li><a href="../contributions-proposal/scenarios.html">Scenarios for contributing menu items and toolbar items in the Workbench</a>.</li> |