<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Build">
   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
   <title>Eclipse Platform Release Notes - Workbench</title>
</head>
<body>

<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20020122
<h2>
What's new in this drop</h2>
- Added patch by Cagatay Kavukcuoglu &lt;cagatayk@acm.org> for Task List
filtering by same project.
<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2002%2F01%2F15&chfieldto=2002%2F01%2F22&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2002/01/15 and 2002/01/22.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20020115
<h2>
What's new in this drop</h2>
<b>Marker F1 Help - Experimental</b>
<br>This drop contains preliminary work for marker F1 help and resolutions.
<br>Two new extension points have been added:
<br>- org.eclipse.ui.markerHelp
<br>- org.eclipse.ui.markerResolution
<br>These extension points target specific kinds of markers using a marker
type and attributes
<p>The marker help registry is available from the Workbench.
<p>The task list has been modified to show the F1 help for its selected
marker and an "Autofix..." menu item has
<br>been added to its context menu to display the resolutions registered
for the marker.
<p>The readme example has been modified to demonstrate these extension
points.
<br>Use the editor context "Add" menu to add markers for which F1 help
and resolutions have been registered.
<p>NOTE: Any of this API and implementation is subject to change. More
extensive documentation will follow once
<br>the API has stabilzed.
<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2002%2F01%2F08&chfieldto=2002%2F01%2F15&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2002/01/08 and 2002/01/15.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20020108
<h2>
What's new in this drop</h2>

<h3>
Changes to plugin action support</h3>
There have been two changes to plugin action support in the workbench.&nbsp;&nbsp;
The xml grammar for action enablement and visibility has been extended.&nbsp;
In addition, the IStructuredSelection limitations for plugin action enablement
have been removed.&nbsp; Now, the workbench can enable actions which work
with non-IStructuredSelection objects.
<h4>
Action Enablement</h4>
In version 1 of Eclipse the enablement and visibility of window, view,
editor and popup menu action extensions was defined using a limited set
of elements in xml.&nbsp; The existing tags cannot adequately describe
the conditions when an action should be enabled or visible.&nbsp; To resolve
these issues, the following approach has been implemented:
<p>- a refreshPluginActions() has been added to AbstractUIPlugin.&nbsp;
The AbtractUIPlugin.startup method will call this to trigger the creation
of the action delegates for the plugin.
<br>- a new enablement element has been added to the action markup for
action sets, views, editors, and popup menus.&nbsp; This can be used to
define the enablement criteria for any action, and is a sub element of
the action element.
<br>- a new visibility element has been added to popup menu extension action
markup.&nbsp; This can be used to define the visibility criteria for the
action, and is a sub element of the object contribution element.
<p>The new xml extends the existing markup, and do not replace it.
<p>The xml format for visibility and enablement criteria is defined in
actionExpressions.html, in the org.eclipse.ui doc directory.&nbsp; This
doc is referenced from the popup menu, view, editor, and action set documents.
<h4>
IStructuredSelection Limitations</h4>
In the past, the workbench plugin action enablement code could only handle
IStructuredSelection objects.&nbsp; If a non-IStructuredSelection object
was selected, the workbench would disable most of the plugin actions (in
the view, editor, or action set) and drop the selection on the floor.&nbsp;
This limitation has been removed.&nbsp; Regardless of selection type, the
workbench plugin action enablement code will now forward the selection
to the action delegate (once it has been instantiated).
<p>The action enablement code has also been modified to support non IStructuredSelections.&nbsp;
According to one dictionary, a selection is "one that is selected" or "a
collection of selected things".&nbsp; In reflection of this definition,
the workbench will treat an IStructuredSelection as a collection of selected
things, and any other selection type as one thing.
<p>For instance, suppose you add an action to the window (via an action
set), and it should be enabled if some text is selected in an editor.&nbsp;
You can use the following declaration to enable the action.
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action id="org.eclipse.ui.tests.internal.as_1"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
label="anyText"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
class="org.eclipse.ui.tests.api.MockActionDelegate"
<br>&nbsp; enablesFor="1">
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;selection class="org.eclipse.jface.text.ITextSelection"/>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action>
<p>If you want to add an action to the window which is enabled when an
IFile with extension .txt is selected, you can use the following declaration
(shown with the new enablement block).&nbsp; In this case, the IFile will
be exposed in an IStructuredSelection, but there is no need to mention
the IStructuredSelection in the action declaration.&nbsp; The workbench
treats IStructuredSelection as a container for the important data inside.
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action id="org.eclipse.ui.tests.internal.as_2"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
label="anyTextFile"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
class="org.eclipse.ui.tests.api.MockActionDelegate">
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;enablement>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;objectClass name="org.eclipse.core.IFile"/>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;objectState name="extension" value="txt"/>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/enablement>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action>
<h3>
API changes</h3>

<h3>
API additions</h3>

