<!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 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>
