Skip to content

Latest commit

 

History

History
564 lines (389 loc) · 20 KB

eclipse_ui_full_checklist.adoc

File metadata and controls

564 lines (389 loc) · 20 KB

Checklist for Developers

Here is a checklist for developers who are developing UI plugins. This could be used for certification purposes.

General UI Guidelines

The Spirit of Eclipse

Tip
Guideline 1.1
Follow and apply good user interface design principles: user in control, directness, consistency, forgiveness, feedback, aesthetics, and simplicity.
Tip
Guideline 1.2
Follow the platform lead for user interface conventions.
Tip
Guideline 1.3
Be careful not to mix UI metaphors. It may blur the original concept, and your own application.
Tip
Guideline 1.4
If you have an interesting idea, work with the Eclipse community to make Eclipse a better platform for all.

Capitalization

Tip
Guideline 1.5
Use Headline style capitalization for menus, tooltip and all titles, including those used for windows, dialogs, tabs, column headings and push buttons. Capitalize the first and last words, and all nouns, pronouns, adjectives, verbs and adverbs. Do not include ending punctuation.
Tip
Guideline 1.6
Use Sentence style capitalization for all control labels in a dialog or window, including those for check boxes, radio buttons, group labels, and simple text fields. Capitalize the first letter of the first word, and any proper names such as the word Java.

Language

Tip
Guideline 1.7
Create localized version of the resources within your plug-in.

Error Handling

Tip
Guideline 1.8
When an error occurs which requires either an explicit user input or immediate attention from users, communicate the occurrence with a modal dialog.
Tip
Guideline 1.9
If a programming error occurs in the product, communicate the occurrence with a dialog, and log it.

UI Graphics

Design

Tip
Guideline 2.1
Follow the visual style established for Eclipse UI graphics.
Tip
Guideline 2.2
Use a common color palette as the basis for creating graphical elements.
Tip
Guideline 2.3
Re-use the core visual concepts to maintain consistent representation and meaning across Eclipse plug-ins.
Tip
Guideline 2.4
Re-use existing graphics from the Common Elements library or other Eclipse-based plugins.
Tip
Guideline 2.5
Create and implement the graphical versions of the disabled state of toolbar and local toolbar icons.
Tip
Guideline 2.6
Use the design templates for creating and maintaining UI graphics to facilitate easy file sharing and efficient production of a large set of graphics.

Specifications

Tip
Guideline 2.7
Use the file format specified for the graphic type.
Tip
Guideline 2.8
Use the appropriate graphic type in the location it is designed for within the user interface.
Tip
Guideline 2.9
Follow the specific size specifications for each type of graphic.
Tip
Guideline 2.10
Cut the graphics with the specific placement shown to ensure alignment in the user interface.

Implementation

Tip
Guideline 2.11
Use the cutting actions provided to increase the speed and efficiency of cutting a large number of graphics.
Tip
Guideline 2.12
Abbreviate file name instead of using the full icon name, e.g., New Interface becomes "newint".
Tip
Guideline 2.13
Use lower case characters in your file names, e.g., DTD becomes "dtd".
Tip
Guideline 2.14
Use 10 characters or fewer in your file names if possible (underscores count as a character).
Tip
Guideline 2.15
Use a file name suffix that describes its location or function in the tool, e.g., newint_wiz, or its size in the case of icons that require multiple sizes.
Tip
Guideline 2.16
Keep the original file names provided.
Tip
Guideline 2.17
Follow the predefined directory structure and naming convention.
Tip
Guideline 2.18
Keep the original directory names provided.
Tip
Guideline 2.19
Minimize duplication of graphics within a plugin by keeping all graphics in one, or few, first level user interface directories.
Tip
Guideline 2.20
Use the active, enabled, and disabled states provided.

Component Development

Commands

Tip
Guideline 3.1
Each command must have a label, tool tip, and full color image. The label and tool tip must use Headline style capitalization.
Tip
Guideline 3.2
The command tooltip should describe the result of the command, not the current state of the command. Use the text same as that for the command label.
Tip
Guideline 3.3
Adopt the labeling terminology of the workbench for New, Delete and Add commands.
Tip
Guideline 3.4
A command should be enabled only if it can be completed successfully.
Tip
Guideline 3.5
Command enablement should be quick. If command enablement cannot be quick, enable the command optimistically and display an appropriate message if the command is invoked, but cannot be completed.

Dialogs