<ul>
<li>
Added IActionDelegateWithEvent (experimental).</li>
</ul>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2001%2F12%2F18&chfieldto=2002%2F01%2F08&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2001/12/18 and 2002/01/08.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011218
<h2>
What's new in this drop</h2>

<h3>
Changes to perspectives</h3>
In order to address a number of common problems encountered by novice users,
the default behavior of some perspective actions has been modified.
<p>1) The default behavior for "Open Perspective" has been changed from
"open in current window" to "open in new window".&nbsp; This was done to
clarify the separation between state in one perspective and another.
<p>2) A perspective reuse strategy has been implemented in the workbench,
and is "on" by default.&nbsp; If an object is opened once (using Open Perspective
in the Navigator), you get a new page (in implementation terms).&nbsp;
If the object is opened again, and a page is already open for the same
object, the old page will be activated and the active perspective type
will be changed.&nbsp;&nbsp; This was done to avoid the creation of duplicate
perspectives, unless the user explicitly asks for it.&nbsp; If two pages
are needed on the same object, you can now invoke Perspective > Clone to
create a second page with the same input and perspective type as where
the action is invoked.&nbsp;&nbsp; The "reuse perspective" option can be
turned off in the Workbench Preferences page.
<p>3) The contents of the Perspective > Open submenu are now determined
using a global "most recently used" list.&nbsp; As you switch from one
perspective to another, the list is updated with the new perspective (and
clipped at 7 items).&nbsp; This was done to avoid the frustration which
occurs when you switch from one perspective to another, then can't get
back to the first.&nbsp; In order to avoid menu reordering, the items are
sorted by perspective name.
<p>4) A drop down combo box has been added to the window toolbar, to change
the "perspective type" in a page.&nbsp; For instance, if you switch from
a "resource perspective" to a "java perspective", the existing views and
editors in the page will be re-arranged to suit the new perspective.&nbsp;
This makes it easy to switch between perspective types without losing the
open editors.
<h3>
New behaviour for view opening</h3>
If a view is opened within a perspective for the first time, it will open
as a fast view, floating view, or embedded view, depending on the user
preference (Workbench > Appearance).&nbsp; If a view is moved, closed,
and reopened, it will appear in the last position defined by the user.&nbsp;
The default value for this preference is "fast view" on all platforms.&nbsp;
On platforms which do not support floating views, the floating preference
is not visible.
<h3>
View Drag and Drop changes</h3>
In Eclipse, the size and position of a view may be changed by grabbing
the view title with the mouse, and dragging.
<br>This feature&nbsp; has led to a number of problems.
<p>1) If you click on the title bar of a view, and then move your mouse
to access the main toolbar or menubar, sometimes you don't release the
mouse button fast enough.&nbsp; In this situation a d&amp;d is started
and a detached window is created.&nbsp; The detached window looks a lot
like a view within a folder, so you may not notice it until much later,
after you do some other actions, and the floating window manifests itself.
<p>2) If you click on a view and then drag it, there is no obvious way
to cancel the drag just by putting the view back where it came from.&nbsp;
This creates a floating window, which you have to redrag to regain the
original layout.&nbsp; This also occurs with view folders.
<p>To resolve problem 1, the hysteresis for view movement has been bumped
from 8 to 10 pixels, so a (slightly) more deliberate effort is required
to begin the drag.
<p>To resolve problem 2, the behavior of drag and drop has been changed.&nbsp;
If you drag a view or folder out, then back over itself, the "reject cursor"
appears.&nbsp; If you release the mouse button at that point, the drag
is cancelled.&nbsp; In all other scenarios, the behavior is unchanged.
<h3>
New API for opening pages</h3>
An openPage method has been added to IWorkbench.&nbsp; If this method is
called, a page will be opened in a new window, or in the current page,
depending on the user preference as stated in the Workbench Preferences
page.&nbsp; If the active window is empty, the new page will be opened
in the active window, regardless of the user preference.
<br>The existing methods to open a page or window have been deprecated
(see API changes below).&nbsp; For backwards compatability, the behavior
of these methods will remain the same.
<br>From this point on, developers are expected to call the new method.&nbsp;
Existing code will continue to work without change.
<h3>
New API for refreshing viewers</h3>
There is a new API to refresh a structured viewer without having to update
labels for unaffected elements.&nbsp; See refresh(boolean updateLabels)
and refresh(Object element, boolean updateLabels) in org.eclipse.jface.viewers.StructuredViewer.&nbsp;
TableViewer has been changed to take advantage of this.
<h3>
API changes</h3>

<ul>
<li>
IWorkbench.openWorkbenchWindow(IAdaptable) is deprecated</li>

<li>
IWorkbench.openWorkbenchWindow(String, IAdaptable) is deprecated</li>

<li>
IWorkbenchWindow.openPage(IAdaptable) is deprecated</li>

<li>
IWorkbenchWindow.openPage(String, IAdaptable) is deprecated</li>
</ul>

