|
2 | 2 | == General UI Guidelines |
3 | 3 |
|
4 | 4 |
|
5 | | -This document defines UI guidelines that are unique and specific to the |
6 | | -Eclipse platform. It is a supplement to the other standard UI guidelines |
7 | | -such as |
| 5 | +This document defines UI guidelines that are unique and specific to the Eclipse platform. |
| 6 | +It is a supplement to the other standard UI guidelines such as |
8 | 7 |
|
9 | 8 | - https://learn.microsoft.com/en-us/windows/apps/design/[Microsoft® Windows Design Guidelines] |
10 | 9 | - https://developer.apple.com/design/human-interface-guidelines/guidelines/overview/[Apple® Human Interface Guidelines] |
11 | 10 | - https://developer.gnome.org/hig/[GNOME Human Interface Guidelines] |
12 | 11 | - https://www.oracle.com/java/technologies/java-look-and-feel-graphics-repository.html[Java Look and Feel Guidelines] |
13 | 12 |
|
14 | | -You should continue to consult those guidelines for basic UI design and |
15 | | -implementation recommendations. |
| 13 | +You should continue to consult those guidelines for basic UI design and implementation recommendations. |
16 | 14 |
|
17 | | -It is expected that you already have a basic understanding of the |
18 | | -Eclipse UI architecture and APIs, and the basic UI design principles: |
19 | | -user in control, directness, consistency, forgiveness, feedback, |
20 | | -aesthetics, and simplicity. If you do not currently have the |
21 | | -prerequisite knowledge, please read the relevant documentation first. |
| 15 | +It is expected that you already have a basic understanding of the Eclipse UI architecture and APIs, |
| 16 | +and the basic UI design principles: |
| 17 | +user in control, directness, consistency, forgiveness, feedback, aesthetics, and simplicity. |
| 18 | +If you do not currently have the prerequisite knowledge, please read the relevant documentation first. |
22 | 19 |
|
23 | 20 | TIP: [[guideline1.1]]*Guideline 1.1* + |
24 | | -Follow and apply good user interface design principles: user in control, |
25 | | -directness, consistency, forgiveness, feedback, aesthetics, and |
26 | | -simplicity. |
| 21 | +Follow and apply good user interface design principles: |
| 22 | +user in control, directness, consistency, forgiveness, feedback, aesthetics, and simplicity. |
27 | 23 |
|
28 | 24 |
|
29 | 25 | === The Spirit of Eclipse |
30 | 26 |
|
31 | | -At its heart, Eclipse is a platform for tool plug-ins. These plug-ins |
32 | | -may be developed by a single team or by a partnership of teams, or the |
33 | | -user may assemble a set of plug-ins from diverse sources. In either |
34 | | -case, the usability of an individual tool, and Eclipse as a whole, will |
35 | | -be positively influenced by user interface consistency. |
| 27 | +At its heart, Eclipse is a platform for tool plug-ins. |
| 28 | +These plug-ins may be developed by a single team or by a partnership of teams, |
| 29 | +or the user may assemble a set of plug-ins from diverse sources. |
| 30 | +In either case, the usability of an individual tool, and Eclipse as a whole, |
| 31 | +will be positively influenced by user interface consistency. |
36 | 32 |
|
37 | | -If you're in doubt about the appropriate look and feel for a tool, look |
38 | | -to the platform first, then the Java development tooling and the Plug-in |
39 | | -Development Environment (PDE) in Eclipse for guidance. In many cases, |
40 | | -the workflow you imagine may already exist in Eclipse. If so, adopt the |
41 | | -platform's workflow and user interface conventions. This will lead to |
42 | | -greater consistency with the platform and other plug-ins, and an easier |
43 | | -learning curve for your customers. |
| 33 | +If you're in doubt about the appropriate look and feel for a tool, look to the platform first, |
| 34 | +then the Java development tooling and the Plug-in Development Environment (PDE) in Eclipse for guidance. |
| 35 | +In many cases, the workflow you imagine may already exist in Eclipse. |
| 36 | +If so, adopt the platform's workflow and user interface conventions. |
| 37 | +This will lead to greater consistency with the platform and other plug-ins, |
| 38 | +and an easier learning curve for your customers. |
44 | 39 |
|
45 | | -In some scenarios, it may be tempting to ignore the workflow of Eclipse |
46 | | -and implement a "custom" user interface. This interface will almost |
47 | | -certainly stand out like a sore thumb in an integrated environment, |
48 | | -where other tools adopt the platform conventions. You lose the benefit |
49 | | -of past experience, and force your customers to learn new ideas. |
| 40 | +In some scenarios, it may be tempting to ignore the workflow of Eclipse and implement a "custom" user interface. |
| 41 | +This interface will almost certainly stand out like a sore thumb in an integrated environment, |
| 42 | +where other tools adopt the platform conventions. |
| 43 | +You lose the benefit of past experience, and force your customers to learn new ideas. |
50 | 44 |
|
51 | | -Consult the xref:best_practices.adoc[Best Practices] section for examples |
52 | | -and more information. |
| 45 | +Consult the xref:best_practices.adoc[Best Practices] section for examples and more information. |
53 | 46 |
|
54 | | -Also, visit the https://github.com/eclipse-platform[Eclipse |
55 | | -Platform @ GitHub] to share information with the community. |
| 47 | +Also, visit the https://github.com/eclipse-platform[Eclipse Platform @ GitHub] to share information with the community. |
56 | 48 |
|
57 | 49 | TIP: [[guideline1.2]]*Guideline 1.2* + |
58 | 50 | Follow the platform lead for user interface conventions. |
59 | 51 |
|
60 | | -If you decide to reuse the conventions of Eclipse, be careful not to |
61 | | -misappropriate Eclipse specific UI conventions. For instance, the active |
62 | | -part in a workbench window is indicated by a shaded title. The use of |
63 | | -shaded titles within an editor (see below) may be one way to indicate |
64 | | -where the focus is, within that part, but it will also blur the concept |
65 | | -of part activation in the window. |
| 52 | +If you decide to reuse the conventions of Eclipse, be careful not to misappropriate Eclipse specific UI conventions. |
| 53 | +For instance, the active part in a workbench window is indicated by a shaded title. |
| 54 | +The use of shaded titles within an editor (see below) may be one way to indicate where the focus is, |
| 55 | +within that part, but it will also blur the concept of part activation in the window. |
66 | 56 |
|
67 | 57 | image::images/badHilight.png[badHilight] |
68 | 58 |
|
69 | 59 | TIP: [[guideline1.34]]*Guideline 1.3* + |
70 | | -Be careful not to mix UI metaphors. It may blur the original concept, |
71 | | -and your own application. |
| 60 | +Be careful not to mix UI metaphors. |
| 61 | +It may blur the original concept, and your own application. |
72 | 62 |
|
73 | 63 | TIP: [[guideline1.4]]*Guideline 1.4* + |
74 | 64 | If you have an interesting idea, work with the Eclipse community to make Eclipse a better platform for all. |
75 | 65 |
|
76 | 66 | === Capitalization |
77 | 67 |
|
78 | | -Consistent capitalization of text within a plug-in leads to a more |
79 | | -polished feel, and greater perception of quality. Within a dialog or |
80 | | -window, headline capitalization should be applied to all titles, menus, |
81 | | -tooltip, tabs, and push buttons. For example, "Run to Line" can be used |
82 | | -as a menu item label. |
| 68 | +Consistent capitalization of text within a plug-in leads to a more polished feel, |
| 69 | +and greater perception of quality. |
| 70 | +Within a dialog or window, headline capitalization should be applied to all titles, menus, tooltip, tabs, and push buttons. |
| 71 | +For example, "Run to Line" can be used as a menu item label. |
83 | 72 |
|
84 | | -Sentence style capitalization should be applied to all check boxes, |
85 | | -radio buttons, and group labels. For example, "Choose an option for the |
86 | | -Java file" can be used as a group label. |
| 73 | +Sentence style capitalization should be applied to all check boxes,radio buttons, and group labels. |
| 74 | +For example, "Choose an option for the Java file" can be used as a group label. |
87 | 75 |
|
88 | 76 | TIP: [[guideline1.5]]*Guideline 1.5* + |
89 | | -Use Headline style capitalization for menus, tooltip and all titles, |
90 | | -including those used for windows, dialogs, tabs, column headings and |
91 | | -push buttons. Capitalize the first and last words, and all nouns, |
92 | | -pronouns, adjectives, verbs and adverbs. Do not include ending |
93 | | -punctuation. |
| 77 | +Use Headline style capitalization for menus, tooltip and all titles, including those used for windows, dialogs, tabs, column headings and push buttons. |
| 78 | +Capitalize the first and last words, and all nouns, pronouns, adjectives, verbs and adverbs. |
| 79 | +Do not include ending punctuation. |
94 | 80 |
|
95 | 81 | TIP: [[guideline1.6]]*Guideline 1.6* + |
96 | | -Use Sentence style capitalization for all control labels in a dialog or |
97 | | -window, including those for check boxes, radio buttons, group labels, |
98 | | -and simple text fields. Capitalize the first letter of the first word, |
99 | | -and any proper names such as the word Java. |
| 82 | +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. |
| 83 | +Capitalize the first letter of the first word, and any proper names such as the word Java. |
100 | 84 |
|
101 | 85 | === Language |
102 | | -Eclipse is available on a variety of different platforms, in a variety |
103 | | -of locales. In reflection of the different languages and numeric formats |
104 | | -in each, a localization strategy should be adopted for the text and |
105 | | -images within each plug-in. This involves the separation of all |
106 | | -resources from the source code of a plug-in itself, so that those |
107 | | -resources can be translated to a new locale. |
| 86 | +Eclipse is available on a variety of different platforms, in a variety of locales. |
| 87 | +In reflection of the different languages and numeric formats in each, |
| 88 | +a localization strategy should be adopted for the text and images within each plug-in. |
| 89 | +This involves the separation of all resources from the source code of a plug-in itself, |
| 90 | +so that those resources can be translated to a new locale. |
108 | 91 |
|
109 | | -Consult the xref:best_practices.adoc[Best Practices] section for examples |
110 | | -and more information. |
| 92 | +Consult the xref:best_practices.adoc[Best Practices] section for examples and more information. |
111 | 93 |
|
112 | 94 | TIP: [[guideline1.7]]*Guideline 1.7* + |
113 | 95 | Create localized version of the resources within your plug-in. |
114 | 96 |
|
115 | 97 | === Error Handling |
116 | 98 |
|
117 | | -If an error occurs in Eclipse, the appropriate response will be |
118 | | -dependent on the context of the error. |
| 99 | +If an error occurs in Eclipse, the appropriate response will be dependent on the context of the error. |
119 | 100 |
|
120 | | -Please refer to xref:component_dev.adoc#wizards[Wizards] section for |
121 | | -guidelines on how to handle user input errors in a wizard. |
| 101 | +Please refer to xref:component_dev.adoc#wizards[Wizards] section for guidelines on how to handle user input errors in a wizard. |
122 | 102 |
|
123 | | -Please refer to xref:component_dev.adoc#editors[Editors] section for guidelines |
124 | | -on how to handle errors occurring in an editor. |
| 103 | +Please refer to xref:component_dev.adoc#editors[Editors] section for guidelines on how to handle errors occurring in an editor. |
125 | 104 |
|
126 | | -When an error occurs which requires either an explicit user input or |
127 | | -immediate attention from users, a modal dialog should be used to |
128 | | -communicate the error to the user. This forces the user to notice, and |
129 | | -deal with, the problem. |
| 105 | +When an error occurs which requires either an explicit user input or immediate attention from users, |
| 106 | +a modal dialog should be used to communicate the error to the user. |
| 107 | +This forces the user to notice, and deal with, the problem. |
130 | 108 |
|
131 | 109 | TIP: [[guideline1.8]]*Guideline 1.8* + |
132 | | -When an error occurs which requires either an explicit user input or |
133 | | -immediate attention from users, communicate the occurrence with a modal |
134 | | -dialog. |
| 110 | +When an error occurs which requires either an explicit user input or immediate attention from users, |
| 111 | +communicate the occurrence with a modal dialog. |
135 | 112 |
|
136 | | -If a programming error occurs in the product, an error dialog should be |
137 | | -used to communicate the occurrence to the user. The error should also be |
138 | | -logged using the workbench error logging facility. This gives the user |
139 | | -an opportunity to restart the platform, uninstall the corresponding |
140 | | -feature, and contact their system administrator. |
| 113 | +If a programming error occurs in the product, |
| 114 | +an error dialog should be used to communicate the occurrence to the user. |
| 115 | +The error should also be logged using the workbench error logging facility. |
| 116 | +This gives the user an opportunity to restart the platform, |
| 117 | +uninstall the corresponding feature, and contact their system administrator. |
141 | 118 |
|
142 | | -The plug-in should provide the following information in the detail area |
143 | | -of the error dialog: |
| 119 | +The plug-in should provide the following information in the detail area of the error dialog: |
144 | 120 |
|
145 | 121 | * Provider name |
146 | 122 | * Plug-in name (user friendly name) |
147 | 123 | * Plug-in ID |
148 | 124 | * Version |
149 | 125 |
|
150 | 126 | TIP: [[guideline1.9]]*Guideline 1.9* + |
151 | | -If a programming error occurs in the product, communicate the occurrence |
152 | | -with a dialog, and log it. |
| 127 | +If a programming error occurs in the product, communicate the occurrence with a dialog, and log it. |
153 | 128 |
|
0 commit comments