org.eclipse.ui.navigator
Class CommonNavigator
java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.ui.part.WorkbenchPart
org.eclipse.ui.part.ViewPart
org.eclipse.ui.navigator.CommonNavigator
-
All Implemented Interfaces:
-
IAdaptable,
IExecutableExtension,
IPersistable,
ISaveablePart,
ISaveablesSource,
IViewPart,
IWorkbenchPart,
IWorkbenchPart2,
IWorkbenchPart3,
ISetSelectionTarget,
IShowInTarget,
IWorkbenchPartOrientation
-
Direct Known Subclasses:
-
ProjectExplorer
-
public class CommonNavigator
- extends
ViewPart
- implements
ISetSelectionTarget,
ISaveablePart,
ISaveablesSource,
IShowInTarget
This class provides the IViewPart for the Common Navigator framework in the
Eclipse workbench. This class also serves as the backbone for navigational
viewers. The following types are used by this class to render the Common
Navigator:
-
CommonViewer
: The viewer that renders the
extensible tree. Creates and manages the lifecycle of the Navigator Content
Service (described below).
-
NavigatorActionService
: Manages instances
of
CommonActionProvider
s provided by
individual extensions and content extensions.
-
INavigatorContentService
: Manages instances
of Navigator Content Extensions. Instances are created as needed, and
disposed of upon the disposal of the Navigator Content Service.
Clients are not expected to subclass CommonNavigator. Clients that wish to
define their own custom extensible navigator view need to specify an instance
of the org.eclipse.ui.views extension point:
<extension
point="org.eclipse.ui.views">
<view
name="My Custom View"
icon="relative/path/to/icon.gif"
category="org.acme.mycategory"
class="org.eclipse.ui.navigator.CommonNavigator"
id="org.acme.MyCustomNavigatorID">
</view>
</extension>
Clients that wish to extend the view menu provided via the
org.eclipse.ui.popupMenus extension may specify the the
popupMenuId
specified by
org.eclipse.ui.navigator.viewer (or a nested
popupMenu element) of their target viewer
as their target menu id.
This class may be instantiated or subclassed
-
Since:
- 3.2
Methods inherited from class org.eclipse.ui.part.
WorkbenchPart
|
addPartPropertyListener,
addPropertyListener,
firePartPropertyChanged,
firePropertyChange,
getConfigurationElement,
getContentDescription,
getDefaultImage,
getOrientation,
getPartName,
getPartProperties,
getPartProperty,
getSite,
getTitle,
getTitleImage,
getTitleToolTip,
removePartPropertyListener,
removePropertyListener,
setPartProperty,
setSite,
setTitle,
setTitleImage,
setTitleToolTip,
showBusy
|
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
IS_LINKING_ENABLED_PROPERTY
public static final int IS_LINKING_ENABLED_PROPERTY
-
Used to track changes to the
isLinkingEnabled
property.
Make sure this does not conflict with anything in IWorkbenchPartConstants.
-
See Also:
-
Constant Field Values
memento
protected
IMemento memento
- To allow
createCommonViewer(Composite)
to be subclassed
-
Since:
- 3.4
CommonNavigator
public CommonNavigator()
createPartControl
public void createPartControl(
Composite aParent)
-
Create the CommonViewer part control and setup the default providers as
necessary.
-
-
Specified by:
-
createPartControl
in interface
IWorkbenchPart
-
Specified by:
-
createPartControl
in class
WorkbenchPart
-
-
Parameters:
-
aParent
- the parent control -
See Also:
-
WorkbenchPart.createPartControl(org.eclipse.swt.widgets.Composite)
updateTitle
public void updateTitle()
-
Updates the title text and title tool tip. Called whenever the input of
the viewer changes.
-
-
-
Since:
- 3.4
getFrameToolTipText
public
String getFrameToolTipText(
Object anElement)
-
Returns the tool tip text for the given element. Used as the tool tip
text for the current frame, and for the view title tooltip.
-
-
-
Parameters:
-
anElement
-
-
Returns:
- the tool tip text
-
Since:
- 3.4
dispose
public void dispose()
-
Note: This method is for internal use only. Clients should not call this
method.
This method will be invoked when the DisposeListener is notified of the
disposal of the Eclipse view part.
-
-
Specified by:
-
dispose
in interface
IWorkbenchPart
-
Overrides:
-
dispose
in class
WorkbenchPart
-
-
See Also:
-
WorkbenchPart.dispose()
init
public void init(
IViewSite aSite,
IMemento aMemento)
throws
PartInitException
-
Note: This method is for internal use only. Clients should not call this
method.
-
-
Specified by:
-
init
in interface
IViewPart
-
Overrides:
-
init
in class
ViewPart
-
-
Parameters:
-
aSite
- the view site -
aMemento
- the IViewPart state or null if there is no previous saved state
-
Throws:
-
PartInitException
- if this view was not initialized successfully -
See Also:
-
ViewPart.init(org.eclipse.ui.IViewSite, org.eclipse.ui.IMemento)
saveState
public void saveState(
IMemento aMemento)
-
Note: This method is for internal use only. Clients should not call this
method.
-
-
Specified by:
-
saveState
in interface
IPersistable
-
Specified by:
-
saveState
in interface
IViewPart
-
Overrides:
-
saveState
in class
ViewPart
-
-
Parameters:
-
aMemento
- a memento to receive the object state -
See Also:
-
ViewPart.saveState(org.eclipse.ui.IMemento)
setFocus
public void setFocus()
-
Force the workbench to focus on the Common Navigator tree.
-
-
Specified by:
-
setFocus
in interface
IWorkbenchPart
-
Specified by:
-
setFocus
in class
WorkbenchPart
-
-
See Also:
-
WorkbenchPart.setFocus()
selectReveal
public void selectReveal(
ISelection selection)
-
Set the selection to the Common Navigator tree, and expand nodes if
necessary. Use caution when invoking this method as it can cause
Navigator Content Extensions to load, thus causing plugin activation.
-
-
Specified by:
-
selectReveal
in interface
ISetSelectionTarget
-
-
Parameters:
-
selection
- the new element to select -
See Also:
-
ISetSelectionTarget.selectReveal(org.eclipse.jface.viewers.ISelection)
setLinkingEnabled
public final void setLinkingEnabled(boolean toEnableLinking)
-
Linking is handled by an action which listens for
changes to the
IS_LINKING_ENABLED_PROPERTY
.
Custom implementations that wish to override this functionality, need to
override the action used by the default ActionGroup and listen for
changes to the above property.
-
-
-
Parameters:
-
toEnableLinking
- True enables linking the current selection with open editors
isLinkingEnabled
public final boolean isLinkingEnabled()
-
-
-
Returns:
- Whether linking the current selection with open editors is
enabled.
getCommonViewer
public
CommonViewer getCommonViewer()
-
Provides access to the commonViewer used by the current CommonNavigator.
The field will not be valid until after
init(IViewSite, IMemento)
has been called by the
Workbench.
-
-
-
Returns:
- The (already created) instance of Common Viewer.
getNavigatorContentService
public
INavigatorContentService getNavigatorContentService()
-
-
-
Returns:
- The Navigator Content Service which populates this instance of
Common Navigator
getAdapter
public
Object getAdapter(
Class adapter)
- Returns an object which is an instance of the given class
associated with this object. Returns
null
if
no such object can be found.
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
WorkbenchPart
-
-
Parameters:
-
adapter
- the adapter class to look up
-
Returns:
- a object castable to the given class,
or
null
if this object does not
have an adapter for the given class
getNavigatorActionService
public
NavigatorActionService getNavigatorActionService()
-
-
-
Returns:
- The Navigator Content Service which populates this instance of
Common Navigator
createCommonViewer
protected
CommonViewer createCommonViewer(
Composite aParent)
- Creates and initializes an instance of
CommonViewer
. The ID of
the Eclipse view part will be used to create the viewer. The ID is
important as some extensions indicate they should only be used with a
particular viewer ID.
-
-
-
Parameters:
-
aParent
- A composite parent to contain the Common Viewer
-
Returns:
- An initialized instance of CommonViewer
createCommonViewerObject
protected
CommonViewer createCommonViewerObject(
Composite aParent)
- Constructs and returns an instance of
CommonViewer
. The ID of
the Eclipse view part will be used to create the viewer.
Override this method if you want a subclass of the CommonViewer
-
-
-
Parameters:
-
aParent
- A composite parent to contain the CommonViewer
-
Returns:
- An instance of CommonViewer
-
Since:
- 3.4
initListeners
protected void initListeners(
TreeViewer viewer)
-
Adds the listeners to the Common Viewer.
-
-
-
Parameters:
-
viewer
- The viewer -
Since:
- 2.0
handleDoubleClick
protected void handleDoubleClick(
DoubleClickEvent anEvent)
-
Note: This method is for internal use only. Clients should not call this
method.
-
-
-
Parameters:
-
anEvent
- Supplied by the DoubleClick listener.
createCommonManager
protected
CommonNavigatorManager createCommonManager()
-
The Common Navigator Manager handles the setup of the Common Navigator
Menu, manages updates to the ActionBars from
CommonActionProvider
extensions as the user's selection
changes, and also updates the status bar based on the current selection.
-
-
-
Returns:
- The Common Navigator Manager class which handles menu population
and ActionBars
-
Since:
- 3.4
createCommonActionGroup
protected
ActionGroup createCommonActionGroup()
-
The ActionGroup is used to populate the ActionBars of Common Navigator
View Part, and the returned implementation will have an opportunity to
fill the ActionBars of the view as soon as it is created. (
ActionGroup.fillActionBars(org.eclipse.ui.IActionBars)
.
The default implementation returns an action group which will add the
following actions:
-
Link with editor support. Allows the user to toggling linking the current
selection with the active editors.
-
Collapse all. Collapses all expanded nodes.
-
Select Filters. Provides access to the "Select Filters" dialog that
allows users to enable/disable filters and also the Content Extension
activations.
-
-
-
Returns:
- The Action Group to be associated with the Common Navigator View
Part.
getInitialInput
protected
Object getInitialInput()
- Used to provide the initial input for the
CommonViewer
. By default
getSite().getPage().getInput() is used. Subclass this to return your desired
input.
-
-
-
Returns:
- The initial input for the viewer. Defaults to
getSite().getPage().getInput()
-
Since:
- 3.4
getSaveables
public
Saveable[] getSaveables()
-
Description copied from interface:
ISaveablesSource
- Returns the saveables presented by the workbench part. If the return
value of this method changes during the lifetime of
this part (i.e. after initialization and control creation but before disposal)
the part must notify an implicit listener using
ISaveablesLifecycleListener.handleLifecycleEvent(SaveablesLifecycleEvent)
.
Additions of saveables to the list of saveables of this part are
announced using an event of type
SaveablesLifecycleEvent.POST_OPEN
. Removals are announced in a
two-stage process, first using an event of type
SaveablesLifecycleEvent.PRE_CLOSE
followed by an event of type
SaveablesLifecycleEvent.POST_CLOSE
. Since firing the
PRE_CLOSE
event may trigger prompts to save dirty
saveables, the cancellation status of the event must be checked by the
part after the notification. When removing only non-dirty saveables,
POST_CLOSE
notification is sufficient.
The listener is obtained from the part site by calling
partSite.getService(ISaveablesLifecycleListener.class)
.
The part must not notify from its initialization methods (e.g. init
or createPartControl
), or from its dispose method. Parts that
implement
IReusableEditor
must notify when their input is changed
through
IReusableEditor.setInput(IEditorInput)
.
-
-
Specified by:
-
getSaveables
in interface
ISaveablesSource
-
-
Returns:
- the saveables presented by the workbench part
-
See Also:
-
ISaveablesLifecycleListener
getActiveSaveables
public
Saveable[] getActiveSaveables()
-
Description copied from interface:
ISaveablesSource
- Returns the saveables currently active in the workbench part.
Certain workbench actions, such as Save, target only the active saveables
in the active part. For example, the active saveables could be determined
based on the current selection in the part.
-
-
Specified by:
-
getActiveSaveables
in interface
ISaveablesSource
-
-
Returns:
- the saveables currently active in the workbench part
doSave
public void doSave(
IProgressMonitor monitor)
-
Description copied from interface:
ISaveablePart
- Saves the contents of this part.
If the save is successful, the part should fire a property changed event
reflecting the new dirty state (PROP_DIRTY
property).
If the save is cancelled through user action, or for any other reason, the
part should invoke setCancelled
on the IProgressMonitor
to inform the caller.
This method is long-running; progress and cancellation are provided
by the given progress monitor.
-
-
Specified by:
-
doSave
in interface
ISaveablePart
-
-
Parameters:
-
monitor
- the progress monitor
doSaveAs
public void doSaveAs()
-
Description copied from interface:
ISaveablePart
- Saves the contents of this part to another object.
Implementors are expected to open a "Save As" dialog where the user will
be able to select a new name for the contents. After the selection is made,
the contents should be saved to that new name. During this operation a
IProgressMonitor
should be used to indicate progress.
If the save is successful, the part fires a property changed event
reflecting the new dirty state (PROP_DIRTY
property).
-
-
Specified by:
-
doSaveAs
in interface
ISaveablePart
-
isDirty
public boolean isDirty()
-
Description copied from interface:
ISaveablePart
- Returns whether the contents of this part have changed since the last save
operation. If this value changes the part must fire a property listener
event with
PROP_DIRTY
.
Note: this method is called often on a part open or part
activation switch, for example by actions to determine their
enabled status.
-
-
Specified by:
-
isDirty
in interface
ISaveablePart
-
-
Returns:
-
true
if the contents have been modified and need
saving, and false
if they have not changed since the last
save
isSaveAsAllowed
public boolean isSaveAsAllowed()
-
Description copied from interface:
ISaveablePart
- Returns whether the "Save As" operation is supported by this part.
-
-
Specified by:
-
isSaveAsAllowed
in interface
ISaveablePart
-
-
Returns:
-
true
if "Save As" is supported, and false
if not supported
isSaveOnCloseNeeded
public boolean isSaveOnCloseNeeded()
-
Description copied from interface:
ISaveablePart
- Returns whether the contents of this part should be saved when the part
is closed.
-
-
Specified by:
-
isSaveOnCloseNeeded
in interface
ISaveablePart
-
-
Returns:
-
true
if the contents of the part should be saved on
close, and false
if the contents are expendable
show
public boolean show(
ShowInContext context)
-
Description copied from interface:
IShowInTarget
- Shows the given context in this target.
The target should check the context's selection for elements
to show. If there are no relevant elements in the selection,
then it should check the context's input.
-
-
Specified by:
-
show
in interface
IShowInTarget
-
-
Parameters:
-
context
- the context to show
-
Returns:
-
true
if the context could be shown,
false
otherwise
getLinkHelperService
protected
LinkHelperService getLinkHelperService()
-
-
-
Since:
- 3.4
getMemento
protected
IMemento getMemento()
-
-
-
Since:
- 3.4
setRootMode
public void setRootMode(int mode)
-
-
-
Parameters:
-
mode
- -
Since:
- 3.4
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
getRootMode
public int getRootMode()
-
-
-
Returns:
- the root mode
-
Since:
- 3.4
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
setWorkingSetLabel
public void setWorkingSetLabel(
String label)
-
-
-
Parameters:
-
label
- -
Since:
- 3.4
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
getWorkingSetLabel
public
String getWorkingSetLabel()
-
-
-
Returns:
- the working set label
-
Since:
- 3.4
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.