<h3>
API additions</h3>

<ul>
<li>
Added IWorkbench.openPage(IAdaptable)</li>

<li>
Added IWorkbench.openPage(String, IAdaptable)</li>

<li>
Added StructuredViewer.refresh(boolean updateLabels)</li>

<li>
Added StructuredViewer.refresh(Object element, boolean updateLabels)</li>
</ul>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2001%2F12%2F11&chfieldto=2001%2F12%2F18&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2001/12/11 and 2001/12/18.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011211
<h2>
What's new in this drop</h2>

<h3>
Project menu renamed to Workbench</h3>
The Project menubar menu has been renamed to Workbench to better reflect
the scope of the actions it contains.
<br>The menu id for this menu has not changed (in fact it is "workbench"
see IWorkbenchActionConstants.M_WORKBENCH).
<br>The Preferences menu item has been moved form the Window menu to the
Workbench menu.
<h3>
Changed UI for project deletion</h3>
When prompted whether to delete a project, it now uses radio buttons to
choose whether to delete the project's contents as well.
<br>This makes the Yes and No buttons work more consistently with the non-project
case.
<br>The default has been changed to not delete the contents.
<h3>
Adapters added for Task List and Resource Contribution adaption</h3>
Two new interfaces IContributorResourceAdapter and ITaskListResourceAdapter
have been added.
<br>ITaskListResourceAdapter has been added for objects that wish to define
an IResource that they are related to for updating purposes for the task
view.
<br>IContributorResourceAdapter has been added for objects that wish to
define an equivalent IResource for inclusion in object contributions, decorators
and properties pages.
<br>The current default adapters use the IAdaptable mechanism to get the
resource via adaptable.getAdapter(IResource.class) and so there will be
no change in the current behavior should these adapters not be defined.
<br>Please take care that menubarPath attributes used in the plugin.xml
for objectContributions are still valid for objects that will not be adaptable
to IContributorResourceAdapter.
<h3>
API changes</h3>

<ul>
<li>
Added org.eclipse.ui.IContributorResourceAdapter</li>

<li>
Added org.eclipse.ui.views.tasklist.ITaskListResourceAdapter</li>
</ul>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h3>
Decorator manager clarification</h3>
If an ILabelDecorator is defined using the org.eclipse.ui.decorator extension
the decorator manager will be added to it using addListener(ILabelProviderListener)
when the decorator is enabled and removed via removeListener(ILabelProviderListener)
when the decorator is disabled. Implementors of an org.eclipse.ui.decorator
extension should use the ILabelProviderListener passed to them to update
any views that are using the decorator manager mechanism.
<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2001%2F12%2F04&chfieldto=2001%2F12%2F11&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2001/12/04 and 2001/12/11.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011127
<h2>
What's new in this drop</h2>

<h3>
<b>Contributing to Outline Context Menus</b></h3>
The workbench has added support to allow outline context menus to be registered
with the platform. Plug-ins will thus be able to contribute actions to
these menu's via the org.eclipse.ui.popupMenus extension point.
<p>The interface IPageBookViewPage has been introduced as an extension
of IPage. It defines the methods init(IPageSite) and getSite(). The method
init(IPageSite) is called before createControl in the page's lifecycle.
The IPageSite api includes the method registerContextMenu(String, MenuManager,
ISelectionProvider) to allow the context menus to be registered. The class
org.eclipse.ui.part.Page now implements IPageBookViewPage.
<p>Pages (e.g. content outline pages and property sheet pages) which extend
org.eclipse.ui.part.Page will simply need to perform the menu registration
(typically in their createControl method). Pages which implement IContentOutlinePage
or IPropertySheetPage (but do not extend org.eclipse.ui.part.Page) will
need to explicitly implement IPageBookViewPage. Typically this would involve
implementing the init(IPageSite) method to store a reference to the site
and then performing the menu registration in their createControl method.
<p>The org.eclipse.ui.examples.propertysheet and org.eclipse.ui.examples.readmetool
examples have been updated to demonstrate context menu registration and
contributing actions to such menus.
<h3>
<b>Demo of Perspective changes</b></h3>
In the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/loss-of-context/Proposal.html">Loss
of Context RFC document</a> we proposed a number of changes to the perspective
feature.&nbsp; This build includes a demonstration of these changes.&nbsp;
To try them out, check "Try Version 2 Perspectives" in the Workbench preferences.&nbsp;
When you check this the following behavioral changes will come into effect.
<p>1. If you select Perspective > Open > X, the active perspective in the
page is changed.&nbsp; The old behavior, to create a new page, does not
occur.
<br>2. If you select an object in the Navigator, then invoke Open Perspective
> X, we search the workbench.&nbsp; If a window already exists within input
== selected object, that window is activated and the perspective is changed
in it.&nbsp; Otherwise, a new window is created.
<br>3. The drop down list box is visible in the tool bar.&nbsp; You can
use it to change the active perspective in the active page.
<br>4. The contents of any perspective menu are determined using an MRU
algorithm, and are consistent in every perspective.
<br>5. From any window, you can always get back to the root of the workspace
by invoking Window > Open Workbench.&nbsp; This is like the old VAJ behavior.
<h3>
API changes</h3>

