Interface EditPartViewer
-
- All Superinterfaces:
ISelectionProvider
- All Known Subinterfaces:
GraphicalViewer
- All Known Implementing Classes:
AbstractEditPartViewer
,GraphicalViewerImpl
,PaletteViewer
,ScrollingGraphicalViewer
,TreeViewer
public interface EditPartViewer extends ISelectionProvider
An adapter on an SWTControl
that manages theEditParts
. The viewer is responsible for the editpart lifecycle. Editparts have visuals, such asTreeItems
orFigures
, which are hosted by the viewer and its control. The viewer provides targeting of editparts via their visuals.A viewer is a
ISelectionProvider
. It maintains a list of selected editparts. The last member of this list is the primary member of the selection. The list should never be empty; when no editparts are selected, the viewer's contents editpart is used.A viewer is populated by setting its contents. This can be done by passing the model corresponding to the contents. The viewer's
EditPartFactory
is then used to create the contents editpart, and add it to the root editpart. Alternatively, the contents editpart itself can be provided. Once the contents editpart is parented, it will populate the rest of the viewer by calling itsEditPart.refresh()
method.The Root editpart does not correspond to anything in the model, it is used to bootstrap the viewer, and to parent the contents. Depending on the type of viewer being used, it may be common to replace the root editpart. See implementations of
RootEditPart
.An editpart's lifecycle is managed by the viewer. When the Viewer is realized, meaning it has an SWT
Control
, it activates its root, which in turn activates all editparts. Editparts are deactivated when they are removed from the viewer. When the viewer's control is disposed, all editparts are similarly deactivated by decativating the root.A Viewer has an arbitrary collection of keyed properties that can be set and queried. A value of
null
is used to remove a key from the property map. A viewer will fire property change notification whenever these values are updated.WARNING: This interface is not intended to be implemented. Clients should extend
AbstractEditPartViewer
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
EditPartViewer.Conditional
An object which evaluates an EditPart for an arbitrary property.
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addDragSourceListener(TransferDragSourceListener listener)
Provided for compatibility with existing code.void
addDragSourceListener(TransferDragSourceListener listener)
Adds aTransferDragSourceListener
to this viewer.void
addDropTargetListener(TransferDropTargetListener listener)
Provided for compatibility with existing code.void
addDropTargetListener(TransferDropTargetListener listener)
Adds aTransferDropTargetListener
to this viewer.void
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Adds a listener to be notified of viewer property changes.void
appendSelection(EditPart editpart)
Appends the specifiedEditPart
to the viewer's selection.Control
createControl(Composite composite)
Optionally creates the defaultControl
using the default style.void
deselect(EditPart editpart)
Removes the specifiedEditPart
from the current selection.void
deselectAll()
Deselects all EditParts.EditPart
findObjectAt(org.eclipse.draw2d.geometry.Point location)
Returnsnull
or theEditPart
associated with the specified location.EditPart
findObjectAtExcluding(org.eclipse.draw2d.geometry.Point location, java.util.Collection exclusionSet)
Returnsnull
or theEditPart
at the specified location, excluding the specified set.EditPart
findObjectAtExcluding(org.eclipse.draw2d.geometry.Point location, java.util.Collection exclusionSet, EditPartViewer.Conditional conditional)
Returnsnull
or theEditPart
at the specified location, using the given exclusion set and conditional.void
flush()
Flushes all pending updates to the Viewer.EditPart
getContents()
Returns the contents of this Viewer.MenuManager
getContextMenu()
Returnsnull
or the MenuManager for this viewer.Control
getControl()
Returnsnull
or the SWTControl
for this viewer.EditDomain
getEditDomain()
Returns theEditDomain
to which this viewer belongs.EditPartFactory
getEditPartFactory()
Returns theEditPartFactory
for this viewer.java.util.Map
getEditPartRegistry()
Returns theMap
for registeringEditParts
by Keys.EditPart
getFocusEditPart()
Returns the focusEditPart
.KeyHandler
getKeyHandler()
Returns theKeyHandler
for this viewer.java.lang.Object
getProperty(java.lang.String key)
Returns the value of the given property.ResourceManager
getResourceManager()
Returnsnull
, or the ResourceManager for this Viewer.RootEditPart
getRootEditPart()
Returns theRootEditPart
.java.util.List
getSelectedEditParts()
Returns an unmodifiableList
containing zero or more selected editparts.ISelection
getSelection()
This method is inherited fromISelectionProvider
.SelectionManager
getSelectionManager()
Returns the viewer's selection manager.java.util.Map
getVisualPartMap()
Returns theMap
for associating visual parts with theirEditParts
.void
registerAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes.void
removeDragSourceListener(TransferDragSourceListener listener)
Deprecated.void
removeDragSourceListener(TransferDragSourceListener listener)
Removes the specified drag source listener.void
removeDropTargetListener(TransferDropTargetListener listener)
Deprecated.void
removeDropTargetListener(TransferDropTargetListener listener)
Removes the specified drop target listener.void
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
removes the first instance of the specified property listener.void
reveal(EditPart editpart)
Reveals the given EditPart if it is not visible.void
select(EditPart editpart)
Replaces the current selection with the specifiedEditPart
.void
setContents(java.lang.Object contents)
Creates anEditPart
for the provided model object using theEditPartFactory
.void
setContents(EditPart editpart)
Sets the contents for this Viewer.void
setContextMenu(MenuManager contextMenu)
Sets the contextMenuManager
for this viewer.void
setControl(Control control)
Sets theControl
for this viewer.void
setCursor(Cursor cursor)
Sets the cursor for the viewer'sControl
.void
setEditDomain(EditDomain domain)
Sets theEditDomain
for this viewer.void
setEditPartFactory(EditPartFactory factory)
Sets the EditPartFactory.void
setFocus(EditPart focus)
Sets the focus EditPart.void
setKeyHandler(KeyHandler keyHandler)
Sets theKeyHandler
.void
setProperty(java.lang.String propertyName, java.lang.Object value)
Sets a property on this viewer.void
setRootEditPart(RootEditPart root)
Sets the root of this viewer.void
setRouteEventsToEditDomain(boolean value)
Turns on/off the routing of events directly to the Editor.void
setSelectionManager(SelectionManager manager)
Sets the selection manager for this viewer.void
unregisterAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes.-
Methods inherited from interface org.eclipse.jface.viewers.ISelectionProvider
addSelectionChangedListener, removeSelectionChangedListener, setSelection
-
-
-
-
Method Detail
-
addDragSourceListener
void addDragSourceListener(TransferDragSourceListener listener)
Provided for compatibility with existing code.- Parameters:
listener
- a drag source listener- See Also:
addDragSourceListener(TransferDragSourceListener)
-
addDragSourceListener
void addDragSourceListener(TransferDragSourceListener listener)
Adds aTransferDragSourceListener
to this viewer. This has the side-effect of creating aDragSource
on the viewer's Control. A Control can only have a single DragSource. Clients must not create their own DragSource when using this method.- Parameters:
listener
- the listener
-
addDropTargetListener
void addDropTargetListener(TransferDropTargetListener listener)
Provided for compatibility with existing code.- Parameters:
listener
- the listener- See Also:
addDropTargetListener(TransferDropTargetListener)
-
addDropTargetListener
void addDropTargetListener(TransferDropTargetListener listener)
Adds aTransferDropTargetListener
to this viewer. This has the side-effect of creating aDropTarget
on the viewer's Control. A Control can only have a single DropTarget. Clients must not create their own DropTarget when using this method.- Parameters:
listener
- the listener
-
addPropertyChangeListener
void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Adds a listener to be notified of viewer property changes.- Parameters:
listener
- the listener
-
appendSelection
void appendSelection(EditPart editpart)
Appends the specifiedEditPart
to the viewer's selection. The EditPart becomes the new primary selection. Fires selection changed to allISelectionChangedListener
s.- Parameters:
editpart
- the EditPart to append
-
createControl
Control createControl(Composite composite)
Optionally creates the defaultControl
using the default style. The Control can also be created externally and then set into the Viewer.- Parameters:
composite
- the parent in which create the SWTControl
- Returns:
- the created Control for convenience
- See Also:
setControl(Control)
-
deselect
void deselect(EditPart editpart)
Removes the specifiedEditPart
from the current selection. If the selection becomes empty, the viewer'scontents
becomes the current selected part. The last EditPart in the new selection is madeprimary
.Fires selection changed to
ISelectionChangedListener
s.- Parameters:
editpart
- theEditPart
to deselect
-
deselectAll
void deselectAll()
Deselects all EditParts. The viewer'scontents
becomes the current selection. Fires selection changed toISelectionChangedListener
s.
-
findObjectAt
EditPart findObjectAt(org.eclipse.draw2d.geometry.Point location)
Returnsnull
or theEditPart
associated with the specified location. The location is relative to the client area of the Viewer'sControl
. An EditPart is not directly visible. It is targeted using its visual part which it registered using thevisual part map
. What constitutes a visual part is viewer-specific. Examples include Figures and TreeItems.- Parameters:
location
- The location- Returns:
null
or an EditPart
-
findObjectAtExcluding
EditPart findObjectAtExcluding(org.eclipse.draw2d.geometry.Point location, java.util.Collection exclusionSet)
Returnsnull
or theEditPart
at the specified location, excluding the specified set. This method behaves similarly tofindObjectAt(Point)
.- Parameters:
location
- The mouse locationexclusionSet
- The set of EditParts to be excluded- Returns:
null
or an EditPart
-
findObjectAtExcluding
EditPart findObjectAtExcluding(org.eclipse.draw2d.geometry.Point location, java.util.Collection exclusionSet, EditPartViewer.Conditional conditional)
Returnsnull
or theEditPart
at the specified location, using the given exclusion set and conditional. This method behaves similarly tofindObjectAt(Point)
.- Parameters:
location
- The mouse locationexclusionSet
- The set of EditParts to be excludedconditional
- the Conditional used to evaluate a potential hit- Returns:
null
or an EditPart
-
flush
void flush()
Flushes all pending updates to the Viewer.
-
getContents
EditPart getContents()
Returns the contents of this Viewer. The contents is the EditPart associated with the top-level model object. It is considered to be "The Diagram". If the user has nothing selected, the contents is implicitly the selected object.The Root of the Viewer is different. By constrast, the root is never selected or targeted, and does not correspond to something in the model.
- Returns:
- the contents
EditPart
- See Also:
getRootEditPart()
-
getContextMenu
MenuManager getContextMenu()
Returnsnull
or the MenuManager for this viewer. The menu manager is set usingsetContextMenu(MenuManager)
.- Returns:
null
or a MenuManager
-
getControl
Control getControl()
Returnsnull
or the SWTControl
for this viewer. The control is either set explicitly or can be created by the viewer.- Returns:
- the SWT
Control
- See Also:
setControl(Control)
,createControl(Composite)
-
getEditDomain
EditDomain getEditDomain()
Returns theEditDomain
to which this viewer belongs.- Returns:
- the viewer's EditDomain
-
getEditPartFactory
EditPartFactory getEditPartFactory()
Returns theEditPartFactory
for this viewer. The EditPartFactory is used to create the contents EditPart whensetContents(Object)
is called. It is made available so that other EditParts can use it to create their children or connection editparts.- Returns:
- EditPartFactory
-
getEditPartRegistry
java.util.Map getEditPartRegistry()
Returns theMap
for registeringEditParts
by Keys. EditParts may register themselves using any method, and may register themselves with multiple keys. The purpose of such registration is to allow an EditPart to be found by other EditParts, or by listeners of domain notifiers. By default, EditParts are registered by their model.Some models use a "domain" notification system, in which all changes are dispatched to a single listener. Such a listener might use this map to lookup editparts for a given model, and then ask the editpart to update.
- Returns:
- the registry map
-
getFocusEditPart
EditPart getFocusEditPart()
Returns the focusEditPart
. Focus refers to keyboard focus. This is the same concept as focus in a native Tree or Table. The User can change focus using the keyboard without affecting the currently selected objects. Never returnsnull
.- Returns:
- the focus
EditPart
-
getKeyHandler
KeyHandler getKeyHandler()
Returns theKeyHandler
for this viewer. The KeyHandler is sent KeyEvents by the currently activeTool
. This is important, because only the current tool knows if it is in a state in which keys should be ignored, such as during a drag. By default, only theSelectionTool
forwards keysrokes. It does not do so during a drag.- Returns:
null
or a KeyHandler
-
getProperty
java.lang.Object getProperty(java.lang.String key)
Returns the value of the given property. Returnsnull
if the property has not been set, or has been set to null.- Parameters:
key
- the property's key- Returns:
- the given properties value or
null
.
-
getResourceManager
ResourceManager getResourceManager()
Returnsnull
, or the ResourceManager for this Viewer. Once a viewer has a Control, clients may access the viewer's resource manager. Any resources constructed using this manager, but not freed, will be freed when the viewer's control is disposed. This does not mean that clients should be lazy about deallocating resources. If a resource is no longer needed but the viewer is still in use, the client must deallocate the resource.Typical usage is by EditParts contained inside the viewer. EditParts which are removed from the viewer should free their resources during
EditPart.removeNotify()
. When the viewer is disposed,removeNotify()
is not called, but the viewer's resource manager will be disposed anyway.The viewer's default resource manager is linked to JFace's
global shared resources
.- Returns:
- the ResourceManager associated with this viewer
- Since:
- 3.3
-
getRootEditPart
RootEditPart getRootEditPart()
Returns theRootEditPart
. The RootEditPart is a special EditPart that serves as the parent to the contents editpart. The root is never selected. The root does not correspond to anything in the model. The User does not interact with the root.The RootEditPart has a single child: the
contents
.By defining the concept of "root", GEF allows the application's "real" EditParts to be more homogeneous. For example, all non-root EditParts have a parent. Also, it allows applications to change the type of root being used without affecting their own editpart implementation hierarchy.
- Returns:
- the RootEditPart
- See Also:
getContents()
,setRootEditPart(RootEditPart)
-
getSelectedEditParts
java.util.List getSelectedEditParts()
Returns an unmodifiableList
containing zero or more selected editparts. This list may be empty. In contrast, the inherited methodISelectionProvider.getSelection()
should not return an empty selection. When no editparts are selected, generally the contents editpart is considered to be selected. This list can be modified indirectly by calling other methods on the viewer.- Returns:
- a list containing zero or more editparts
-
getSelection
ISelection getSelection()
This method is inherited fromISelectionProvider
. This method should return aStructuredSelection
containing one or more of the viewer's EditParts. If no editparts are selected, thecontents
editpart is returned.- Specified by:
getSelection
in interfaceISelectionProvider
- See Also:
ISelectionProvider.getSelection()
-
getSelectionManager
SelectionManager getSelectionManager()
Returns the viewer's selection manager. The selection manager has complete control over the viewer's representation of selection. It provides theISelection
for the viewer, and manages all changes to the current selection.- Returns:
- the selection manager
- Since:
- 3.2
-
getVisualPartMap
java.util.Map getVisualPartMap()
Returns theMap
for associating visual parts with theirEditParts
. This map is used for hit-testing. Hit testing is performed by first determining which visual part is hit, and then mapping that part to anEditPart
. What consistutes a visual part is viewer-specific. Examples includeFigures
andTreeItems
.- Returns:
- the visual part map
-
registerAccessibleEditPart
void registerAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes.- Parameters:
acc
- the AccessibleEditPart
-
removeDragSourceListener
void removeDragSourceListener(TransferDragSourceListener listener)
Deprecated.Removes the specified drag source listener. If all listeners are removed, the DragSource that was created will be disposed.- Parameters:
listener
- the listener- See Also:
addDragSourceListener(TransferDragSourceListener)
-
removeDragSourceListener
void removeDragSourceListener(TransferDragSourceListener listener)
Removes the specified drag source listener. If all listeners are removed, the DragSource that was created will be disposed.- Parameters:
listener
- the listener- See Also:
addDragSourceListener(TransferDragSourceListener)
-
removeDropTargetListener
void removeDropTargetListener(TransferDropTargetListener listener)
Deprecated.Removes the specified drop target listener. If all listeners are removed, the DropTarget that was created will be disposed.- Parameters:
listener
-- See Also:
addDropTargetListener(TransferDropTargetListener)
-
removeDropTargetListener
void removeDropTargetListener(TransferDropTargetListener listener)
Removes the specified drop target listener. If all listeners are removed, the DropTarget that was created will be disposed.- Parameters:
listener
- the listener- See Also:
addDropTargetListener(TransferDropTargetListener)
-
removePropertyChangeListener
void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
removes the first instance of the specified property listener.- Parameters:
listener
- the listener to remove
-
reveal
void reveal(EditPart editpart)
Reveals the given EditPart if it is not visible.- Parameters:
editpart
- the EditPart to reveal
-
select
void select(EditPart editpart)
Replaces the current selection with the specifiedEditPart
. That part becomes the primary selection. Fires selection changed toISelectionChangedListener
s.- Parameters:
editpart
- the new selection
-
setContents
void setContents(EditPart editpart)
Sets the contents for this Viewer. The contents can also be set usingsetContents(Object)
.- Parameters:
editpart
- the contents- See Also:
getRootEditPart()
-
setContents
void setContents(java.lang.Object contents)
Creates anEditPart
for the provided model object using theEditPartFactory
. That EditPart is then added to theRootEditPart
, and becomes the viewer's contents editpart.- Parameters:
contents
- the contents model object
-
setContextMenu
void setContextMenu(MenuManager contextMenu)
Sets the contextMenuManager
for this viewer. The MenuManager will be asked to create a Menu, which will be used as the context menu for this viewer's Control.- Parameters:
contextMenu
- theContextMenuProvider
-
setControl
void setControl(Control control)
Sets theControl
for this viewer. The viewer's control is also set automatically ifcreateControl(Composite)
is called.- Parameters:
control
- the Control
-
setCursor
void setCursor(Cursor cursor)
Sets the cursor for the viewer'sControl
. This method should only be called byTools
.null
can be used to indicate that the default cursor should be restored.- Parameters:
cursor
-null
or a Cursor- See Also:
getControl()
-
setEditDomain
void setEditDomain(EditDomain domain)
Sets theEditDomain
for this viewer. The Viewer will route all mouse and keyboard events to the EditDomain.- Parameters:
domain
- The EditDomain
-
setEditPartFactory
void setEditPartFactory(EditPartFactory factory)
Sets the EditPartFactory.- Parameters:
factory
- the factory- See Also:
getEditPartFactory()
-
setFocus
void setFocus(EditPart focus)
Sets the focus EditPart.- Parameters:
focus
- the FocusPart.- See Also:
getFocusEditPart()
-
setKeyHandler
void setKeyHandler(KeyHandler keyHandler)
Sets theKeyHandler
.- Parameters:
keyHandler
- the KeyHandler- See Also:
getKeyHandler()
-
setProperty
void setProperty(java.lang.String propertyName, java.lang.Object value)
Sets a property on this viewer. A viewer property is an arbitrary key-value pair that can be observed viaaddPropertyChangeListener(PropertyChangeListener)
. Anull
value will remove the property from the viewer.- Parameters:
propertyName
- a unique string identifying the propertyvalue
- the properties new value ornull
to remove- Since:
- 3.0
-
setRootEditPart
void setRootEditPart(RootEditPart root)
Sets the root of this viewer. The root should not be confused with the contents.- Parameters:
root
- the RootEditPart- See Also:
getRootEditPart()
,getContents()
-
setRouteEventsToEditDomain
void setRouteEventsToEditDomain(boolean value)
Turns on/off the routing of events directly to the Editor. If supported by the viewer implementation, all Events should be routed to theEditDomain
rather than handled in the default way.- Parameters:
value
- true if the viewer should route events to the EditDomain
-
setSelectionManager
void setSelectionManager(SelectionManager manager)
Sets the selection manager for this viewer.- Parameters:
manager
- the new selection manager- Since:
- 3.2
-
unregisterAccessibleEditPart
void unregisterAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes.- Parameters:
acc
- the accessible part
-
-