platform-help-home/proposals/helpview/index.htm
Parent Directory
|
Revision Log
Revision 1.1 - (view) (download) (as text)
| 1 : | dejan | 1.1 | <html> |
| 2 : | |||
| 3 : | <head> | ||
| 4 : | <meta http-equiv="Content-Language" content="en-us"> | ||
| 5 : | <meta name="GENERATOR" content="Microsoft FrontPage 6.0"> | ||
| 6 : | <meta name="ProgId" content="FrontPage.Editor.Document"> | ||
| 7 : | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> | ||
| 8 : | <title>Help Enhancements in Eclipse 3</title> | ||
| 9 : | </head> | ||
| 10 : | |||
| 11 : | <body> | ||
| 12 : | |||
| 13 : | <h1 align="center">Help Enhancements in Eclipse 3.1</h1> | ||
| 14 : | <p>This document describes new features added to provide for help and user | ||
| 15 : | assistance in Eclipse 3.1 release. The enhancements are still in progress and | ||
| 16 : | feedback is welcome. This document will be updated as changes are made towards | ||
| 17 : | the general availability of the release.</p> | ||
| 18 : | <h2>Help View</h2> | ||
| 19 : | <p>Most of the new help features revolve around the newly added Help view. The | ||
| 20 : | view is designed to be the universal location of most of the help needs inside | ||
| 21 : | the Eclipse workbench. The standard standalone help window from previous version | ||
| 22 : | is retained and is available via File>Help Contents. The role of the view is to | ||
| 23 : | bring help contents closer to the user inside the perspective where most of the | ||
| 24 : | work is done.</p> | ||
| 25 : | <p>The new Help view can show various classes of content in pages that are shown | ||
| 26 : | one at a time. The following classes are currently available: Related Topics, | ||
| 27 : | All Topics and Search.</p> | ||
| 28 : | <h3>Related Topics</h3> | ||
| 29 : | <p>This page shows help topics related to the current workbench context. It | ||
| 30 : | replaces the yellow info pop window when F1 is pressed in the workbench. It is | ||
| 31 : | also shown when context help is asked for programmatically. The topics | ||
| 32 : | include context help contributed via help context help extension point, as well | ||
| 33 : | as the result of a local help search on the query formed from the current | ||
| 34 : | context. For example, if the currently active workbench part is 'Package | ||
| 35 : | Explorer' inside the Java perspective, local help will be searched for ("Package | ||
| 36 : | Explorer view" OR "Java perspective"). The first few results will be shown in | ||
| 37 : | place, with the possibility to follow the link to more elaborate search.</p> | ||
| 38 : | <p align="center"> | ||
| 39 : | <img border="0" src="related-topics.gif" width="275" height="705"></p> | ||
| 40 : | <p>Related Topics page tracks changes in the workbench and updates accordingly. | ||
| 41 : | Workbench parts can affect the way Related Topics page works by supporting <code> | ||
| 42 : | IContextProvider</code> interface. This interface defines how the page should | ||
| 43 : | react to the active part:</p> | ||
| 44 : | <pre>public interface IContextProvider { | ||
| 45 : | /** | ||
| 46 : | * State change trigger indicating a static context provider. | ||
| 47 : | */ | ||
| 48 : | int NONE = 0x0; | ||
| 49 : | |||
| 50 : | /** | ||
| 51 : | * State change trigger indicating that the provider should be asked for | ||
| 52 : | * context help on each selection change. | ||
| 53 : | */ | ||
| 54 : | int SELECTION = 0x1; | ||
| 55 : | |||
| 56 : | /** | ||
| 57 : | * Returns the mask created by combining supported change triggers using the | ||
| 58 : | * bitwise OR operation. | ||
| 59 : | * | ||
| 60 : | * @return a bitwise-OR combination of state change triggers or | ||
| 61 : | * <code>NONE</code> for a static provider. | ||
| 62 : | */ | ||
| 63 : | int getContextChangeMask(); | ||
| 64 : | |||
| 65 : | /** | ||
| 66 : | * Returns a help context for the given target. The number of times this | ||
| 67 : | * method will be called depends on the context change mask. Static context | ||
| 68 : | * providers will be called each time the owner of the target is activated. | ||
| 69 : | * If change triggers are used, the method will be called each time the | ||
| 70 : | * trigger occurs. | ||
| 71 : | * | ||
| 72 : | * @param target | ||
| 73 : | * the focus of the context help | ||
| 74 : | * @return context help for the provided target or <code>null</code> if | ||
| 75 : | * none is defined. | ||
| 76 : | */ | ||
| 77 : | IContext getContext(Object target); | ||
| 78 : | |||
| 79 : | /** | ||
| 80 : | * Returns a search expression that should be used to find more information | ||
| 81 : | * about the current target. If provided, it can be used for background | ||
| 82 : | * search. | ||
| 83 : | * | ||
| 84 : | * @param target | ||
| 85 : | * the focus of the context help | ||
| 86 : | * @return search expression as defined by the help system search, or | ||
| 87 : | * <code>null</code> if background search is not desired. | ||
| 88 : | */ | ||
| 89 : | String getSearchExpression(Object target); | ||
| 90 : | }</pre> | ||
| 91 : | <p>Using the interface above can yield some interesting behavior. For example, | ||
| 92 : | if the context change mask is <code>SELECTION</code>, and <code>getContext</code> | ||
| 93 : | dynamically computes the context help for each selection, <b>Related Topics</b> | ||
| 94 : | will be highly dynamic. An example of this is support for Java editor where | ||
| 95 : | selections in the editor are reflected in the help view by showing the first | ||
| 96 : | sentence of Javadoc for the selected type.</p> | ||
| 97 : | <h3>All Topics</h3> | ||
| 98 : | <p>This page shows the Table of Contents tree you can also see in the classic <b> | ||
| 99 : | Help</b> window. The native Tree widget is tweaked somewhat to continue the | ||
| 100 : | 'web' user experience of the rest of the view. As a consequence, topics are | ||
| 101 : | opened on a single mouse click and cursor turns into a hand pointer when over | ||
| 102 : | the topics. However, tree item selections by the keyboard will not initiate the | ||
| 103 : | 'open' action - one needs to press 'Enter' to view the topic. This behavior | ||
| 104 : | provides for the expected keyboard navigation and makes the tree close in | ||
| 105 : | behavior to the counterpart in the Help window.</p> | ||
| 106 : | <p align="center">[<img border="0" src="all-topics.gif" width="278" height="709"></p> | ||
| 107 : | <h3>Search</h3> | ||
| 108 : | <p>One of the key new features in the new view is the <b>Search</b> page. The | ||
| 109 : | new mechanism supports federated search of multiple search engines running as | ||
| 110 : | background jobs. All engines run on the common search expression, but each | ||
| 111 : | engine's scope can be individually configured. Search expression follows certain | ||
| 112 : | rules that can be found when the label links above the text field is expanded:</p> | ||
| 113 : | <p align="center"> | ||
| 114 : | <img border="0" src="expanded-expression.gif" width="276" height="202"></p> | ||
| 115 : | <p>If the provided text is not sufficient, the help link should be followed to | ||
| 116 : | find more information.</p> | ||
| 117 : | <h4>Search Types</h4> | ||
| 118 : | <p>The new search support starts by providing the new extension point for | ||
| 119 : | contributing <b>engine types </b>(extension point id 'org.eclipse.help.ui.searchEngine'). An | ||
| 120 : | engine type is a proto-engine that can be | ||
| 121 : | instantiated and configured to perform a particular search. At the moment, | ||
| 122 : | Eclipse Help view provides three engine types out of the box:</p> | ||
| 123 : | <ul> | ||
| 124 : | <li><b>Local Help</b> - searches the local help documentation. Instances of | ||
| 125 : | this type | ||
| 126 : | do not require any configuration.</li> | ||
| 127 : | <li><b>Info Center</b> - searches Eclipse help remote installation as Info | ||
| 128 : | Center. Instances of this type require the remote server URL.</li> | ||
| 129 : | <li><b>Web Search</b> - searches a general-purpose Web search engine. | ||
| 130 : | Instances of this type require the web search URL template with substitution | ||
| 131 : | variable for the query.</li> | ||
| 132 : | </ul> | ||
| 133 : | <p>Most search needs can be satisfied by configuring one of the above search | ||
| 134 : | types. If that is not enough, new search types can be contributed using the | ||
| 135 : | above mentioned extension point. A good reason to contribute a new engine type is the existence | ||
| 136 : | of a separate domain where Eclipse users can find information for which there is | ||
| 137 : | a mechanism to issue complex queries and get results in a format suitable for | ||
| 138 : | parsing and presenting individually. For example, <b>Info Center</b> engine | ||
| 139 : | talks to the remote Web application to fetch the help books for scope | ||
| 140 : | configuration, as well as running the search and getting results in the XML | ||
| 141 : | format. If the remote search application does not provide results in a format | ||
| 142 : | that can be parsed, <b>Web Search</b> can be used to show the results in | ||
| 143 : | HTML format.</p> | ||
| 144 : | <p>Instances of search engine types can be created in two ways:</p> | ||
| 145 : | <ul> | ||
| 146 : | <li>Products can create engine instances as extension point contributions so | ||
| 147 : | that they show up out of the box</li> | ||
| 148 : | <li>Users can create new engines by choosing from the list of available types | ||
| 149 : | and configuring the selected engine type on the fly</li> | ||
| 150 : | </ul> | ||
| 151 : | <h4>Configuring engines</h4> | ||
| 152 : | <p align="center"> | ||
| 153 : | <img border="0" src="scope-section.gif" width="275" height="323"></p> | ||
| 154 : | <p>Users can influence the search outcome in several ways. The fastest way to | ||
| 155 : | tweak the search is to control which engine should run when 'Go' is pressed. | ||
| 156 : | This is done by expanding the 'Scope Settings' section and checking the engines | ||
| 157 : | that need to run. More detailed scope manipulation can be done when 'Advanced | ||
| 158 : | Settings' link is selected.</p> | ||
| 159 : | <p align="center"> | ||
| 160 : | <img border="0" src="search-scope-local.gif" width="627" height="542"></p> | ||
| 161 : | <p align="center"> | ||
| 162 : | <img border="0" src="search-scope-web.gif" width="628" height="542"></p> | ||
| 163 : | <p>The scope settings dialog is similar to preference pages and has nodes for | ||
| 164 : | each configured search engine. Each engine has a page that contains the master | ||
| 165 : | switch (linked to the one exposed in the scope section) and other scope settings | ||
| 166 : | below it. The actual widgets for configuring scope settings depend on the engine | ||
| 167 : | type. Local Help and Info Center types provide for narrowing the scope by | ||
| 168 : | selecting particular books. Web search type provides the URL template that is | ||
| 169 : | executed when search is performed.</p> | ||
| 170 : | <p>Users can add to the list of preconfigured engines by pressing the 'New...' | ||
| 171 : | button at the lower left edge of the dialog. This button brings up a dialog | ||
| 172 : | allowing users to choose the search engine type:</p> | ||
| 173 : | <p align="center"> | ||
| 174 : | <img border="0" src="engine-types.gif" width="401" height="500"></p> | ||
| 175 : | <p>All the settings made to the search engines are stored under one named | ||
| 176 : | preference set or <b>Scope Set</b>. Out of the box, the scope set that keeps the | ||
| 177 : | engine preferences is called 'Default'. By clicking on the scope name link in | ||
| 178 : | the <b>Search</b> page, it is possible to manipulate scope sets by creating new, | ||
| 179 : | editing and deleting them. Scope sets provide for quick switching between | ||
| 180 : | different search engine settings for all the configured engines at once.</p> | ||
| 181 : | <p align="center"><img border="0" src="scope-sets.gif" width="320" height="376"></p> | ||
| 182 : | <h4>Search results</h4> | ||
| 183 : | <p>When engines are selected for search, search expression is entered and Go is | ||
| 184 : | pressed, Search page will start each engine as a separate background job. As | ||
| 185 : | results arrive, they will be shown below the scope section grouped by | ||
| 186 : | engine (subject to selection of the tool bar button | ||
| 187 : | <img border="0" src="../../../org.eclipse.help.ui/icons/elcl16/desc_obj.gif" width="16" height="16">). Search results consist of entries that can be navigated to, and optional | ||
| 188 : | short description if the search engine supports it. When there are many results, | ||
| 189 : | the page is kept manageable by breaking results in to groups of 10 (this number | ||
| 190 : | will be configurable in the future). Search results can be shown flat, or | ||
| 191 : | additionally grouped by category (tool bar button | ||
| 192 : | <img border="0" src="../../../org.eclipse.help.ui/icons/elcl16/show_categories.gif" width="16" height="16">), | ||
| 193 : | where category definition is provided by the results. For local help and Info | ||
| 194 : | Center, categories are books the results are coming from (e.g. Workbench User | ||
| 195 : | Guide, JDT ISV Guide etc.). Custom search engines can define their own | ||
| 196 : | categories.</p> | ||
| 197 : | <p align="center"> | ||
| 198 : | <img border="0" src="search-results.gif" width="276" height="705"></p> | ||
| 199 : | <h3>Document Link Navigation</h3> | ||
| 200 : | <p>All the pages in the new Help view can be opened in two ways:</p> | ||
| 201 : | <ul> | ||
| 202 : | <li>Internal- the page content will replace the content area of the | ||
| 203 : | view (except the quick links at the bottom)</li> | ||
| 204 : | <li>External - the page will be shown in a separate window</li> | ||
| 205 : | </ul> | ||
| 206 : | <p>The actual choice between the two options is controlled by several factors:</p> | ||
| 207 : | <ul> | ||
| 208 : | <li>If the creation of the embedded browser page fails or the embedded | ||
| 209 : | browser in not supported on the particular OS, all links will be opened as | ||
| 210 : | external.</li> | ||
| 211 : | <li>If the link represents a help topic, it will be shown as internal. | ||
| 212 : | However, external window can be forced either from the link's pop-up menu or | ||
| 213 : | (in case of search results) from the image link next to the topic. Topics | ||
| 214 : | shown in the external window will be shown in the context of the help system | ||
| 215 : | (with TOC).</li> | ||
| 216 : | <li>If the link represents a random URL, it will be shown as internal. If | ||
| 217 : | external window is forced, it will be shown in a standalone web browser.</li> | ||
| 218 : | <li>Search result objects that implement <code>ISearchEngineResult</code> | ||
| 219 : | interface can demand that their link is opened as external (see <code> | ||
| 220 : | ISearchEngineResult.getForceExternalWindow()).</code></li> | ||
| 221 : | <li>Help document shown inside the Help view can be opened in the external | ||
| 222 : | mode by following the tool bar button <img border="0" src="browser.gif">.</li> | ||
| 223 : | </ul> | ||
| 224 : | |||
| 225 : | |||
| 226 : | |||
| 227 : | <p align="center"> | ||
| 228 : | <img border="0" src="browser-part.gif" width="277" height="705"></p> | ||
| 229 : | |||
| 230 : | |||
| 231 : | |||
| 232 : | <table border="1" cellpadding="0" style="border-collapse: collapse" width="100%" id="table1" bgcolor="#CCFFCC" bordercolor="#000000"> | ||
| 233 : | <tr> | ||
| 234 : | <td>An orthogonal effort is currently under way to provide Platform UI | ||
| 235 : | support for showing URLs. URLs can be shown in a read-only web browser | ||
| 236 : | editor or an external browser suitable for the current OS/WS | ||
| 237 : | combination. When/if this support becomes available, the definition of | ||
| 238 : | 'External' in the context of Help view will be 'the page will be shown | ||
| 239 : | in a separate <b>browser</b>'. Whether this browser opens in the editor | ||
| 240 : | area or as a separate browser window will be user | ||
| 241 : | preference.</td> | ||
| 242 : | </tr> | ||
| 243 : | </table> | ||
| 244 : | |||
| 245 : | |||
| 246 : | |||
| 247 : | </body> | ||
| 248 : | |||
| 249 : | </html> |
| help@eclipse.org | ViewVC Help |
| Powered by ViewVC 1.0.3 |