<h3>
API additions</h3>

<ul>
<li>
Added IPageBookViewPage and IPageSite in package org.eclipse.ui.part, and
added IPageBookViewPage as an implemented interface on class Page.</li>
</ul>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&chfield=bug_status&chfieldfrom=2001%2F11%2F20&chfieldto=2001%2F11%2F27&product=Platform&component=UI&cmdtype=doit&&order=Bug+Number">Click
here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED
between 2001/11/20 and 2001/11/27.
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011120
<h2>
What's new in this drop</h2>

<h3>
Accelerator Tag added to Action Definitions</h3>
As the names of the modifier keys (Ctrl, Alt) are not localized in Eclipse,
defining an action accelerator using a translated label will not work (see
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5216">bug
5216</a>).
<br>In order that accelerators can be used across all Locales the <i>accelerator</i>
tag has been added to the definition for an action so that the accelerator
can be defined via a keycode.
<p>The current method of specifying accelerators via the labels will continue
to work in locales where the labels use the English words for the control
keys (like Japanese).
<p>The accelerator is an integer or String&nbsp; that is used to specify
the keycode of the accelerator for the action. The integer value used is
the one resulting from a bitwise OR of zero or more SWT key modifier masks
(i.e. SWT.CTRL or SWT.ALT) and a character code. For example, for Ctrl+Z
use SWT.CTRL | 'Z' = (1&lt;&lt;18)|'Z' = 262234.
<p>If you wish to use the string directly use it as you would have for
the label (i.e. Ctrl+Z from the above example).
<br>Such strings should go directly in the plugin.xml, and should not be
translated in the plugin.properties file, since the strings for the modifier
keys are not localized.
<br>Note that this will require care to ensure that the translated, human-readable
accelerator text in the label (in the .properties file) corresponds to
the assigned accelerator (in the plugin.xml).
<p>Two of the actions we ship should use this tag:
<p>org.eclipse.jdt.ui
<br>&nbsp;OpenTypeAction.label=Open &amp;Type...@Ctrl+Shift+T
<p>&lt;action id="org.eclipse.jdt.ui.actions.OpenType"
<br>&nbsp;&nbsp; menubarPath="workbench/wbEnd"
<br>&nbsp;&nbsp; toolbarPath="Normal/Java"
<br>&nbsp;&nbsp; label="%OpenTypeAction.label"
<br>&nbsp;&nbsp; tooltip="%OpenTypeAction.tooltip"
<br>&nbsp;&nbsp; icon="icons/full/ctool16/opentype.gif"
<br>&nbsp;&nbsp; accelerator="Ctrl+Shift+T"
<br>&nbsp;&nbsp; class="org.eclipse.jdt.internal.ui.actions.OpenTypeAction"/>
<p>org.eclipse.search
<br>&nbsp;OpenSearchDialogAction.label = &amp;Search...@Ctrl+H
<p>&lt;action id="org.eclipse.search.ui.OpenSearchDialogAction"
<br>&nbsp;&nbsp; menubarPath="edit/find"
<br>&nbsp;&nbsp; toolbarPath="Normal/Search"
<br>&nbsp;&nbsp; label="%OpenSearchDialogAction.label"
<br>&nbsp;&nbsp; tooltip="%OpenSearchDialogAction.tooltip"
<br>&nbsp;&nbsp; icon="icons/full/ctool16/search.gif"
<br>&nbsp;&nbsp; accelerator="Ctrl+H "
<br>&nbsp;&nbsp; class="org.eclipse.search.internal.ui.OpenSearchDialogAction"/>
<h3>
API changes</h3>

<h3>
API additions</h3>

<ul>
<li>
Added accelerator attribute to action elements in extension points which
take actions (actionSets, editorActions, viewActions).</li>

<li>
Added setAccelerator(int keyCode) to IAction and Action in org.eclipse.jface.</li>
</ul>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>