Tip
Guideline 4.1 When a dialog opens, set the initial focus to the first input control in the container. If there are no input controls, the initial focus should be assigned to the default button.
Tip
Guideline 4.2
Slush Bucket widget (or Twin Box) should flow from left to right with the source objects on the left hand side. It should have the >, >,

Wizards

Tip
Guideline 5.1
Use a wizard for any task consisting of many steps, which must be completed in a specific order.
Tip
Guideline 5.2
Each wizard must contain a header with a banner graphic and a text area for user feedback. It must also contain btn:[Back], btn:[Next], btn:[Finish], and btn:[Cancel] buttons in the footer.
Tip
Guideline 5.3
Start the wizard with a prompt, not an error message.
Tip
Guideline 5.4
Seed the fields within the wizard using the current workbench state.
Tip
Guideline 5.5
Validate the wizard data in tab order. Display a prompt when information is absent, and an error when information is invalid.
Tip
Guideline 5.6
Enable the btn:[Next] and btn:[Finish] buttons only if all required information in the dialog is present and valid.
Tip
Guideline 5.7
Remove all programming message ID’s from wizard text.
Tip
Guideline 5.8
Use a btn:[Browse…​] Button whenever an existing object is referenced in a wizard.
Tip
Guideline 5.9
If a new file is created, open the file in an editor. If a group of files are created, open the most important, or central file in an editor. Open the readme.html file upon creation of an example project.
Tip
Guideline 5.10
If a new project is created, prompt users and change the active perspective to suit the project type.
Tip
Guideline 5.11
If a new object is created, select and reveal the new object in the appropriate view.
Tip
Guideline 5.12
Create folder objects in a wizard if reasonable defaults can be defined.
Tip
Guideline 5.13
Use the term "Project name" for the input field label when the item must be a Project; otherwise, use the term "Folder name". Do not qualify the term.

Editors

Tip
Guideline 6.1
Use an editor to edit or browse a file, document, or other primary content.
Tip
Guideline 6.2
Modifications made in an editor should follow an open-save-close lifecycle model.
Tip
Guideline 6.3
Only one instance of an editor may exist, for each editor input, within a perspective.
Tip
Guideline 6.4
It must be possible to open a separate instance of an editor for each different input.
Tip
Guideline 6.5
The editor should be labeled with the name of the file, document, or input being edited.
Tip
Guideline 6.6
In multipage editors, use a tab control for page activation. Tab labels should be kept to one word, and two words at most.
Tip
Guideline 6.7
All of the commands, except for the obvious commands, available in the editor should be added to the window menu bar.
Tip
Guideline 6.8
Use the standard format for editor contributions in the window menu bar.
Tip
Guideline 6.9
If an editor has support for Cut, Copy, Paste, or any of the global commands, these commands must be executable from the same commands in the window menu bar and toolbar.
Tip
Guideline 6.10
Fill the editor toolbar with the most commonly used items in the view menu.
Tip
Guideline 6.11
Fill the context menu with selection oriented commands.
Tip
Guideline 6.12
Use the standard format for editor context menus.
Tip
Guideline 6.13
Fill the context menu with a fixed set of commands for each selection type, and then enable or disable each to reflect the selection state.
Tip
Guideline 6.14
Register all context menus in the editor with the platform.
Tip
Guideline 6.15
Implement a Command Filter for each object type in the editor.
Tip
Guideline 6.16
If the input to an editor is deleted, and the editor contains no changes, the editor should be closed.
Tip
Guideline 6.17
If the input to an editor is deleted, and the editor contains changes, the editor should give the user a chance to save their changes to another location, and then close.
Tip
Guideline 6.18
If the resource is dirty, prefix the resource name presented in the editor tab with an asterisk.
Tip
Guideline 6.19
Treat read-only editor input as you would any other input. Enable the menu:[Save As] if possible. Display "Read-only" in the status bar area.
Tip
Guideline 6.20
If the data within an editor is too extensive to see on a single screen, and will yield a structured outline, the editor should provide an outline model to the Outline view.
Tip
Guideline 6.21
Notification about location between an editor and the Outline view should be two-way. A context menu should be available in the Outline view as appropriate.
Tip
Guideline 6.22
An error or warning image should be added to items with the error or warning respectively. A container should have a red X if it there are errors on the container itself, a gray X if any of its descendents have errors (but not the container itself), and no X if neither the container nor any of its descendents have errors.
Tip
Guideline 6.23
If appropriate, implement the "Add Task" feature in your editor.
Tip
Guideline 6.24
If appropriate, implement the "Add Bookmark" feature in your editor.
Tip
Guideline 6.25
Editors with source lines of text should show the current line and optionally column numbers the status line. It’s optional for the editor to show line numbers for each line in the editor itself.
Tip
Guideline 6.26
Table cell editors should support the single-click activation model, and in edit mode, they should render complex controls upon single-click.
Tip
Guideline 6.27
Changes made in a table cell editor should be committed when a user clicks off the cell or hits the kbd:[Enter] key. Selection should be cancelled when user hits the kbd:[Esc] key. First letter navigation should be supported as a cursoring mechanism within a cell.
Tip
Guideline 6.28
When performing fine-grain error validation in an editor, use red squiggles to underline the invalid content. When users move the mouse over the red squiggles, display the error text in a fly-over pop up box.
Tip
Guideline 6.29
Use the Task view to show errors found when the Save command is invoked.
Tip
Guideline 6.30
If modifications to a resource are made outside of the workbench, users should be prompted to either override the changes made outside of the workbench, or back out of the Save operation when the Save command is invoked in the editor.

