platform-ui-home/R3_1/dynamic_teams/dynamic_teams.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (view) (download) (as text)

1 : mvanmeek 1.1 <html>
2 :     <head>
3 :     <title>Platform UI 3.1</title>
4 :     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5 :     <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
6 : mvanmeek 1.2
7 : mvanmeek 1.5 <style type="text/css">
8 :     <!--
9 :     .style1 {
10 :     color: #FF3333;
11 :     font-weight: bold;
12 :     }
13 :     -->
14 :     </style>
15 : mvanmeek 1.1 </head>
16 :    
17 :     <body bgcolor="#FFFFFF" text="#000000">
18 :     <table border=0 cellspacing=5 cellpadding=2 width="100%" >
19 :     <tr>
20 : mvanmeek 1.3 <td align=left width="72%"> <font class=indextop>&nbsp; </font>
21 : mvanmeek 1.1 <font class=indexsub> platform user Interface</font></td>
22 :     <td width="28%">
23 :     <img src="http://dev.eclipse.org/images/Idea.jpg" height=86 width=120
24 :     alt="Eclipse documentation banner"
25 :     ></td>
26 :     </tr>
27 :     </table>
28 : mvanmeek 1.3 <h3 align="left">Dynamic Teams</h3>
29 :     <ul>
30 : nick 1.12 <li><a href="dynamic_teams.html#preferences">Preferences</a></li>
31 :     <li><a href="dynamic_teams.html#actionContributions">Action Contributions</a></li>
32 :     <li><a href="dynamic_teams.html#navigatorFramework">Navigator Framework</a></li>
33 : mvanmeek 1.3 </ul>
34 : mvanmeek 1.1 <table border=0 cellspacing=5 cellpadding=2 width="100%" >
35 : nick 1.12 <tr> <a NAME="preferences"> </a>
36 : mvanmeek 1.6 <td width="96%" height="25" colspan="2" align=LEFT valign=TOP bgcolor="#0080C0"><strong><a name="team1"><font color="#FFFFFF" face="Arial,Helvetica">Preference</font></a><font color="#FFFFFF" face="Arial,Helvetica">s</font><font color="#FFFFFF"></font></strong></td>
37 : nick 1.12 </tr>
38 : mvanmeek 1.1 <tr>
39 : mvanmeek 1.7 <td><p><strong>Team Goals in no particular order:</strong></p>
40 : mvanmeek 1.1 <ol>
41 : mvanmeek 1.2 <li>Simplify the preferences UI</li>
42 : mvanmeek 1.7 <li>Establish the approach for adopting the R3.0 Core support for preferences
43 : mvanmeek 1.2 <ol>
44 : mvanmeek 1.7 <li>define the compatibility story for both UI and Core existing API
45 :     </li>
46 :     <li>document a model that plug-ins should use when using preference
47 :     scopes</li>
48 :     <li>Import/Export - define strategy to be used for import and export
49 :     re: scopes </li>
50 : mvanmeek 1.1 </ol>
51 :     </li>
52 : mvanmeek 1.4 <li>Support better ways to make preferences available throughout the UI</li>
53 : mvanmeek 1.1 </ol>
54 : mvanmeek 1.2 <p><strong>Team:</strong></p>
55 :     <ul>
56 : mvanmeek 1.25 <li>Monsignor Tod Creasey</li>
57 : mvanmeek 1.16 <li>DJ Houghten</li>
58 : mvanmeek 1.2 <li>Tom Eicher</li>
59 :     <li>Martin Aeschlimann</li>
60 :     <li>Michael Van Meekeren </li>
61 : mvanmeek 1.25 <li>(Visual Design) Linda Watson</li>
62 : mvanmeek 1.7 </ul>
63 : mvanmeek 1.22 <p><strong>Planned Work for M4 (committed items): </strong></p>
64 : mvanmeek 1.2 <ol>
65 : mvanmeek 1.7 <li> <img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
66 : mvanmeek 1.9 Preference page sharing/navigation:
67 : mvanmeek 1.7 <ol>
68 :     <li>editing multiple preference pages simultaneously /preference page
69 :     dependancies
70 :     <ol>
71 :     <li>Oct 19 - 26 Martin to investigate this as well as details
72 :     related to how to keep information that is shared accross pages
73 :     in sync</li>
74 :     <li><strong>Oct 26 - Nov 2 </strong>
75 :     <ol>
76 : mvanmeek 1.9 <li><a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-ui-home/r3_1/proposals/preferences/usability-improvement-suggestions.html">See
77 :     Tom and Martins documentation on overall preference navigation/usability/sharing</a>
78 : mvanmeek 1.10 <ol>
79 :     <li>linking style is supported but can be different per
80 :     page</li>
81 :     <li>will take up less space, need some guidelines for
82 :     commonly used links like &quot;advanced&quot;</li>
83 :     <li>need history controls to move back and forth</li>
84 :     <li>what about jumping around in the lists when the selection
85 :     changes </li>
86 :     <li>how do you open a linked page on specific information</li>
87 :     <li>searching, need to have a prototype</li>
88 :     <li>working copy, need to have a prototype</li>
89 :     </ol>
90 : mvanmeek 1.9 </li>
91 : mvanmeek 1.7 <li>Example 1. Java build path affects other applications
92 :     build path</li>
93 :     <li>Example 2. pages show a preview but preview is affected
94 :     by other pages</li>
95 :     <li>Example 3. project options inherits from instance settings</li>
96 :     <li>pages don't share information
97 :     <ol>
98 :     <li>force apply when page left?</li>
99 :     <li>working copy which is a copy of preferences that all
100 :     pages are working on?</li>
101 :     <li>pages should be organized better, combine pages via
102 :     links or combining the</li>
103 :     </ol>
104 :     </li>
105 :     <li>Important to list the scenarios</li>
106 :     </ol>
107 :     </li>
108 : mvanmeek 1.10 <li><strong>Nov 9 - 16</strong>
109 :     <ol>
110 :     <li>prototype/patch implementation</li>
111 :     <li>first pass for linking between pages behaviour is the
112 :     same as R3.0</li>
113 :     <li>ability to browse back and forward in response to this.</li>
114 :     </ol>
115 :     </li>
116 : mvanmeek 1.19 <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0">
117 :     <strong>Nov 18</strong>
118 : mvanmeek 1.14 <ol>
119 :     <li>committed to JDT UI</li>
120 :     <li>looking at forms code</li>
121 :     <li>submitted a patch to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=78878">bug
122 : mvanmeek 1.19 78878</a>
123 : mvanmeek 1.16 <ol>
124 : mvanmeek 1.19 <li>TC or MVM to look at the patch</li>
125 :     </ol>
126 :     </li>
127 :     </ol>
128 :     </li>
129 :     <li><strong>Nov 23</strong>
130 :     <ol>
131 :     <li>TC - establish a story for the link widget</li>
132 :     <li>make an example use case for this in the UI</li>
133 :     <li>Non-internal version of preference page opening
134 :     <ol>
135 :     <li>i.e. API to open on a page or switch to a page</li>
136 :     <li>take an Object argument as well</li>
137 :     <li>experimental for now</li>
138 :     <li>wait to see what the solution is for filtering/highlighting
139 :     pages to see what to do here</li>
140 : mvanmeek 1.16 </ol>
141 :     </li>
142 : mvanmeek 1.14 </ol>
143 :     </li>
144 : mvanmeek 1.7 <li> Owner: MA (ZRH) </li>
145 :     </ol>
146 :     </li>
147 :     <li>preference sharing (teams contribute similar prefs to a common
148 :     page)
149 :     <ol>
150 : mvanmeek 1.9 <li>Owner: None</li>
151 : mvanmeek 1.7 </ol>
152 :     </li>
153 : mvanmeek 1.19 <li>Tree support in the Project Properties view bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54128">54128</a></li>
154 : mvanmeek 1.7 </ol>
155 :     </li>
156 : mvanmeek 1.9 <li> <img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
157 : mvanmeek 1.7 Re-catagorize preferences to see if this solves the problems with finding
158 :     the preferences
159 :     <ol>
160 : mvanmeek 1.22 <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0">
161 :     Investigate links between pages
162 : mvanmeek 1.10 <ol>
163 :     <li>searching and linking are usefull for managing lots of data
164 :     but also good if someone tends to prefer it over reading the
165 :     pages etc...</li>
166 :     <li>Alternatives
167 :     <ol>
168 :     <li>suggest that we provide examples/API to support links
169 :     but not add to pref ext. pt. schema or bottom of a pref
170 :     page by default</li>
171 :     </ol>
172 :     </li>
173 :     </ol>
174 :     </li>
175 : mvanmeek 1.7 <li>Investigate combining pages that have common information
176 :     <ol>
177 : mvanmeek 1.10 <li><strong>Nov 9 - 16</strong>
178 :     <ol>
179 :     <li>Seems like our three examples (label decorations, colors
180 :     and fonts, editor properties) are very different</li>
181 :     <li>suggest linking should solve this</li>
182 : mvanmeek 1.14 <li>need back&lt;-&gt;forward navigation support in the Preference
183 :     Dialog so the user is not lost</li>
184 : mvanmeek 1.10 </ol>
185 :     </li>
186 : mvanmeek 1.7 <li>Owner: TC,MVM (OTT)</li>
187 :     </ol>
188 :     </li>
189 : mvanmeek 1.22 <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0"><strong>Nov
190 :     23</strong>
191 : mvanmeek 1.19 <ol>
192 :     <li>UI to review <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-ui-home/r3_1/proposals/preferences/page-regrouping.html">suggestions
193 :     on page regrouping </a>by TE and MA on pref pages
194 :     <ol>
195 :     <li>DJ, TC and MVM to review the JDT team pref pages</li>
196 :     </ol>
197 :     </li>
198 :     <li>MA to fabricate some screen shots on hiding advanced pages</li>
199 :     </ol>
200 :     </li>
201 : mvanmeek 1.10 </ol>
202 :     </li>
203 : mvanmeek 1.22 </ol>
204 :     <p><strong>M5 finishing work:</strong></p>
205 :     <p>After M4 there are a few items that we would like to revisit and work
206 :     on independantly to 'complete' and polish what was done in M4, they are:
207 :     </p>
208 :     <ul>
209 :     <li>Catagories and Components
210 :     <ul>
211 :     <li> how can we keep things simple for parenting of pages</li>
212 :     </ul>
213 :     </li>
214 :     <li> import/export
215 :     <ul>
216 :     <li>add support for pluggable import/export wizards instead of import/export
217 :     on the pref dialog</li>
218 :     </ul>
219 :     </li>
220 :     <li> what do we do with advanced topics?
221 :     <ul>
222 :     <li>hide advanced pages</li>
223 :     <li>advanced sections on individual pages</li>
224 :     <li>advanced category (i.e. group in the toolbar)</li>
225 :     <li>groups in the pref dialog map directly to capabilities aside from
226 :     perhaps always having a &quot;General&quot; group</li>
227 :     </ul>
228 :     </li>
229 :     <li> M5 PreferenceService lookup order and support for listening on all
230 :     scopes
231 :     <ul>
232 :     <li>need to re-visit API here</li>
233 :     <li>build something on top of the existing &quot;too-powerful&quot;
234 :     core support to make a simpler programming model</li>
235 :     </ul>
236 :     </li>
237 :     <li>working copy
238 :     <ul>
239 :     <li>use Colors and Fonts and Editors use of the same prefs to show
240 :     colors as a case to prototype a working model API where preferences
241 :     saved go to an intermediate pref. store so that pages can query
242 :     this and get live information for preferences that have been changed
243 :     in one page and not applied to the underlying store yet</li>
244 :     </ul>
245 :     </li>
246 :     <li> View settings
247 :     <ul>
248 :     <li>add a simple view (much like properties) so a view can open a
249 :     dialog on its own preferences and not have them show up in the global
250 :     prefs if not necessary</li>
251 :     </ul>
252 :     </li>
253 :     <li>View instance data persistance
254 :     <ul>
255 :     <li>currently two instances of the same view can not persist their
256 :     setting which causes lots of strange behaviour when opening multiple
257 :     Workbench windows for example and trying to set various options
258 :     on views</li>
259 :     </ul>
260 : mvanmeek 1.9 </li>
261 : mvanmeek 1.22 </ul>
262 :     <p>&nbsp; </p>
263 : mvanmeek 1.9 <h2><strong>Completed</strong></h2>
264 :     <ol>
265 :     <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0">
266 :     Core API backwards compatibility <strong>(Goal #2) </strong>
267 :     <ol>
268 :     <li> Document a plan with respect to the new API based on dyn. team
269 :     input, document what that story is, publish to mailing lists for
270 :     added visibility</li>
271 :     <li>Oct 19 - 26 (THREE issues) <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/documents/user_settings/pref_apis.html">
272 :     See DJs doc on this </a>
273 :     <ol>
274 :     <li>ONE typed events </li>
275 :     <li>TWO - some CORE API for setting prefs. (putValue) does not
276 :     send prop. change events which ends up not updating the caches
277 :     as the caches is changed as a result of an event, what should
278 :     we do for cases where prefs are cached for example and no event
279 :     is sent to update the value
280 :     <ol>
281 :     <li>can not back out as this is API</li>
282 :     <li>log bug reports checking uses of putValue as no event
283 :     is sent </li>
284 :     <li>update doc with hint that only non-API prefs should be
285 :     used in this way if at all</li>
286 :     </ol>
287 :     </li>
288 :     <li>THREE
289 :     <ol>
290 :     <li>plug-ins in RCP should be aware of the no data (no workspace)
291 :     case.</li>
292 :     <li>need to put some changes in workbench</li>
293 :     </ol>
294 :     </li>
295 :     </ol>
296 :     </li>
297 :     <li><strong>Oct 26 - Nov 2</strong>
298 :     <ol>
299 :     <li>DJ to send note to mailing lists with potential problem areas</li>
300 :     <li>porting guide</li>
301 :     </ol>
302 :     </li>
303 :     <li>Owner: DJ (OTT Core) </li>
304 :     </ol>
305 :     </li>
306 :     <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0">
307 :     In-line opening of preference pages <strong>(Goal #3)</strong>
308 :     <ol>
309 :     <li> Produce a patch to prototype version of direct preference page
310 :     opening, Platform UI to evaluate agree on final version and implement
311 :     </li>
312 :     <li>Oct 19 - 26
313 :     <ol>
314 :     <li>DP to cleanup a few issues around this work. Some API public
315 :     yet, need to get Tom to try</li>
316 :     </ol>
317 :     </li>
318 :     <li> Owner: Tom (ZRH), Doug Pollock (OTT) </li>
319 : mvanmeek 1.7 </ol>
320 :     </li>
321 : mvanmeek 1.21 <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0">
322 :     Pass through the preferences to see which ones should be view only preferences
323 :     <ol>
324 :     <li>need some guidelines for views (MA - ZRH)</li>
325 :     <li><strong>Nov 18</strong>
326 :     <ol>
327 :     <li>TE to check with MA to see if this really is what he was working
328 :     on.</li>
329 :     </ol>
330 :     </li>
331 :     <li><strong>Nov 26</strong>
332 :     <ol>
333 :     <li>Search is an example here, how do we deal with view instance
334 :     settings</li>
335 :     <li>MA - to investigate</li>
336 :     </ol>
337 :     </li>
338 :     </ol>
339 :     </li>
340 : mvanmeek 1.22 <li><img src="../../images/ok.gif" nosave="" height="20" width="13" border="0">
341 : mvanmeek 1.21 Functional high level category view in preference dialog <strong>(Goal
342 :     #1)</strong> </li>
343 :     <ol>
344 :     <ol>
345 :     <ol>
346 :     <li> Iterate over a <strong>Prototype </strong> new Preferences
347 :     Dialog/Demo to dynamic team, to have something new in M3 with
348 :     regards to functional top level preference categories </li>
349 :     <li>Simplified presentation for preferences and preference catagories</li>
350 :     <li>Easier navigation of the preference pages </li>
351 :     <li>Oct 19 - 26 - think of issues with high vs wide pref pages.
352 :     Can we use the width better
353 :     <ol>
354 :     <li>move icons along the top </li>
355 :     <li>how do we deal with pref pages of the same name (e.g. Editors)
356 :     </li>
357 :     </ol>
358 :     </li>
359 :     <li><strong>Oct 26 - Nov 2 </strong> Prototype #2 with list with
360 :     large icons on left and expandable list on right
361 :     <ol>
362 :     <li>need a design review</li>
363 :     </ol>
364 :     </li>
365 :     <li><strong>Nov 9</strong>
366 :     <ol>
367 :     <li>sent <a href="prefs4.gif">samples snapshot to designers</a></li>
368 :     <li>*** TC and MVM - how will catagorization work, how will
369 :     it be flexible from the product level</li>
370 :     <li>what about advanced being a dumping grounds for all other
371 :     options?</li>
372 :     <li>what about having an advanced button on each group so you
373 :     can get all options?</li>
374 :     <li>should not introduce another scope here (i.e. advanced).</li>
375 :     <li>plan to finish for M4</li>
376 :     </ol>
377 :     </li>
378 :     <li><strong>Nov 18</strong>
379 :     <ol>
380 :     <li>waiting on designers </li>
381 :     </ol>
382 :     </li>
383 :     <li>Owner: TC (OTT Platform UI)</li>
384 : mvanmeek 1.22 </ol>
385 :     </ol>
386 :     </ol>
387 :     <li><img src="../../images/ok.gif" nosave="" height="20" width="13" border="0">
388 :     Initiate instrumentation work to help provide data for preference cleanup,
389 :     goal is to have information by beginning of M4<strong> (Goal #1) </strong>
390 :     </li>
391 :     <ol>
392 :     <ol>
393 :     <ol>
394 :     <ol>
395 :     <li>Oct 19 - instrumentation plugins working on R3.0 and R3.0
396 :     M2</li>
397 :     <li>Oct 19 - 22 - decide on date when information can be obtained
398 :     if possible </li>
399 :     <li><strong>Oct 26 - Nov 2 </strong>
400 :     <ol>
401 :     <li>Instrumentation is under way</li>
402 :     </ol>
403 :     </li>
404 :     <li><strong>Nov 18 - </strong>Pilot instrumentation survey to
405 :     be run this coming week</li>
406 :     <li><img src="../../images/ok.gif" nosave="" height="20" width="20" border="0"><strong>Dec
407 :     1</strong>, began survey</li>
408 :     <li>Owner: Michael (OTT Platform UI) </li>
409 :     </ol>
410 :     <li></li>
411 : mvanmeek 1.21 </ol>
412 :     </ol>
413 :     </ol>
414 : mvanmeek 1.7 </ol>
415 :     <p>&nbsp;</p>
416 :     <p><strong>Full list of issues that were discussed (note: these are not
417 :     all committed items):</strong></p>
418 : mvanmeek 1.2 <p>* low priority<br>
419 :     ** medium priority<br>
420 :     *** high priority<br>
421 : mvanmeek 1.7 </p>
422 : mvanmeek 1.2 <ol>
423 : mvanmeek 1.7 <li>*** Make the UI simpler, current solution does not scale well, encourages
424 :     too many categories
425 : mvanmeek 1.2 <ol>
426 : mvanmeek 1.7 <li> UI model with leaning towards few logical/functional groupings
427 :     at the top level</li>
428 :     <li>The Import/Export support should only talk about being able to
429 :     export things to the same extent that it can provide a human readable
430 :     string for the items</li>
431 : mvanmeek 1.2 <li>Currently categorized by plug-in</li>
432 : mvanmeek 1.7 <li>Is there any way to enforce/restrict these categories on downstream
433 :     products?</li>
434 : mvanmeek 1.2 </ol>
435 :     </li>
436 : mvanmeek 1.7 <li> *** Clean up
437 : mvanmeek 1.2 <ol>
438 :     <li>Remove legacy, unneeded, confusing preferences, advanced</li>
439 : mvanmeek 1.7 <li>Use instrumentation tools to found out unused preferences vs frequently
440 :     used</li>
441 : mvanmeek 1.2 </ol>
442 :     </li>
443 : mvanmeek 1.7 <li>*** Backwards Compatibility
444 : mvanmeek 1.2 <ol>
445 : mvanmeek 1.7 <li>Need to clearly define what we do/do not support in terms of backward
446 :     compatibility for the Core API</li>
447 : mvanmeek 1.2 <li>Write more tests?</li>
448 :     <li>Scoped preference store tests</li>
449 :     <li>Are we allowed to break APIs?</li>
450 :     </ol>
451 :     </li>
452 : mvanmeek 1.7 <li>*** Sharing
453 : mvanmeek 1.2 <ol>
454 :     <li>Other teams contribute &quot;pages&quot; to a shared page</li>
455 :     <li>Decorators on three pages </li>
456 : mvanmeek 1.7 <li>E.g. workbench contributes a category and other teams contribute
457 :     (e.g. appearance)
458 : mvanmeek 1.2 <ol>
459 :     <li>Not a hardcoded list</li>
460 :     </ol>
461 :     </li>
462 : mvanmeek 1.7 <li>Sharing an individual preference
463 : mvanmeek 1.2 <ol>
464 : mvanmeek 1.7 <li>e.g. print margin is shared for all editors
465 : mvanmeek 1.2 <ol>
466 :     <li> text font, overriding inherited prefs in some cases</li>
467 :     </ol>
468 :     </li>
469 :     </ol>
470 :     </li>
471 :     </ol>
472 :     </li>
473 : mvanmeek 1.7 <li>** Support to directly open a preference page (or open all prefs.
474 :     but to a specific page)
475 : mvanmeek 1.2 <ol>
476 :     <li>On a specific page</li>
477 : mvanmeek 1.7 <li>Page might switch to a specific tab or group (i.e. don't talk
478 :     in terms of the UI, but rather what is to be shown and the page
479 :     figures it out)</li>
480 : mvanmeek 1.2 <li>Option to show all pages, one page, or a part of the page</li>
481 : mvanmeek 1.7 <li>Opening a single page or portion of the preferences
482 : mvanmeek 1.2 <ol>
483 :     <li>ZRH has a prototype</li>
484 :     </ol>
485 :     </li>
486 :     </ol>
487 :     </li>
488 : mvanmeek 1.7 <li>** Scalable
489 : mvanmeek 1.2 <ol>
490 :     <li>Enable search for preferences</li>
491 : mvanmeek 1.7 <li>Enable highlighting of
492 : mvanmeek 1.2 <ol>
493 :     <li> pages in the tree</li>
494 :     <li>controls (checkboxes...) on a page</li>
495 : mvanmeek 1.7 <li>enable different navigation controls on the LHS of the preference
496 :     dialog (see screenshots)</li>
497 : mvanmeek 1.2 <li>ability to have a different view on the preferences</li>
498 :     <li>should we keep the existing structure?</li>
499 :     <li>How do we contribute this information? XML?</li>
500 :     <li>Does the extension point mechanism scale that well?</li>
501 :     <li>Don't want to aggressively activate plug-ins. (when searching)</li>
502 :     </ol>
503 :     </li>
504 :     </ol>
505 :     </li>
506 : mvanmeek 1.7 <li>* Locking/Access Control
507 : mvanmeek 1.2 <ol>
508 : mvanmeek 1.7 <li>Requirements?
509 : mvanmeek 1.2 <ol>
510 :     <li>Locking = remove from the UI? At the granularity of a page?</li>
511 :     <li>Preferences that are not displayed in the UI</li>
512 :     </ol>
513 :     </li>
514 :     </ol>
515 :     </li>
516 : mvanmeek 1.7 <li>*Ability to apply preferences between page switch to help with inconsistent
517 :     preferences
518 :     <ol>
519 :     <li>Need a working copy of the preferences root</li>
520 :     </ol>
521 : mvanmeek 1.2 </li>
522 : mvanmeek 1.7 <li>* API
523 : mvanmeek 1.2 <ol>
524 : mvanmeek 1.7 <li> Do we need new API for associating human readable strings with
525 :     preferences, or categories?</li>
526 : mvanmeek 1.2 <li>Can we simplify the current API?</li>
527 : mvanmeek 1.7 <li> Does this live in Core? UI? Could be at the Preference Page level
528 :     </li>
529 : mvanmeek 1.2 </ol>
530 :     </li>
531 : mvanmeek 1.7 <li>* Running background operations from a preference dialog<span class="style1">
532 :     (NEW ON OCT 19)</span>
533 : mvanmeek 1.5 <ol>
534 : mvanmeek 1.7 <li>E.g. ask for a build twice</li>
535 : mvanmeek 1.5 </ol>
536 :     </li>
537 : mvanmeek 1.7 <li> Theme support on various levels
538 : mvanmeek 1.2 <ol>
539 :     <li>(e.g. syntax highlighting themes, formatting themes, overall themes</li>
540 :     </ol>
541 :     </li>
542 : mvanmeek 1.7 <li>Allow Export to export random preferences, not all preferences are
543 :     stored in core</li>
544 : mvanmeek 1.2 <li>non-exportable preference/non sharable preferences</li>
545 :     <li>Need to deal with the three core layers that we have? Project, configuration...</li>
546 : mvanmeek 1.7 <li>Batched property change events</li>
547 :     <li>Bug 54392 </li>
548 :     </ol>
549 :     <p><strong>Other Future Ideas: </strong></p>
550 : mvanmeek 1.2 <ul>
551 : mvanmeek 1.7 <li>Auto-page generation based on preference types and predifined behaviour
552 :     (e.g. boolean pref gets a check box and a label)</li>
553 :     <li>Metadata for preferences? Store: user-readable name, groupings/dependencies,
554 :     category, exportable flag, sharable flag </li>
555 :     <li> When you export, it might not be exporting what you think you are
556 :     since preference pages aren't explicitly linked to the preference store.
557 :     </li>
558 :     <li> Movement between tabs in preference pages -&gt; marked as dirty until
559 : mvanmeek 1.14 OK or APPLY is hit. Everyone implements their own ?working copy? strategy
560 : mvanmeek 1.2 <ul>
561 : mvanmeek 1.7 <li>Maybe work with a preference tree and then apply it to the real
562 :     preferences? (note: the import/export mechanism at the Core level
563 :     allows manipulation of a preferences tree and then apply it to the
564 :     real tree) </li>
565 : mvanmeek 1.2 </ul>
566 :     </li>
567 :     <li> Displaying scopes in the UI </li>
568 : mvanmeek 1.7 <li>Import/Export of project preferences -&gt; When you import, you really
569 :     want to apply these preferences to a specific group of projects in your
570 :     workspace (underlying mechanism doesn't allow for this right now) </li>
571 : mvanmeek 1.2 </ul></td>
572 : mvanmeek 1.7 <td>&nbsp;</td>
573 : mvanmeek 1.2 </tr>
574 : mvanmeek 1.1 </table>
575 :    
576 :     <table border="0" cellspacing="5" cellpadding="2" width="100%">
577 :     <tbody>
578 :     <tr>
579 : mvanmeek 1.6 <td width="96%" height="23" colspan="2" align="left" valign="top" bgcolor="#0080c0"><b><font face="Arial,Helvetica"><font color="#ffffff">
580 : nick 1.12 <a name="actionContributions"></a>
581 :     Action Contributions</font></font></b></td>
582 : mvanmeek 1.1 </tr>
583 : mvanmeek 1.6 <tr>
584 : nick 1.11 <td height="232" colspan="2" valign="top">
585 :     <p><strong>Team Goals:</strong></p>
586 :     <ul>
587 :     <li>P1: Simplify the programming model for contributing menu and toolbar items to the workbench (and their corresponding appearance and behaviour).</li>
588 :     <li>P1: Improved control over menu definition and item ordering. Scenario: Search and Run menus.</li>
589 :     <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>
590 :     <li>P1: Maintain a strong separation between a command, its handler(s) and its placement(s) in the UI</li>
591 :     <li>P2: Address difficulty in determining keybindings to show for context menu items.</li>
592 :     <li>P2: Support dynamic entries in (top-level) menus, e.g. File > New submenu, window list, recent file list, Run > Run As..., QuickDiffToggleAction </li>
593 :     <li>P2: Keybindings for object contributions</li>
594 :     <li>P2: Ability to define a default command handler</li>
595 :     <li>P2: Provide a localized command service for parts to use (generalize IKeyBindingService), and support nesting of parts.</li>
596 :     <li>P2: Improve support for contributing items to nested parts/pages (e.g. console view scenario, bug 75737).</li>
597 :     <li>P2: Resolve problems with object contributions in editors (new and experimental in 3.1). See bug 75273.</li>
598 :     <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>
599 :     <li>P3: Look up and execute existing behaviour in the interface by identifier, e.g. to support welcome, cheat sheets, macros, scripting</li>
600 :     <li>P3: Address JFace impedence mismatch: no notion of commands or keybindings at JFace layer</li>
601 :     <li>P4: Make workbench actions available for others to place elsewhere in IDE.&nbsp; Bug 71028.</li>
602 :     </ul>
603 : mvanmeek 1.6 <p><strong>Team:</strong></p>
604 :     <ul>
605 :     <li>Nick Edgar</li>
606 :     <li>Kai-Uwe Maetzel</li>
607 :     <li>Douglas Pollock</li>
608 :     <li>Michael Van Meekeren </li>
609 :     </ul>
610 : nick 1.11 <p><strong>Principles:</strong></p>
611 :     The work on simplifying the programming model will follow these principles:
612 :     <ul>
613 :     <li>Model/UI separation. Commands and command handlers/actions are specified independently of their placement in the UI.</li>
614 :     <li>Universal extensibility. Every menu and toolbar can be extended - structurally and content wise. Explicit sealing of menus may be an option.</li>
615 :     <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>
616 :     <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).
617 :     Everything must be explicitly defined (e.g., there is no implicit definition of new groups in menus).</li>
618 :     <li>Fine-grained control over visibility. Items can specify their visibility based on a context and its properties (think of core expressions).</li>
619 :     <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>
620 :     </ul>
621 :    
622 :     <p><strong>Documents:</strong></p>
623 :     <ul>
624 : nick 1.17 <li><a href="../contributions-proposal/scenarios.html">Scenarios for contributing menu items and toolbar items in the Workbench</a>.</li>
625 :     <li>Actions in the Navigator view (presentation, applicability, etc): <a href="../contributions-proposal/NavigatorActions.html">HTML</a>, <a href="../contributions-proposal/NavigatorActions.xls">Excel spreadsheet</a>.</li>
626 :     <li><a href="../contributions-proposal/design.xml">Sketch of proposed changes to commands schema, with examples.</a></li>
627 :     <li><a href="../contributions-proposal/nick_navigator.xml">Sketch of changes to Navigator view's extensions (does not correspond exactly with schema above).</a></li>
628 : dpollock 1.18 <li><a href="../contributions-proposal/old-style.xml">Collecton of old XML for some plug-ins' contributions</a></li>
629 :     <li><a href="../contributions-proposal/porting.xml">Port of the contributions to the proposed schema</a></li>
630 : nick 1.11 </ul>
631 : dpollock 1.23
632 : mvanmeek 1.24 <p><strong>Code</strong></p>
633 : dpollock 1.23 <p>The work in progress is available in CVS. You must check out
634 :     "org.eclipse.core.commands", as well as the "dpollock_Doomsday" branch
635 :     for "org.eclipse.jface", "org.eclipse.ui", "org.eclipse.ui.tests" and
636 :     "org.eclipse.ui.workbench".</p>
637 : nick 1.17
638 : nick 1.11 <p><strong>Planned Work for M5:</strong></p>
639 : mvanmeek 1.6 <ul>
640 : nick 1.11 <li>Investigate pushing down refactoring participants mechanism to workbench and generalizing it to a general operation participants model.(db/ne/jml)
641 :     </li>
642 :     </ul>
643 : nick 1.17
644 : nick 1.11 <p><strong>Planned Work for M4:</strong></p>
645 :     <ul>
646 :     <li> <img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
647 :     Prototype sample API designed to unify/simplify and clarify (see bug
648 :     36968) the current set of contribution API's
649 : mvanmeek 1.6 <ul>
650 : nick 1.11 <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
651 :     API should fix the following among others:
652 :     <ul>
653 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
654 :     difficulty determining keybindings to show for context menu
655 :     items.</li>
656 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
657 :     understand and plan for support of ordering of items (eg. action
658 :     sets)</li>
659 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
660 :     ability to declare a command and handler once, and support
661 :     placement of the command separately.
662 :     <ul>
663 :     <li>Enablement is defined by the handler</li>
664 :     </ul>
665 :     </li>
666 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
667 :     see proposal coming soon</li>
668 :     </ul>
669 :     </li>
670 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
671 :     write regression tests</li>
672 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
673 :     build sample/example test plug-ins</li>
674 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
675 :     investigate lower level (e.g. JFace) related existing API to ensure
676 :     consistancy</li>
677 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
678 :     minimally support new API based on the existing code
679 :     <ul>
680 :     <li>time permitting enhance or re-write portions of the existing
681 :     code for the following reasons:
682 :     <ul>
683 :     <li>does not support lazy updating in the UI</li>
684 :     <li>poor performance</li>
685 :     <li>complex submenu manager code</li>
686 :     </ul>
687 :     </li>
688 :     </ul>
689 :     </li>
690 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0">
691 :     ISV doc showing migration steps and introducing the new API (ac,
692 :     dp) </li>
693 : mvanmeek 1.6 </ul>
694 :     </li>
695 : nick 1.11 </ul>
696 :     <p><strong>Completed Work for M3:</strong></p>
697 :     <ul>
698 :     <li><img src="../../images/ok.gif" nosave="" height="12" width="12" border="0"> Document scenarios for use cases for Actions (ne)</li>
699 : mvanmeek 1.6 </ul>
700 :     <p>&nbsp;</p></td>
701 :     </tr>
702 :     <tr>
703 :     <td width="96%" height="23" colspan="2" align="left" valign="top" bgcolor="#0080c0"><b><font face="Arial,Helvetica"><font color="#ffffff">
704 : nick 1.12 <a name="navigatorFramework"></a>Navigator Framework</font></font></b></td>
705 : mvanmeek 1.6 </tr>
706 : mvanmeek 1.1 <tr>
707 : mvanmeek 1.6 <td height="232" colspan="2" valign="top"><p><strong>Team Goals in no particular order:</strong></p>
708 :     <ol>
709 :     <li>Provide a general framework for developing navigator views in the context of RCP or the Workbench </li>
710 :     <li>Framework should act as a test bed for new support for:
711 :     <ol>
712 :     <li>retargetable actions</li>
713 :     <li>operations framework</li>
714 :     <li>working set enhancements for large workspaces</li>
715 :     <li> </li>
716 :     </ol>
717 :     non-resource based navigator support </li>
718 :     </ol>
719 :     <p><strong>Team:</strong></p>
720 :     <ul>
721 :     <li>Billy Biggs</li>
722 :     <li>Nick Edgar</li>
723 :     <li>Dirk Baeumer</li>
724 :     <li>Michael Van Meekeren </li>
725 :     </ul>
726 :     <p><strong>Planned Work for M3:</strong></p>
727 :     <ul>
728 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0"> Implement prototype generic navigator framework based on original <a href="../../navigator-proposal/general_purpose_navigator_proposal.html">&quot;Generic Navigator&quot; proposal</a> <ul>
729 :     <li>Owner BB (OTT) </li>
730 :     </ul>
731 :     </li>
732 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0"> Investigate supporting working groups and filters (namely M3 additions in Package Explorer for managing large workspaces) in generic layer
733 :     <ul>
734 :     <li>Owner BB (OTT, DB to send pointers to code)</li>
735 :     </ul>
736 :     </li>
737 :     <li> <img src="../../images/ok.gif" nosave="" height="20" width="20" border="0"> Move re-targetable action work to Action Contributions dyn. team
738 :     <ul>
739 :     <li>Owner MVM (OTT) </li>
740 :     </ul>
741 :     </li>
742 :     <li>OTHER ITEMS
743 :     <ul>
744 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0"> Operations (side note, not officially part of this work but recorded here)
745 :     <ul>
746 :     <li>NOTE JM (OTT) and DB (ZRH) to investigate a prototype for this then to come back in M4 with requirements for UI </li>
747 :     <li>Generalize Operations and push code down from LTK DB (ZRH) </li>
748 :     </ul>
749 :     </li>
750 :     <li><img src="../../images/progress.gif" nosave="" height="5" width="14" border="0"> Work on removing needed for LegacyResourceSupport class JM (OTT) </li>
751 :     </ul>
752 :     </li>
753 :     </ul>
754 :     <blockquote>
755 :     <p>&nbsp;</p>
756 :     </blockquote> <p><strong>Ideas/Possible future work:</strong></p>
757 :     <p>- </p></td>
758 : mvanmeek 1.1 </tr>
759 :     <tr>
760 : mvanmeek 1.6 <td width="96%"> </tr>
761 : mvanmeek 1.1 </tbody>
762 :     </table>
763 :     </body>
764 :     </html>