<p><br>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011120
<h2>
What's new in this drop</h2>
Object contributions on resources show up in browsers that show objects
that adapt to IResource.
<br>The ObjectContribution mechanism has been changed such that the actions
defined on IResource will also be applied to objects that adapt to IResource
(like IJavaElement) thereby eliminating the need to specify the same actions
in multiple plug-ins due to a wrappered type being displayed in different
views.
<br>As a result, there will be some duplication for certain compare and
vcm functions using the current plug-in definitions. These will eventually
have to be removed.
<br>Although this does not change any existing APIs or extension points,
it does change the behavior of object contributions which contribute to
IResource.
<br>This may cause duplication if a contribution applies to both IResource
and to a class which wrappers IResource via the IAdaptable mechanism.
<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
The following PRs were fixed by the UI team (includes PRs fixed since build
207):
<p>Bug 1824&nbsp; [JFace Text] 50 reconciling threads for 4 editors opened
(1GFXMV8)
<br>Bug 1847&nbsp; Work with help team for example integration (1G5T6A8)
<br>Bug 1850&nbsp; EditableTable (1G5T6MC)
<br>Bug 1851&nbsp; WALBAKCK - Long Operation (1G5T6TP)
<br>Bug 1974&nbsp; 5 line file takes 7 seconds to open (1GD0KY4)
<br>Bug 2074&nbsp; PropertySheet should expand categories by default (1GE36VQ)
<br>Bug 2569&nbsp; [JFace Text] Content assist list truncated (1GG1W9B)
<br>Bug 2577&nbsp; [Standard Components] Property sheet: up/down arrow
causes a
<br>Bug 2904&nbsp; [JFace Text] PropagatingFontFieldEditor has moved (1GKKL13)
<br>Bug 4975&nbsp; Status area too short
<br>Bug 5456&nbsp; Esc doesn't cancel code assist anymore
<br>Bug 5462&nbsp; Can't cancel code assist anymore
<br>Bug 5560&nbsp; ESC on rename dialog renames the file
<br>Bug 5586&nbsp; problem with PageBookView code changes
<br>Bug 5721&nbsp; Welcome not disabled
<br>Bug 5922&nbsp; Property page ordering broken because of info page
<br>Bug 5993&nbsp; Widget has the wrong parent
<br>Bug 6030&nbsp; Need to allow filenames with no extensions when registering
<p>The following PRs were closed with no action by the UI team (includes
PRs closed since build 207):
<p>Bug 1839&nbsp; No support for 640x480 resolution (1GELIAS)
<br>Bug 2042&nbsp; SEVERE: Perspective lost (1GDSH6F)
<br>Bug 5753&nbsp; Make dialogs modal on with respect to a single perspective
<br>Bug 5788&nbsp; EC: Build on save preference text unclear...
<br>Bug 5869&nbsp; eclipse.exe throwing and exception
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse Integration Build 20011113
<h2>
What's new in this drop</h2>

<h3>
Dialog to switch between editors</h3>
You can now open a dialog which allows you to switch between editors by
choosing Window / Switch to Editor..., or by pressing CTRL+ALT+S.
<br>It also supports saving modified editors, and closing editors.
<h3>
Accelerator support for switching between views and editors</h3>
You can now use CTRL+F6 to switch between editors, and CTRL+F7 to switch
between views (includes the editor area).
<br>The list is shown in most recently used order.&nbsp; The list stays
up while CTRL is held down, then switches to the selected item when CTRL
is released.
<br>Pressing the function key again goes to the next item.&nbsp; Holding
SHIFT down goes the other way.&nbsp; You can also use the arrow keys.
<br>The editor switcher replaces the previous CTRL+F6 support for cycling
between editors (released in build 207).
<p>Known problems:
<ul>
<li>
There is a blank line at the bottom of the switchers (apparently an SWT
sizing issue).</li>

<li>
Not all views always show in the view switcher when a perspective is newly
opened.&nbsp; Workaround: when a view is activated with the mouse, it will
appear in the list.</li>

<li>
ESC is not hooked properly.&nbsp; It will cancel the switcher, but also
activate the Start menu on Windows.&nbsp; Workaround: use any other key,
e.g. SPACE, to cancel.</li>
</ul>

<h3>
Accelerator to activate editor</h3>
F12 now activates the editor.&nbsp; This is useful when using the view
switcher above, to quickly get back to the editor from another view.
<br>We had to back out of using ESC to activate the editor, because it
broke other uses of ESC, e.g. rename in Navigator, task editing, code assist.
<h3>
Accelerators to activate specific views</h3>
You can now use accelerators to activate specific views.&nbsp; Eclipse
UI defines the following view accelerators:
<br>&nbsp;
<table BORDER COLS=2 WIDTH="50%" >
<tr>
<td><b>View</b></td>

<td><b>Accelerator</b></td>
</tr>

<tr>
<td>Navigator</td>

<td>CTRL+ALT+N</td>
</tr>

<tr>
<td>Bookmarks</td>

<td>CTRL+ALT+B</td>
</tr>

<tr>
<td>Outline</td>

<td>CTRL+ALT+O</td>
</tr>

<tr>
<td>Properties</td>

<td>CTRL+ALT+P</td>
</tr>

<tr>
<td>Tasks</td>

<td>CTRL+ALT+K</td>
</tr>
</table>

<p><b>Note</b>: The view accelerator support is experimental.&nbsp; The
assigned accelerators may change, or this feature may be removed completely.
<p>Known problems:
<ul>
<li>
Accelerators only work for views with entries in the Perspective / Show
View menu.&nbsp; It is currently possible to have a view that is visible
in the window, but with no entry in the Show View menu.&nbsp; Its accelerator
(if any) will therefore not work.</li>
</ul>