Views

Tip
Guideline 7.1
Use a view to navigate a hierarchy of information, open an editor, or display the properties of an object.
Tip
Guideline 7.2
Modifications made within a view must be saved immediately.
Tip
Guideline 7.3
Only one instance of a view may exist in a perspective.
Tip
Guideline 7.4
A view must be able to be opened in more than one perspective.
Tip
Guideline 7.5
A view can be opened from the menu:Window[Show View] menu.
Tip
Guideline 7.6
The view label in the title bar must be prefixed with the label of the view in the menu:Perspective[Show View] menu.
Tip
Guideline 7.7
If a view contains more than one control, it may be advisable to split it up into two or more views.
Tip
Guideline 7.8
When a view first opens, derive the view input from the state of the perspective.
Tip
Guideline 7.9
If a view displays a resource tree, consider using the window input as the root of visible information in the view.
Tip
Guideline 7.10
Use the view pulldown menu for presentation commands, not selection-oriented commands.
Tip
Guideline 7.11
Use the standard order of commands for view pulldown menus.
Tip
Guideline 7.12
Put only the most commonly used commands on the toolbar. Any command on a toolbar must also appear in a menu, either the context menu or the view menu.
Tip
Guideline 7.13
Fill the context menu with selection oriented actions, not presentation actions.
Tip
Guideline 7.14
Use the standard order of commands for view context menus.
Tip
Guideline 7.15
Fill the context menu with a fixed set of commands for each selection type, and then enable or disable each to reflect the selection state.
Tip
Guideline 7.16
If an object appears in more than one view, it should have the same context menu in each.
Tip
Guideline 7.17
Register all context menus in the view with the platform.
Tip
Guideline 7.18
Implement a Command Filter for each object type in the view.
Tip
Guideline 7.19
If a view has support for Cut, Copy, Paste, or any of the global commands, these commands must be executable from the same commands in the window menu bar and toolbar.
Tip
Guideline 7.20
Persist the state of each view between sessions.
Tip
Guideline 7.21
Navigation views should support "Link with Editor" on the view menu.

Perspectives

Tip
Guideline 8.1
Create a new perspective type for long lived tasks, which involve the performance of smaller, non-modal tasks.
Tip
Guideline 8.2
If you just want to expose a single view, or two, extend an existing perspective type.
Tip
Guideline 8.3
The size and position of each view in a perspective should be defined in a reasonable manner, such that the user can resize or move a view if they desire it. When defining the initial layout, it is important to consider the overall flow between the views (and editors) in the perspective.
Tip
Guideline 8.4
If a perspective has just one part, it may be better suited as a view or editor.
Tip
Guideline 8.5
If it is undesirable to have an editor area in a perspective, hide it. Do not resize the editor area to the point where it is no longer visible.
Tip
Guideline 8.6
Populate the window menu bar with commands and command sets which are appropriate to the task orientation of the perspective, and any larger workflow.
Tip
Guideline 8.7
A new perspective should be opened only if the user explicitly states a desire to do so. In making this statement, the user agrees to leave their old context, and create a new one.
Tip
Guideline 8.8
If a new perspective is opened as a side effect of another command, the user should be able to turn this behavior off.
Tip
Guideline 8.9
If a new perspective is opened, it should be opened within the current window, or in a new window, depending on the user preference.
Tip
Guideline 8.10
The list of shortcuts added to the menu:New[], menu:Open Perspective[], and menu:Show View[] menus should be at most 7 plus / minus 2 items.

