Bug 25818 [Workbench] PageBookView causes editors to leak
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/10/18 and 2002/10/23.
Eclipse Integration Build 20021018
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/10/16 and 2002/10/18.
Eclipse Integration Build 20021016
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/10/09 and 2002/10/16.
Eclipse Integration Build 20021009
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/10/03 and 2002/10/09.
Eclipse Integration Build 20021003
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/10/02 and 2002/10/03.
Eclipse Integration Build 20021002
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/09/25 and 2002/10/02.
Eclipse Integration Build 20020925
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/09/17 and 2002/09/25.
Eclipse Integration Build 20020917
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/08/14 and 2002/09/17.
Eclipse Integration Build 20020814
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/08/13 and 2002/08/14.
Click here to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED between 2002/06/27 and 2002/08/13.
icon - new attribute to workingSet element of org.eclipse.ui.workingSets extension point. The image specified here will be used in the working set type list on the first page of the working set creation wizard. It will also be used in the working set selection dialog to indicate the type of existing working sets.- Added new global action: Add Task (under Edit menu). Added IWorkbenchActionConstants.ADD_TASK
In order to improve startup time, editors are being lazily created. The API IWorkbenchPage.getEditors() was deprecated and the APIs getEditorReferences(), getDirtyEditors (convenience API) and findEditor(input) were added to IWorkbenchPage. To keep backward compatibility, getEditors() was changed to initialize/instanciate all editors before returning them. So getEditors() should be avoided otherwise the first caller will pay the time saved from the startup.The API IWorkbenchPage.getViews() was deprecated as well. The intention is to lazy create views so that views hidden on a tab folder are not going to be instanciated until they are made visible. The API getViewReferences was added to IWorkbenchPage but the implementation has not changed yet.
IWorkbenchPage.addPropertyChangeListener/removePropertyChangeListener - Deprecated methods. Views should register a property change listener with the IWorkingSetManager to receive notification when a working set is removed.IWorkbenchPage.getWorkingSet - Deprecated method. Working sets are now view specific and are no longer stored in the page. If your view uses a working set it should provide means to select a working set.
IWorkingSet.CHANGE_WORKING_SET_CONTENT_CHANGE/CHANGE_WORKING_SET_NAME_CHANGE - Deprecated constants. Use the constants in IWorkingSetManager instead.
IWorkingSet.addPropertyChangeListener/removePropertyChangeListener - Deprecated methods. Use IWorkingSetManager.addPropertyChangeListener/removePropertyChangeListener instead to receive notification when a working set has changed.
org.eclipse.ui.views.framelist - has been promoted to API from org.eclipse.ui.views.internal.framelist.
org.eclipse.ui.views.internal.framelist has been deleted.org.eclipse.ui.XMLMemento - has been promoted to API from org.eclipse.ui.internal. Internal implementation has been deleted.
IWorkingSetManager.addRecentWorkingSet/getRecentWorkingSets - Provides access to the most recently used working set list. The MRU list is a global list of working sets that have recently been selected by the user. It is the responsibility of the working set selection UI to add the selected working set using the addRecentWorkingSet API.
IResourceNavigatorPart.getWorkingSet/setWorkingSet - Used to access the resource navigator view working set.
Working sets have been changed from being set in a workbench page to being view specific. A working set for the resource navigator view may be selected in the view's filter dialog.Added a preference for Text File Encoding (on the Work In Progress preference page). Any clients, such as text editors and builders, which read text files from the workspace should use the workspace encoding preference. This preference is actually stored in the preferences for org.eclipse.core.resources, rather than org.eclipse.ui, so that builders and other headless clients can access it. See PREF_ENCODING and getEncoding() in org.eclipse.core.resources.ResourcesPlugin.
The following is one recommended way of reading text files:
IFile file = ...;
InputStreamReader reader = null;
try {
reader = new InputStreamReader(file.getContents(), ResourcesPlugin.getEncoding());
// use the reader
}
catch (UnsupportedEncodingException e) {
// The encoding preference is not supported.
// Handle it here.
}
catch (IOException e) {
// Some other IO exception has occurred.
// Handle it here.
}
finally {
if (reader != null) {
try {
reader.close();
}
catch (IOException e) {
// ignore
}
}
}
fastViewWidthRatio - new optional attribute to view element of org.eclipse.ui.views extension point. This attribute can be used to specify the width of views (as a percentage of the width of the workbench) when they appear as fast views. If it is not specified, a default width ratio will be used.relationship - attribute to view element of org.eclipse.ui.perspectiveExtensions extension point may now have a value of "fast", indicating the contributed view is a fast view.
ratio - attribute to view element of org.eclipse.ui.perspectiveExtensions extension point may now be used to specify the width ratio of the views contributed as fast views.
visible - new optional attribute to view element of org.eclipse.ui.perspectiveExtensions extension point. This attribute should have a value of either "true" or "false". If the value of this attribute is "false", the view will not appear immediately upon perspective opening. If it is not specified, contributed views will be visible by default.
ElementListSelectionDialog, MultiElementListSelectionDialog, TwoPaneElementSelector, ElementTreeSelectionDialog, CheckedTreeSelectionDialog, SelectionStatusDialog, AbstractElementListSelectionDialog, and FilteredList
- In org.eclipse.ui.dialogs, several selection dialog classes have been pushed down from JDT.
For more details, see bug 10852 (http://dev.eclipse.org/bugs/show_bug.cgi?id=10852).
ICapabilityWizard - this experimental interface is deprecated and will be removed prior to M6. Use ICapabilityInstallWizard instead.ResourceNavigator.setLabelDecorator() - This experimental and deprecated method has been removed. Callers should use the decoration extension point instead.
org.eclipse.ui.views.internal.framelist - all types in this package have been deprecated and will be removed prior to M6.
Single Click - The API addOpenListener(IOpenListener listener) was added to StructuredViewer. The listeners will be notified of open events which dependent on the user preference (default is double-click). Views that are implemented on top of SWT (not JFace) can use the classes OpenStrategy and IOpenEventListener. Views like the Navigator should change the code that listen for DoubleClickEvent to listen for OpenEvent instead/as well. E.g. Navigator opens editors on open event but expands trees on double click.
IWorkbenchPage.isEditorPinned(IEditorPart) - added back the tool bar button to pin editors. And added the API isEditorPinned(IEditorPart editor) to IWorkbenchPage. Any kind of editor managment code must use isEditorPinned.
ICapabilityInstallWizard and ICapabilityUninstallWizard - capability now support both an install and uninstall wizard. See the documentation for the capabilities extension point for more detailsorg.eclipse.ui.views.framelist - contains all the types previously contained in org.eclipse.ui.views.internal.framelist package
IWorkbenchActionConstants - New constants for the new menus, global actions and groups (see Menu Reorganization below)
IWindowListener - support listeners for window lifecycle events
IWorkbench.addWindowListener(IWindowListener) and IWorkbench.removeWindowListener(IWindowListener) - support listeners for window lifecycle events
OpenInNewWindowAction - The action was made public so that views such as Navigator can have the "Open In New Window" option.
Retarget Actions in Action Sets - The action set extension point now supports the retarget and allowLabelUpdate attributes. The readme example has been modified to demonstrate the use of these attributes. Parts can supply handlers for these actions using the standard API on their site. As with global actions, the enablement is determined by the handler.Menu Reorganization - There has been a major reorganization of the Workbench menus. The overall intent of the change is to provide all actions on the main menus, reserving the context menus for frequently used actions. This is the recommended direction for the Workbench and other plugins.
The File menu has new items for Revert (used by editors), Refresh (used by the Navigator and similar views), and Properties (used by the Navigator and Task List).
The Edit menu has new items for Move and Rename.
The Perspective menu has been removed. The perspective actions have been moved to the Window menu and renamed.
The Workbench menu has been replaced by the Project menu, and has new actions for opening, closing, and building individual projects.
There is a new menu, Navigate, which contains Go Into and the Go To submenu, used by the Navigator and similar views (e.g. the Packages view in JDT UI). It also has reserved groups for Open On... and Show in... items, although the Workbench itself does not add any actions to these groups. See the JDT UI plugin for a good example of how these should be used.
All the new actions are provided as retargetable global actions. There are no default implementations of these actions provided by the Workbench proper (the standard views and editors provide handlers though). Use IActionBars.setGlobalActionHandler to hook handlers in views and editors.
Note that this approach may still change between now and M6 for the more resource-oriented actions. We are considering providing these as a separate action set, however this would require changing any existing perspectives which want these actions available. The additions to the File and Edit menus will likely remain as retargetable global actions.
groupMarker - was added to ActionSets menus allowing menus to have a marker without a visible separator.
- Contributions from other plugins, via action sets or editor action contributions, to the old menus (Perspective and Workbench) are lost. We are planning on adding support to forward such contributions to the new menus (Window and Project).
- ActionFactory and subclasses deprecated in org.eclipse.ui.views.navigator. These will be deleted in M6.
- Changed ResourceNavigator to use ActionGroups instead of ActionFactories.
ICombinedLabelDecorator and ICombinedLabelProvider
- It is now possible to decorate both the text and the image for an element in the same method call. ICombinedLabelDecorator is a subclass of ILabelDecorator and specifies a method decorateLabel(Object, CombinedLabel). A CombinedLabel is a type that contains a text and an image for decoration. ICombinedLabelProvider extends ILabelProvider and implements a method getCombinedLabel(Object). The DecoratorManager now handles both the ILabelDecorator and ICombinedLabelDecorator.ActionGroup and ActionContext in org.eclipse.ui.actions
RadioGroupFieldEditor
- Added constructor to RadioGroupFieldEditor to specify whether a Group control should be used (false by default for backwards compatibility). Preference pages are encouraged to use Group controls for groups of related radio buttons or toggle buttons, since they provide more context to accessibility aids like JAWS.
LabelProviderChangedEvent
It is now possible to create a LabelProviderChangedEvent with multiple elements rather than sending an seperate event for each change. The StructuredViewer now updates based on an array of elements. The previous API has not changed, now LabelProviderChangedEvent .getElement() returns the first element in the elements of the event.
AbstractTreeViewer
A new method has been added to AbstractTreeViewer. AbstractTreeViewer.getVisibleExpandedElements() will only return the expanded elements that are currently visible to the user. This is meant as a possible alternative to getExpandedElements() which returns all expanded elements whether they are currently visible or not. getVisibleExpandedElements() is now being used by the ResourceNavigator to determine the expansions to be stored in the Momento. This could be of use for the PackagesView as well.
Deleted Editors
Editors deleted via the Workbench>File Editors preference page will now be remembered after workbench shutdown.
Note that only the editor should be deleted. If the file type is deleted, the file type and editor will reappear the next time the workbench is started.
Project CapabilitiesPlug-ins developing capabilities will want to turn on the option in the workbench preference to enable the use of the configurable new project wizard.
IWorkbenchPartSite.getDecoratorManager()
- As the DecoratorManager has proven to be required for more than just IWorkbenchPartSites we have moved getDecoratorManager() to IWorkbench and deprecated the getDecoratorManager() in IWorkbenchPartSite. The one in IWorkbenchPartSite will be removed after the other Eclipse components have had a chance to switch to the new API.BasicNewProjectResourceWizard, WizardNewProjectCreationPage, WizardNewProjectReferencePage, and NewProjectAction
- These classes have been deprecated. Multiple project type creation wizards are no longer recommended. The workbench provides one wizard to the user to create a project resource. Plug-ins should now use the org.eclipse.ui.capabilities extension point. See also CreateProjectAction if the plug-in needs to launch the new project wizard.org.eclipse.ui.projectNatureImages
- this extension point is no longer applicable with the new project capability featureorg.eclipse.ui.newWizards attributes "project" and "final perspective"
- these attributes are no longer applicable with the new project capability feature
IWorkbench.getDecoratorManager()RetargetAction and LabelRetargetAction
- See notes on Editor Action Contributions beloworg.eclipse.ui.actionSetPartAssociations
- new extension point, see Action Set - Part Associations belowCreateProjectAction
- action to launch new project creation wizard with option to add capabilitiesorg.eclipse.ui.capabilities
- new extension point to add capabilities to a new/existing project. See the documentation on this extension point and also the e-mail sent to the dev-ui mailing list with further instructions on how to migrate.ICapabilityWizard
- new interface for wizards that add a capability to a new/existing project.
Editor Action ContributionsEditor contributions remain visible but disabled when the editor is the "last active editor" but is not the active part. This is now true for menubar and toolbar contributions (in 1.0 it only applied to toolbar contributions).
There is however an exception to this. The classes RetargetAction and LabelRetargetAction have been moved to the API package org.eclipse.ui.actions. These classes implement the "Global Action" behavior in the workbench. An editor action contributor may contribute one of these actions (and supply an action handler for it). If an active view supplies a handler for the action, the action will be enabled.
The readme example has been modified to demostrate this behavior. The editor contributes global actions and the content outline supplies a handler for these actions.
Action Set - Part Associations
An org.eclipse.ui.actionSetPartAssociations extension point has been added to associate action sets with particular views and editors. In the case of an editor, the action set will remain visible while the editor is the current editor. In the case of a view, the action set will be visible when the view is the active part.
The user may override these associations using the customize perspective dialog. Regardless of these associations, action sets which the user turns off will never appear and action sets which the user turns on will always be visible.
If an older workspace is used with this drop, perspectives should be closed then reopend in order to get the correct behavior.
Marker Help and Resolutions
Doc has been added for the org.eclipse.ui.markerResolutions and org.eclipse.ui.markerHelp extension points.
Project Capabilities
Support is now available for plug-in to provide capabilities to projects. The workbench provides one wizard now to create a new project. Users can then add/remove capabilities to a new/existing project. See the documentation for the org.eclipse.ui.capabilities extension point. And the e-mail in dev-ui mailing list for further instructions on how to migrate.
D&D and Fast Views
Added drag and drop support for fast view buttons. Dragging a file over a fast view button will activate the fast view. Dragging a file back over the shortcut bar will reactivate the previously activate view.Task View
Added a properties dialog for task creation, and for viewing or editing task properties. This also addresses the accessibility issues with task editing.
IContextComputer, DialogPageContextComputer, and ViewContextComputer
These classes have been deprecated. See "Help Framework" below for more detailsIWorkbench
public IWorkbenchPage clonePage(IWorkbenchPage page);
public IWorkbenchPage openPage(IAdaptable input);
public IWorkbenchPage openPage(String perspId, IAdaptable input, int keyState);
IWorkbenchPreferenceConstants
public static final String OPEN_NEW_PERSPECTIVE;
public static final String ALTERNATE_OPEN_NEW_PERSPECTIVE;
public static final String SHIFT_OPEN_NEW_PERSPECTIVE;
public static final String PROJECT_OPEN_NEW_PERSPECTIVE;
public static final String OPEN_PERSPECTIVE_WINDOW;
public static final String OPEN_PERSPECTIVE_PAGE;
public static final String OPEN_PERSPECTIVE_REPLACE;
public static final String NO_NEW_PERSPECTIVE;
OpenNewPageMenu, OpenNewWindowMenu, and OpenPerspectiveMenu
These IWorkbench methods, IWorkbenchPreferenceConstants constants, and 3 classes have all been deprecated. Clients should use the new showPerspective methods on IWorkbench. See the ui mailing list for a more details about this new API and how clients are expected to use them.
IMemento
public String getTextData()
public void putTextData(String)
This new API is to allow clients to save text containing tabs, spaces, newline, etc characters without these characters being changed. See problem report #4378.ISelectionService
public void addSelectionListener(String partId, ISelectionListener listener);
public void removeSelectionListener(String partId, ISelectionListener listener);
public ISelection getSelection(String partId);
This new API allows client to track selection on a specific part. See problem report #2668IWorkbench
public IWorkbenchPage showPerspective(String perspectiveId, IWorkbenchWindow window, IAdaptable input);
public IWorkbenchPage showPerspective(String perspectiveId, IWorkbenchWindow window);
This new API is to support a more consistent and predictable opening of perspective for the user. See the ui mailing list for a more details about this new API and how clients are expected to use them.
Help framework
The API of WorkbenchHelp has been updated to reflect changes to the API of the help support system. Specifically, nested contexts are no longer supported. Thus the WorkbenchHelp API now only accepts a single help context id (the old API is deprecated and in the case of an array of contexts only the first element is used).The types IContextComputer, DialogPageContextComputer, and ViewContextComputer have been deprecated. Clients who wish to dynamically compute a help context should hook their own help listener then call WorkbenchHelp.displayHelp with a context id or IContext.
Marker resolution
The org.eclipse.ui.markerResolution extension point has been modified to accept an IMarkerResolutionGenerator. The generator is passed a marker and may return 0..n resolutions for the marker. It is important that the generator be targetted as specifically as possible in the xml in order to avoid unneeded plug-in loading. Full documentation of this extension point and org.eclipse.ui.markerHelp should be available shortly. See the readme example for a demostation or thier use.
IContextComputer, DialogPageContextComputer, and ViewContextComputer
These classes have been deprecated. See "Help Framework" below for more detailsIWorkbench
public IWorkbenchPage clonePage(IWorkbenchPage page);
public IWorkbenchPage openPage(IAdaptable input);
public IWorkbenchPage openPage(String perspId, IAdaptable input, int keyState);
IWorkbenchPreferenceConstants
public static final String OPEN_NEW_PERSPECTIVE;
public static final String ALTERNATE_OPEN_NEW_PERSPECTIVE;
public static final String SHIFT_OPEN_NEW_PERSPECTIVE;
public static final String PROJECT_OPEN_NEW_PERSPECTIVE;
public static final String OPEN_PERSPECTIVE_WINDOW;
public static final String OPEN_PERSPECTIVE_PAGE;
public static final String OPEN_PERSPECTIVE_REPLACE;
public static final String NO_NEW_PERSPECTIVE;
OpenNewPageMenu, OpenNewWindowMenu, and OpenPerspectiveMenu
These IWorkbench methods, IWorkbenchPreferenceConstants constants, and 3 classes have all been deprecated. Clients should use the new showPerspective methods on IWorkbench. See the ui mailing list for a more details about this new API and how clients are expected to use them.
IMemento
public String getTextData()
public void putTextData(String)
This new API is to allow clients to save text containing tabs, spaces, newline, etc characters without these characters being changed. See problem report #4378.ISelectionService
public void addSelectionListener(String partId, ISelectionListener listener);
public void removeSelectionListener(String partId, ISelectionListener listener);
public ISelection getSelection(String partId);
This new API allows client to track selection on a specific part. See problem report #2668IWorkbench
public IWorkbenchPage showPerspective(String perspectiveId, IWorkbenchWindow window, IAdaptable input);
public IWorkbenchPage showPerspective(String perspectiveId, IWorkbenchWindow window);
This new API is to support a more consistent and predictable opening of perspective for the user. See the ui mailing list for a more details about this new API and how clients are expected to use them.
Help framework
The API of WorkbenchHelp has been updated to reflect changes to the API of the help support system. Specifically, nested contexts are no longer supported. Thus the WorkbenchHelp API now only accepts a single help context id (the old API is deprecated and in the case of an array of contexts only the first element is used).The types IContextComputer, DialogPageContextComputer, and ViewContextComputer have been deprecated. Clients who wish to dynamically compute a help context should hook their own help listener then call WorkbenchHelp.displayHelp with a context id or IContext.
Marker resolution
The org.eclipse.ui.markerResolution extension point has been modified to accept an IMarkerResolutionGenerator. The generator is passed a marker and may return 0..n resolutions for the marker. It is important that the generator be targetted as specifically as possible in the xml in order to avoid unneeded plug-in loading. Full documentation of this extension point and org.eclipse.ui.markerHelp should be available shortly. See the readme example for a demostation or thier use.
Save All action remains disabled when there are known editors that need saving.
Copy in the navigator is now implemented as a clipboard based action.
Project, Folder and File copy is accomplished by:
1) Selecting the resources to copy
2) Invoking the Copy menu action (or pressing Ctrl-C)
3) Selecting the destination
4) Invoking the Paste menu action (or pressing Ctrl-V)Resources can also be copied to and "imported" from the file system (ex. MS File Explorer) in this manner.
In this build, all support for views in detached/floating windows has been disabled. When restoring the workbench state that includes views as detached windows, these views will be ignored and will need to be manually opened again by the user using Perspective > Show View sub-menu. Drag and drop of a view to a detached window is also disabled.Import/Export Wizard Pages
The import and export pages have an out-of-date and up-to-date version. In order to remove confusion about these, the following classes have been deprecated:WizardExportPage
WizardFileSystemExportPage1
WizardZipFileExportPage1WizardImportPage
WizardFileSystemImportPage1
WizardZipFileImportPage1The up-to-date supported versions of these classes are
WizardExportResourcesPage
WizardFileSystemResourceExportPage1
WizardZipFileResourceExportPage1WizardResourceImportPage
WizardFileSystemResourceImportPage1
WizardZipFileResourceImportPage1
The marker help registry is available from the Workbench.
The task list has been modified to show the F1 help for its selected
marker and an "Autofix..." menu item has
been added to its context menu to display the resolutions registered
for the marker.
The readme example has been modified to demonstrate these extension
points.
Use the editor context "Add" menu to add markers for which F1 help
and resolutions have been registered.
NOTE: Any of this API and implementation is subject to change. More
extensive documentation will follow once
the API has stabilzed.
- a refreshPluginActions() has been added to AbstractUIPlugin. The AbtractUIPlugin.startup
method will call this to trigger the creation of the action delegates for
the plugin.
- a new enablement element has been added to the action markup for
action sets, views, editors, and popup menus. This can be used to
define the enablement criteria for any action, and is a sub element of
the action element.
- a new visibility element has been added to popup menu extension action
markup. This can be used to define the visibility criteria for the
action, and is a sub element of the object contribution element.
The new xml extends the existing markup, and do not replace it.
The xml format for visibility and enablement criteria is defined in actionExpressions.html, in the org.eclipse.ui doc directory. This doc is referenced from the popup menu, view, editor, and action set documents.
The action enablement code has also been modified to support non IStructuredSelections. According to one dictionary, a selection is "one that is selected" or "a collection of selected things". 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.
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. You can use the following declaration to enable the action.
<action id="org.eclipse.ui.tests.internal.as_1"
label="anyText"
menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
class="org.eclipse.ui.tests.api.MockActionDelegate"
enablesFor="1">
<selection class="org.eclipse.jface.text.ITextSelection"/>
</action>
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). In this case, the IFile will be exposed in an IStructuredSelection, but there is no need to mention the IStructuredSelection in the action declaration. The workbench treats IStructuredSelection as a container for the important data inside.
<action id="org.eclipse.ui.tests.internal.as_2"
label="anyTextFile"
menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
class="org.eclipse.ui.tests.api.MockActionDelegate">
<enablement>
<objectClass name="org.eclipse.core.IFile"/>
<objectState name="extension" value="txt"/>
</enablement>
</action>
1) The default behavior for "Open Perspective" has been changed from "open in current window" to "open in new window". This was done to clarify the separation between state in one perspective and another.
2) A perspective reuse strategy has been implemented in the workbench, and is "on" by default. If an object is opened once (using Open Perspective in the Navigator), you get a new page (in implementation terms). 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. This was done to avoid the creation of duplicate perspectives, unless the user explicitly asks for it. 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. The "reuse perspective" option can be turned off in the Workbench Preferences page.
3) The contents of the Perspective > Open submenu are now determined using a global "most recently used" list. As you switch from one perspective to another, the list is updated with the new perspective (and clipped at 7 items). 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. In order to avoid menu reordering, the items are sorted by perspective name.
4) A drop down combo box has been added to the window toolbar, to change the "perspective type" in a page. 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. This makes it easy to switch between perspective types without losing the open editors.
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. In this situation a d&d is started and a detached window is created. 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.
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. This creates a floating window, which you have to redrag to regain the original layout. This also occurs with view folders.
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.
To resolve problem 2, the behavior of drag and drop has been changed. If you drag a view or folder out, then back over itself, the "reject cursor" appears. If you release the mouse button at that point, the drag is cancelled. In all other scenarios, the behavior is unchanged.
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.
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.
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.
1. If you select Perspective > Open > X, the active perspective in the
page is changed. The old behavior, to create a new page, does not
occur.
2. If you select an object in the Navigator, then invoke Open Perspective
> X, we search the workbench. If a window already exists within input
== selected object, that window is activated and the perspective is changed
in it. Otherwise, a new window is created.
3. The drop down list box is visible in the tool bar. You can
use it to change the active perspective in the active page.
4. The contents of any perspective menu are determined using an MRU
algorithm, and are consistent in every perspective.
5. From any window, you can always get back to the root of the workspace
by invoking Window > Open Workbench. This is like the old VAJ behavior.
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).
The accelerator is an integer or String 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<<18)|'Z' = 262234.
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).
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.
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).
Two of the actions we ship should use this tag:
org.eclipse.jdt.ui
OpenTypeAction.label=Open &Type...@Ctrl+Shift+T
<action id="org.eclipse.jdt.ui.actions.OpenType"
menubarPath="workbench/wbEnd"
toolbarPath="Normal/Java"
label="%OpenTypeAction.label"
tooltip="%OpenTypeAction.tooltip"
icon="icons/full/ctool16/opentype.gif"
accelerator="Ctrl+Shift+T"
class="org.eclipse.jdt.internal.ui.actions.OpenTypeAction"/>
org.eclipse.search
OpenSearchDialogAction.label = &Search...@Ctrl+H
<action id="org.eclipse.search.ui.OpenSearchDialogAction"
menubarPath="edit/find"
toolbarPath="Normal/Search"
label="%OpenSearchDialogAction.label"
tooltip="%OpenSearchDialogAction.tooltip"
icon="icons/full/ctool16/search.gif"
accelerator="Ctrl+H "
class="org.eclipse.search.internal.ui.OpenSearchDialogAction"/>
Bug 1824 [JFace Text] 50 reconciling threads for 4 editors opened
(1GFXMV8)
Bug 1847 Work with help team for example integration (1G5T6A8)
Bug 1850 EditableTable (1G5T6MC)
Bug 1851 WALBAKCK - Long Operation (1G5T6TP)
Bug 1974 5 line file takes 7 seconds to open (1GD0KY4)
Bug 2074 PropertySheet should expand categories by default (1GE36VQ)
Bug 2569 [JFace Text] Content assist list truncated (1GG1W9B)
Bug 2577 [Standard Components] Property sheet: up/down arrow
causes a
Bug 2904 [JFace Text] PropagatingFontFieldEditor has moved (1GKKL13)
Bug 4975 Status area too short
Bug 5456 Esc doesn't cancel code assist anymore
Bug 5462 Can't cancel code assist anymore
Bug 5560 ESC on rename dialog renames the file
Bug 5586 problem with PageBookView code changes
Bug 5721 Welcome not disabled
Bug 5922 Property page ordering broken because of info page
Bug 5993 Widget has the wrong parent
Bug 6030 Need to allow filenames with no extensions when registering
The following PRs were closed with no action by the UI team (includes PRs closed since build 207):
Bug 1839 No support for 640x480 resolution (1GELIAS)
Bug 2042 SEVERE: Perspective lost (1GDSH6F)
Bug 5753 Make dialogs modal on with respect to a single perspective
Bug 5788 EC: Build on save preference text unclear...
Bug 5869 eclipse.exe throwing and exception
Known problems:
View | Accelerator |
Navigator | CTRL+ALT+N |
Bookmarks | CTRL+ALT+B |
Outline | CTRL+ALT+O |
Properties | CTRL+ALT+P |
Tasks | CTRL+ALT+K |
Note: The view accelerator support is experimental. The assigned accelerators may change, or this feature may be removed completely.
Known problems:
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.
public FontData bestData(FontData[], Display)
Bug 5107
Duplicate mnemonic in Perspective menu: Open and Close all
Bug 4938
Deleting Project with Read-only files will cause non-readonly files to
be erased if user said to NOT erase them (1GLG2WT)
Bug 2968
TaskListMarker violates API (1GL2XHA)
Bug 2794
[UI] org.eclipse.ui.actionSets doc wrong (1GJNBT8)
Bug 2694
Editor Selection Dialog: UI suggestions (1GI6RPE)
Bug 2682
[UI] EC: Can't contribute submenu items (1GI3XO6)
Bug 2672
[UI] EC: Action delegate's concrete action should have same ID (1GHUJUZ)
Bug 2627
[UI] Dragging view border near scroll bar detaches view (1GHDIIU)
Bug 2601
[UI] Finish button still grayed out even though file name is pasted (1GGYVYG)
Bug 2558
[UI] Unzoom can cause view to move tab folder (1GFOGFE)
Bug 2318
[UI] Type Hierarchy View resize (1GENYR4)
Bug 2304
Action Set Actions appear in reverse order (1GENP9K)
Bug 2240
[UI] Unzoom occurs if you select file in navigator (1GEASOF)
Bug 2178
[JFace] Cannot select root of hierarchy view (1GE92IL)
Bug 1911
[UI] Popup Menu Extension produces duplicate results in static menu (1GC2RTS)
1GL4ZQA: ITPUI:WINNT - Workbench crash
1GKKR4V: ITPUI:ALL - Referencing the wrong perspective icon in plugin.xml
1GKESDP: ITPUI:WIN2000 - WizardDialog comment wrong
1GKEPV7: ITPUI:ALL - English: Missing punctuation
1GKEPJH: ITPUI:WINNT - Outline View should wrap text
1GKDG0C: ITPUI:WINNT - Reset does not work on deleted perspective
1GKD8FV: ITPUI:WIN98 - Japanese - default text font can not display
japanese characters
1GKCX6Y: ITPUI:WIN2000 - ActionSetLabelProvider assumes & is first
char
1GKCX37: ITPUI:WIN2000 - PerspectiveDescriptor.restoreState should
use ATT_SINGLETON
1GKAYD6: ITPUI:WINNT - AboutDialog.createDialogArea is using wrong
GridData constant
1GKA7RL: ITPUI:WIN2000 - Compare: last line on right clipped
1GK9IOA: ITPUI:ALL - IEditorActionDelegate is not initialized correctly
1GK7EJV: ITPUI:WINNT - Startup should fail if missing product.ini or
platform.ini
1GJZYYB: ITPUI:ALL - Phantom resources
1GJYMG4: ITPUI:WINNT - no context help for some menus/dialogs
1GJWMGJ: ITPUI:WIN98 - Next & Previous perspective labels changed?
1GJWAJ9: ITPUI:WIN2000 - Netscape reference in shipped doc
1GJUNL6: ITPUI:ALL - EC: PropertySheetViewer.setInput() does not save
editor value.
1GJUH0A: ITPUI:Linux - Critical: Full Crash on Linux: While Printing
1GJUAO7: ITPUI:WINNT - NPE on shutdown
1GJP153: ITPUI:EC: root property sheet entry does not do a dispose
1GJNB52: ITPUI:ALL - ToolItems in EditorToolBarManager can get out
of synch with the state of the IAction
1GJ8HCU: ITPUI:ALL - XML example in org.eclipse.ui.viewActions doc
wrong
1GIV8TL: ITPUI:WIN2000 - Can't open files in Notepad or Wordpad
1GITIG6: ITPUI:ALL - H-shell: OK button still grayed out in Save As
dialog even though file name is pasted
1GIEH2I: ITPUI:WINNT - TaskListContentProvider should cache markers
1GI7HBZ: ITPUI:ALL - Cancel saving a file causes error
1GI58G1: ITPUI:WINNT - Collator is not a singleton
1GHUA5I: ITPUI:ALL - Error in ProductInfo.readConfigurationPreferences
1GHQHGH: ITPUI:WINNT - Should cache the alternateMask in OpenPerspectiveMenu
1GHOHW6: ITPUI:WINNT - PageBookView not disposing default page
1GHHIO2: ITPUI:ALL - Goto Resource dialog resizing needs rework
1GHC26Y: ITPUI:WINNT - Effeciency issues
1GH2VTG: ITPUI:WIN98 - Properties view: enabling categories collapses
list
1GGZ208: ITPUI:WIN2000 - ActionSetLabelProvider trims everything before
&
1GFOF1F: ITPUI:WIN2000 - Move by drag-and-drop uses multiple workspace
operations
1GFMFIE: ITPUI:WINNT - Replace perspective with no perspective open
is a no op
1GFBKRR: ITPUI:WIN2000 - minor: PreferencePage's javadoc comment has
a typo error
1GFBJ9K: ITPUI:WIN2000 - Yes to All no longer works for DND import
1GF9LG3: ITPUI:ALL - File->New menu & New Wizard tool button diff...why?
1GF7NAD: ITPUI:ALL - Export to zip has .jar in the list of names
1GF68L0: ITPUI:ALL - Should hide closed project when selecting folder.
1GF66A4: ITPUI:WIN98 - Outline has no help
1GF5VPX: ITPUI:ALL - File MRU List is enabled when no perspectives
open.
1GEZB8G: ITPUI:WIN2000 - Menu: delete is enabled with no resource
1GEYPZU: ITPUI:ALL - Perspective windows should remember size of window
1GEV72H: ITPUI:ALL - Goto resource should not be updated when arrow
or shift is pressed.
1GEUXQL: ITPUI:WINNT - WorkbenchWindow#getMenuBarManager change comment
1GEUW49: ITPUI:ALL - Last files opened menu items does nothing when
perps close
1GET7WN: ITPUI:ALL - Add Bookmark is enabled when nothing is selected
1GEPLQO: ITPUI:WIN98 - Close All enabled when no pages exist
1GEPKMG: ITPUI:WIN98 - Cannot drag editor tab to correct location
1GENVF4: ITPUI:ALL - The tasklist combo cell editor does not work correctly
1GENTWQ: ITPUI:WIN98 - Import dialog should expand top folder
1GENK55: ITPUI:WIN2000 - File Listbox: displays wrong icon for certain
file name
1GEIC67: ITPUI:WINNT - Getting a focus callback before part creation
1GE8OSQ: ITPUI:ALL - Inconsistent English in the status for the Task
Bar
1GE8OFD: ITPUI:WIN2000 - Message in outline should have margins
1GE6UQC: ITPUI:ALL - Drag out of folder leaves single tab
1GDCVPF: ITPJUI:WINNT - cannot cancel build
1GD7JX5: ITPUI:ALL - Menu items in nav popup New sub menu
1GD0BN5: ITPUI:ALL - Set focus to container name (when empty) in folder
wizard
1GCT3F5: ITPUI:WINNT - Poor details when moving fails
1GCROF1: ITPUI:WINNT - Wizard banner misalignment
The following PRs were closed with no action by the UI team (includes PRs from builds 202 - 206):
Bug 5403
NPE on closing embedded netscape
Bug 5259
EC: Project delete removes files on disk even when "no" selected
Bug 2791
[UI] EC - SaveAll does not work right (1GJJG1M)
Bug 2294
Fast View can be resized only once (1GELX93)
Bug 2293
NPE during build (1GELWYX)
Bug 2204
Opening PDF files. (1GEAHMI)
Bug 2061
Usability: "Close All" is rude (1GDY6HE)
Bug 1914
F2 should invoke rename? (1GC2UNE)
1GFDB1N: ITPUI:WINNT - DCR: Print from default text editor
1GEYEH3: ITPUI:WIN2000 - Copy shortcut not responding in Navigator
on startup
1GEV2DL: ITPUI:ALL - Open Persp modifier keys different on win32 &
linux
1GEUWWH: ITPUI:WIN2000 - Welcome: too tied to CVS?
1GEUW7K: ITPUI:WIN2000 - Welcome: Creating Java project does not show
Java perspective
1GETC1F: ITPUI:ALL - View left stranded in folder
1GET01H: ITPUI:ALL - Why is the welcome page an editor?
1GEJN27: ITPJUI:WINNT - new project wizard should have selected "All
Projects" if you open it
1GEI1GR: ITPJUI:WINNT - button in import wizzard should not be enabled
before selecting a destination project/folder
1GEAOJK: ITPUI:WIN98 - Shift-select doesn't always work in Navigator
1GEAMVM: ITPUI:WIN98 - Wrong view shown when tab order changes
1GEAD4H: ITPUI:ALL - Text font should be set on one preference page
1GDIP42: ITPJUI:WINNT - Smoke 105: Finish isn't default in Create Project
wizard
1GD0BXF: ITPUI:ALL - File save as dialog banner area empty
1FW3H9W: ITPUI:ALL - ExternalEditor::open may fail if path includes
spaces
1GK7H21: ITPUI:WIN2000 - Default text editor comes up black
1GK0388: ITPJCORE:WIN2000 - replace with local history: selecting (workspace)
deletes source
1GIV495: ITPUI:ALL - TextMergeViewer doesn't reveal token diffs horizontally
1GIUS6L: ITPUI:ALL - TextMergeViewer uses deprecated Thread.stop()
1GIIBHM: ITPUI:WIN2000 - Problems when comparing zip files
1GI5DN9: ITPUI:WIN2000 - Conflicting token deletions don't show up
in text compare viewer
1GI3KUR: ITPJUI:WIN2000 - Compare: double-click in versions list closes
view
1GHBPA1: ITPVCM:WINNT - Compare - next change arrow switches to wrong
file
1GGZ8DO: ITPJUI:WIN - MergeViewer invalid selection range
1GGQQH3: ITPJUI:WINNT - Compare hightlights a non-change instead of
the change
1GGNX9W: ITPVCM:Linux - Internal error comparing out of sync resource
1GGNKHN: ITPJUI:ALL - No progress during replace with local history
1GG0ELM: ITPVCM:ALL - Local history displayed some of Today's items
as Yesterday
1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system
appear as empty
1GFFR4B: ITPUI:WIN98 - local history is misleading
1GEUX0D: ITPJUI:ALL - not state aware toolbar button in compare
1GBM0IL: ITPUI:WINNT - CompareEditorInput#save should throw CoreException