<h3>
PreferenceConverter expanded to provide support for FontData arrays</h3>
The PreferenceConverter now supports the setting and getting of FontData
arrays as well as single instances of FontDatas in order to be consistent
with the way FontDatas are specified in the font resources for the FontRegistry.&nbsp;
See below for API additions.
<br>&nbsp;
<h3>
API changes</h3>

<h3>
API additions</h3>

<ul>
<li>
Added IntegerFieldEditor.setValidRange(int min, int max) in package org.eclipse.jface.preference.</li>

<li>
Added the following to PreferenceConverter in package org.eclipse.jface.preference:</li>

<br>public static FontData[] getDefaultFontDataArray(IPreferenceStore,
String)
<br>public static FontData[] getFontDataArray(IPreferenceStore, String)
<br>public static void setDefault(IPreferenceStore, String, FontData[])
<br>public static void setValue(IPreferenceStore, String, FontData[])
<p>Also the code used to determine the validity of FontDatas by the FontRegistry
has now been made public. The new method bestData takes an array of FontDatas
and returns the first one for which there is corresponding font defined.
If it cannot find one it returns the first entry. If the array is empty
null is returned.
<br>public FontData bestData(FontData[], Display)</ul>

<h3>
Other highlights</h3>
Added navigation accelerators:
<ul>
<li>
CTRL+F6 to cycle between editors (+ SHIFT to go the other way) -- (has
known problem whereby order is not persisted between sessions)</li>

<li>
ESC to activate editor</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
The following PRs were fixed by the UI team:
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse SDK Build 207 - November 1, 2001
<h2>
What's new in this drop</h2>

<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>
Added navigation accelerators:
<ul>
<li>
CTRL+F6 to cycle between editors (+ SHIFT to go the other way) -- (has
known problem whereby order is not persisted between sessions)</li>