Windows

Tip
Guideline 9.1
Use an Action Set to contribute actions to the window menu bar and toolbar.
Tip
Guideline 9.2
Follow the platform lead when distributing actions within an Action Set.
Tip
Guideline 9.3
Contribute actions to the window menu bar first, and then to the window toolbar if they will be frequently used.
Tip
Guideline 9.4
Define each action set with a specific task in mind.
Tip
Guideline 9.5
An action set should contain the smallest possible semantic chunking of actions. Avoid the temptation to provide only one action set for an entire plug-in.
Tip
Guideline 9.6
Use an action set to share a set of actions which are useful in two or more views or editors.
Tip
Guideline 9.7
Let the user control the visible action sets. Don’t try to control it for them.
Tip
Guideline 9.8
"Open Object" actions must appear in the menu:Navigate[] pulldown menu of the window.
Tip
Guideline 9.9
Always use the global status bar to display status related messages.

Properties

Tip
Guideline 10.1
Use the Properties view to edit the properties of an object when quick access is important, and you will switch quickly from object to object.
Tip
Guideline 10.2
Use a Properties Dialog to edit the properties of an object which are expensive to calculate.
Tip
Guideline 10.3
Use a Properties Dialog to edit the properties of an object which contain complex relationships to one another.
Tip
Guideline 10.4
Properties Dialog should contain the superset of items shown in the Properties view.

Widgets

Tip
Guideline 11.1
For Tree and Table widgets that have a checkbox associated with a cell item, changing the current selection should not automatically change the check state of the selected item. However, the current selection should be set to a given item when its check state is changed.

Standard Components

Tip
Guideline 12.1
If appropriate, add actions to standard components of Eclipse using the plug-in registry.
Tip
Guideline 12.2
If you subclass or copy any of the standard components, always carry over the standard components' characteristics.

The Navigator View

Tip
Guideline 13.1
Add actions to the Navigator View menu, toolbar, and context menu using the plug-in registry.
Tip
Guideline 13.2
Use the attributes defined in IResourceActionFilter.java and IProjectActionFilter.java to control the visibility of context menu actions in the Navigator.
Tip
Guideline 13.3
Use a menu:Navigate[Show In Navigator] command in each view, to link resources back to the Navigator.

The Tasks View

Tip
Guideline 14.1
Add markers (tasks, errors and warnings) to the Tasks view using the Marker Manager services from the Core Resources Management plugin.
Tip
Guideline 14.2
The description text of each marker should be short and concise, so that it will fit in the status line of Eclipse.
Tip
Guideline 14.3
Add actions to the Tasks view menu, toolbar, and context menu using the plug-in registry.
Tip
Guideline 14.4
Use the attributes defined in IMarkerActionFilter.java to control the visibility of context menu actions in the Tasks view.
Tip
Guideline 14.5
Support kbd:[F1] keyboard command and link it to an infopop that gives a detailed description of the selected item in the Task view.

The Preference Dialog

Tip
Guideline 15.1
Global options should be exposed within the Preferences Dialog.
Tip
Guideline 15.2
Expose the preferences for a particular view, editor or window in the view itself, via a menu or tool item.
Tip
Guideline 15.3
Start out with a single preference page. Then evolve to more if you need to.
Tip
Guideline 15.4
If you create a preference group, use the root page for frequently used preferences, or those preferences which have wide spread effect Specialize within the sub pages. The root preference page should not be blank.
Tip
Guideline 15.5
Attempt to integrate plug-in preferences, wizards, and views into existing categories for a new plug-in first, before considering the creation of a new category.

Flat Look Design

Tip
Guideline 16.1
Use Flat Look design for user scenarios that involves extensive property and configuration editing.
Tip
Guideline 16.2
Have the core sections on the overview page expanded, and provide a "Home" icon on other pages to take users back to the overview page.
Tip
Guideline 16.3
Use grouping elements corresponding to tabs in the Flat Look content editor for the organization of the tree view in outline view.

The Tao of Resource

Tip
Guideline 17.1
Expose the resource for resource equivalent model objects using an IContributorResourceAdapter.

Accessibility

Tip
Guideline 18.1
All of the features provided by a tool should be accessible using a mouse or the keyboard.