<li>
ESC to activate editor</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
The following PRs were fixed by the UI team (includes PRs from builds 202
- 206):
<p><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5107">Bug 5107</a>&nbsp;
Duplicate mnemonic in Perspective menu: Open and Close all
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4938">Bug 4938</a>&nbsp;
Deleting Project with Read-only files will cause non-readonly files to
be erased if user said to NOT erase them (1GLG2WT)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2968">Bug 2968</a>&nbsp;
TaskListMarker violates API (1GL2XHA)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2794">Bug 2794</a>&nbsp;
[UI] org.eclipse.ui.actionSets doc wrong (1GJNBT8)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2694">Bug 2694</a>&nbsp;
Editor Selection Dialog: UI suggestions (1GI6RPE)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2682">Bug 2682</a>&nbsp;
[UI] EC: Can't contribute submenu items (1GI3XO6)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2672">Bug 2672</a>&nbsp;
[UI] EC: Action delegate's concrete action should have same ID (1GHUJUZ)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2627">Bug 2627</a>&nbsp;
[UI] Dragging view border near scroll bar detaches view (1GHDIIU)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2601">Bug 2601</a>&nbsp;
[UI] Finish button still grayed out even though file name is pasted (1GGYVYG)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2558">Bug 2558</a>&nbsp;
[UI] Unzoom can cause view to move tab folder (1GFOGFE)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2318">Bug 2318</a>&nbsp;
[UI] Type Hierarchy View resize (1GENYR4)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2304">Bug 2304</a>&nbsp;
Action Set Actions appear in reverse order (1GENP9K)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2240">Bug 2240</a>&nbsp;
[UI] Unzoom occurs if you select file in navigator (1GEASOF)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2178">Bug 2178</a>&nbsp;
[JFace] Cannot select root of hierarchy view (1GE92IL)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1911">Bug 1911</a>&nbsp;
[UI] Popup Menu Extension produces duplicate results in static menu (1GC2RTS)
<br>1GL4ZQA: ITPUI:WINNT - Workbench crash
<br>1GKKR4V: ITPUI:ALL - Referencing the wrong perspective icon in plugin.xml
<br>1GKESDP: ITPUI:WIN2000 - WizardDialog comment wrong
<br>1GKEPV7: ITPUI:ALL - English: Missing punctuation
<br>1GKEPJH: ITPUI:WINNT - Outline View should wrap text
<br>1GKDG0C: ITPUI:WINNT - Reset does not work on deleted perspective
<br>1GKD8FV: ITPUI:WIN98 - Japanese - default text font can not display
japanese characters
<br>1GKCX6Y: ITPUI:WIN2000 - ActionSetLabelProvider assumes &amp; is first
char
<br>1GKCX37: ITPUI:WIN2000 - PerspectiveDescriptor.restoreState should
use ATT_SINGLETON
<br>1GKAYD6: ITPUI:WINNT - AboutDialog.createDialogArea is using wrong
GridData constant
<br>1GKA7RL: ITPUI:WIN2000 - Compare: last line on right clipped
<br>1GK9IOA: ITPUI:ALL - IEditorActionDelegate is not initialized correctly
<br>1GK7EJV: ITPUI:WINNT - Startup should fail if missing product.ini or
platform.ini
<br>1GJZYYB: ITPUI:ALL - Phantom resources
<br>1GJYMG4: ITPUI:WINNT - no context help for some menus/dialogs
<br>1GJWMGJ: ITPUI:WIN98 - Next &amp; Previous perspective labels changed?
<br>1GJWAJ9: ITPUI:WIN2000 - Netscape reference in shipped doc
<br>1GJUNL6: ITPUI:ALL - EC: PropertySheetViewer.setInput() does not save
editor value.
<br>1GJUH0A: ITPUI:Linux - Critical: Full Crash on Linux: While Printing
<br>1GJUAO7: ITPUI:WINNT - NPE on shutdown
<br>1GJP153: ITPUI:EC: root property sheet entry does not do a dispose
<br>1GJNB52: ITPUI:ALL - ToolItems in EditorToolBarManager can get out
of synch with the state of the IAction
<br>1GJ8HCU: ITPUI:ALL - XML example in org.eclipse.ui.viewActions doc
wrong
<br>1GIV8TL: ITPUI:WIN2000 - Can't open files in Notepad or Wordpad
<br>1GITIG6: ITPUI:ALL - H-shell: OK button still grayed out in Save As
dialog even though file name is pasted
<br>1GIEH2I: ITPUI:WINNT - TaskListContentProvider should cache markers
<br>1GI7HBZ: ITPUI:ALL - Cancel saving a file causes error
<br>1GI58G1: ITPUI:WINNT - Collator is not a singleton
<br>1GHUA5I: ITPUI:ALL - Error in ProductInfo.readConfigurationPreferences
<br>1GHQHGH: ITPUI:WINNT - Should cache the alternateMask in OpenPerspectiveMenu
<br>1GHOHW6: ITPUI:WINNT - PageBookView not disposing default page
<br>1GHHIO2: ITPUI:ALL - Goto Resource dialog resizing needs rework
<br>1GHC26Y: ITPUI:WINNT - Effeciency issues
<br>1GH2VTG: ITPUI:WIN98 - Properties view: enabling categories collapses
list
<br>1GGZ208: ITPUI:WIN2000 - ActionSetLabelProvider trims everything before
&amp;
<br>1GFOF1F: ITPUI:WIN2000 - Move by drag-and-drop uses multiple workspace
operations
<br>1GFMFIE: ITPUI:WINNT - Replace perspective with no perspective open
is a no op
<br>1GFBKRR: ITPUI:WIN2000 - minor: PreferencePage's javadoc comment has
a typo error
<br>1GFBJ9K: ITPUI:WIN2000 - Yes to All no longer works for DND import
<br>1GF9LG3: ITPUI:ALL - File->New menu &amp; New Wizard tool button diff...why?
<br>1GF7NAD: ITPUI:ALL - Export to zip has .jar in the list of names
<br>1GF68L0: ITPUI:ALL - Should hide closed project when selecting folder.
<br>1GF66A4: ITPUI:WIN98 - Outline has no help
<br>1GF5VPX: ITPUI:ALL - File MRU List is enabled when no perspectives
open.
<br>1GEZB8G: ITPUI:WIN2000 - Menu: delete is enabled with no resource
<br>1GEYPZU: ITPUI:ALL - Perspective windows should remember size of window
<br>1GEV72H: ITPUI:ALL - Goto resource should not be updated when arrow
or shift is pressed.
<br>1GEUXQL: ITPUI:WINNT - WorkbenchWindow#getMenuBarManager change comment
<br>1GEUW49: ITPUI:ALL - Last files opened menu items does nothing when
perps close
<br>1GET7WN: ITPUI:ALL - Add Bookmark is enabled when nothing is selected
<br>1GEPLQO: ITPUI:WIN98 - Close All enabled when no pages exist
<br>1GEPKMG: ITPUI:WIN98 - Cannot drag editor tab to correct location
<br>1GENVF4: ITPUI:ALL - The tasklist combo cell editor does not work correctly
<br>1GENTWQ: ITPUI:WIN98 - Import dialog should expand top folder
<br>1GENK55: ITPUI:WIN2000 - File Listbox: displays wrong icon for certain
file name
<br>1GEIC67: ITPUI:WINNT - Getting a focus callback before part creation
<br>1GE8OSQ: ITPUI:ALL - Inconsistent English in the status for the Task
Bar
<br>1GE8OFD: ITPUI:WIN2000 - Message in outline should have margins
<br>1GE6UQC: ITPUI:ALL - Drag out of folder leaves single tab
<br>1GDCVPF: ITPJUI:WINNT - cannot cancel build
<br>1GD7JX5: ITPUI:ALL - Menu items in nav popup New sub menu
<br>1GD0BN5: ITPUI:ALL - Set focus to container name (when empty) in folder
wizard
<br>1GCT3F5: ITPUI:WINNT - Poor details when moving fails
<br>1GCROF1: ITPUI:WINNT - Wizard banner misalignment
<p>The following PRs were closed with no action by the UI team (includes
PRs from builds 202 - 206):
<p><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5403">Bug 5403</a>&nbsp;
NPE on closing embedded netscape
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5259">Bug 5259</a>&nbsp;
EC: Project delete removes files on disk even when "no" selected
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2791">Bug 2791</a>&nbsp;
[UI] EC - SaveAll does not work right (1GJJG1M)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2294">Bug 2294</a>&nbsp;
Fast View can be resized only once (1GELX93)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2293">Bug 2293</a>&nbsp;
NPE during build (1GELWYX)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2204">Bug 2204</a>&nbsp;
Opening PDF files. (1GEAHMI)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2061">Bug 2061</a>&nbsp;
Usability: "Close All" is rude (1GDY6HE)
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1914">Bug 1914</a>&nbsp;
F2 should invoke rename? (1GC2UNE)
<br>1GFDB1N: ITPUI:WINNT - DCR: Print from default text editor
<br>1GEYEH3: ITPUI:WIN2000 - Copy shortcut not responding in Navigator
on startup
<br>1GEV2DL: ITPUI:ALL - Open Persp modifier keys different on win32 &amp;
linux
<br>1GEUWWH: ITPUI:WIN2000 - Welcome: too tied to CVS?
<br>1GEUW7K: ITPUI:WIN2000 - Welcome: Creating Java project does not show
Java perspective
<br>1GETC1F: ITPUI:ALL - View left stranded in folder
<br>1GET01H: ITPUI:ALL - Why is the welcome page an editor?
<br>1GEJN27: ITPJUI:WINNT - new project wizard should have selected "All
Projects" if you open it
<br>1GEI1GR: ITPJUI:WINNT - button in import wizzard should not be enabled
before selecting a destination project/folder
<br>1GEAOJK: ITPUI:WIN98 - Shift-select doesn't always work in Navigator
<br>1GEAMVM: ITPUI:WIN98 - Wrong view shown when tab order changes
<br>1GEAD4H: ITPUI:ALL - Text font should be set on one preference page
<br>1GDIP42: ITPJUI:WINNT - Smoke 105: Finish isn't default in Create Project
wizard
<br>1GD0BXF: ITPUI:ALL - File save as dialog banner area empty
<br>1FW3H9W: ITPUI:ALL - ExternalEditor::open may fail if path includes
spaces
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse SDK Build 201 - September 21, 2001
<h2>
What's new in this drop</h2>

<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
The following PRs were fixed by the UI team:
<p>1GK7H21: ITPUI:WIN2000 - Default text editor comes up black
<br>1GK0388: ITPJCORE:WIN2000 - replace with local history: selecting (workspace)
deletes source
<p>
<hr SIZE=0 WIDTH="100%">
<h1>
Eclipse Platform Build Notes<br>
Workbench</h1>
Eclipse SDK Build 200 - September 19, 2001
<h2>
What's new in this drop</h2>

<h3>
API changes</h3>

<h3>
API additions</h3>

<h3>
Other highlights</h3>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
The following PRs were fixed by the UI team:
<p>1GIV495: ITPUI:ALL - TextMergeViewer doesn't reveal token diffs horizontally
<br>1GIUS6L: ITPUI:ALL - TextMergeViewer uses deprecated Thread.stop()
<br>1GIIBHM: ITPUI:WIN2000 - Problems when comparing zip files
<br>1GI5DN9: ITPUI:WIN2000 - Conflicting token deletions don't show up
in text compare viewer
<br>1GI3KUR: ITPJUI:WIN2000 - Compare: double-click in versions list closes
view
<br>1GHBPA1: ITPVCM:WINNT - Compare - next change arrow switches to wrong
file
<br>1GGZ8DO: ITPJUI:WIN - MergeViewer invalid selection range
<br>1GGQQH3: ITPJUI:WINNT - Compare hightlights a non-change instead of
the change
<br>1GGNX9W: ITPVCM:Linux - Internal error comparing out of sync resource
<br>1GGNKHN: ITPJUI:ALL - No progress during replace with local history
<br>1GG0ELM: ITPVCM:ALL - Local history displayed some of Today's items
as Yesterday
<br>1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system
appear as empty
<br>1GFFR4B: ITPUI:WIN98 - local history is misleading
<br>1GEUX0D: ITPJUI:ALL - not state aware toolbar button in compare
<br>1GBM0IL: ITPUI:WINNT - CompareEditorInput#save should throw CoreException
</body>
</html>
