|
Eclipse GEF 2.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
An adapter on an SWT Control
that manages the
EditParts
. The viewer is responsible for the editpart
lifecycle. Editparts have visuals, such as TreeItems
or
Figures
, 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 its EditPart.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.
Nested Class Summary | |
static interface |
EditPartViewer.Conditional
An object which evaluates an EditPart for an arbitrary property. |
Method Summary | |
void |
addDragSourceListener(TransferDragSourceListener listener)
Adds a TransferDragSourceListener to this viewer. |
void |
addDropTargetListener(TransferDropTargetListener listener)
Adds a TransferDropTargetListener to this viewer. |
void |
appendSelection(EditPart editpart)
Appends the specified EditPart to the viewer's selection. |
Control |
createControl(Composite composite)
Optionally creates the default Control using
the default style. |
void |
deselect(EditPart editpart)
Removes the specified EditPart from the current selection. |
void |
deselectAll()
Deselects all EditParts. |
EditPart |
findObjectAt(Point location)
Returns null or the EditPart associated with the specified
location. |
EditPart |
findObjectAtExcluding(Point location,
Collection exclusionSet)
Returns null or the EditPart at the specified location,
excluding the specified set. |
EditPart |
findObjectAtExcluding(Point location,
Collection exclusionSet,
EditPartViewer.Conditional conditional)
Returns null or the EditPart 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()
Returns null or the MenuManager for this viewer. |
Control |
getControl()
Returns the SWT Control for this viewer. |
EditDomain |
getEditDomain()
Returns the EditDomain to which this viewer belongs. |
EditPartFactory |
getEditPartFactory()
Returns the EditPartFactory for this viewer. |
Map |
getEditPartRegistry()
Returns the Map for registering EditParts by Keys.
|
EditPart |
getFocusEditPart()
Returns the focus EditPart . |
KeyHandler |
getKeyHandler()
Returns the KeyHandler for this viewer. |
RootEditPart |
getRootEditPart()
Returns the RootEditPart . |
List |
getSelectedEditParts()
Returns an unmodifiable List containing zero or more selected editparts.
|
Map |
getVisualPartMap()
Returns the Map for associating visual parts with their
EditParts . |
void |
registerAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes. |
void |
removeDragSourceListener(TransferDragSourceListener listener)
Removes the specified drag source listener. |
void |
removeDropTargetListener(TransferDropTargetListener listener)
Removes the specified drop target listener. |
void |
reveal(EditPart editpart)
Reveals the given EditPart if it is not visible. |
void |
select(EditPart editpart)
Replaces the current selection with the specified EditPart . |
void |
setContents(EditPart editpart)
Sets the contents for this Viewer. |
void |
setContents(Object contents)
Creates an EditPart for the provided model object using the
EditPartFactory . |
void |
setContextMenu(MenuManager contextMenu)
Sets the context MenuManager for this viewer. |
void |
setControl(Control control)
Optionally sets the Control for this viewer. |
void |
setCursor(Cursor cursor)
Sets the cursor for the viewer's Control . |
void |
setEditDomain(EditDomain domain)
Sets the EditDomain for this viewer. |
void |
setEditPartFactory(EditPartFactory factory)
Sets the EditPartFactory. |
void |
setFocus(EditPart focus)
Sets the focus EditPart. |
void |
setKeyHandler(KeyHandler keyHandler)
Sets the KeyHandler . |
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 |
unregisterAccessibleEditPart(AccessibleEditPart acc)
Used for accessibility purposes. |
Methods inherited from interface org.eclipse.jface.viewers.ISelectionProvider |
addSelectionChangedListener, getSelection, removeSelectionChangedListener, setSelection |
Method Detail |
public void addDragSourceListener(TransferDragSourceListener listener)
TransferDragSourceListener
to this viewer. This has the side-effect
of creating a DragSource
on the viewer's Control. A Control
can only have a single DragSource. Clients must not create their own DragSource when
using this method.
listener
- the listenerpublic void addDropTargetListener(TransferDropTargetListener listener)
TransferDropTargetListener
to this viewer. This has the side-effect
of creating a DropTarget
on the viewer's Control. A Control
can only have a single DropTarget. Clients must not create their own DropTarget when
using this method.
listener
- the listenerpublic void appendSelection(EditPart editpart)
EditPart
to the viewer's selection. The
EditPart becomes the new primary selection. Fires selection changed to allISelectionChangedListener
s.
editpart
- the EditPart to appendpublic Control createControl(Composite composite)
Control
using
the default style. The Control can also be created externally and then set into the
Viewer.
composite
- the parent in which create the SWT Control
setControl(Control)
public void deselect(EditPart editpart)
EditPart
from the current selection. If the
selection becomes empty, the viewer's contents
becomes the
current selected part. The last EditPart in the new selection is made primary
.
Fires selection changed to
ISelectionChangedListener
s.
editpart
- the EditPart
to deselectpublic void deselectAll()
contents
becomes the
current selection. Fires selection changed to
ISelectionChangedListener
s.
public EditPart findObjectAt(Point location)
null
or the EditPart
associated with the specified
location. The location is relative to the client area of the Viewer's
Control
. An EditPart is not directly visible. It is targeted using its
visual part which it registered using the visual part
map
. What constitutes a visual part is viewer-specific. Examples include
Figures and TreeItems.
location
- The location
null
or an EditPartpublic EditPart findObjectAtExcluding(Point location, Collection exclusionSet)
null
or the EditPart
at the specified location,
excluding the specified set. This method behaves similarly to findObjectAt(Point)
.
location
- The mouse locationexclusionSet
- The set of EditParts to be excluded
null
or an EditPartpublic EditPart findObjectAtExcluding(Point location, Collection exclusionSet, EditPartViewer.Conditional conditional)
null
or the EditPart
at the specified location,
using the given exclusion set and conditional. This method behaves similarly to findObjectAt(Point)
.
location
- The mouse locationexclusionSet
- The set of EditParts to be excludedconditional
- the Conditional used to evaluate a potential hit
null
or an EditPartpublic void flush()
public EditPart getContents()
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.
EditPart
getRootEditPart()
public MenuManager getContextMenu()
null
or the MenuManager
for this viewer. The menu
manager is set using setContextMenu(MenuManager)
.
null
or a MenuManagerpublic Control getControl()
Control
for this viewer. This method may return null if
the control has not yet been provided or created.
Control
setControl(Control)
,
createControl(Composite)
public EditDomain getEditDomain()
EditDomain
to which this viewer belongs.
public EditPartFactory getEditPartFactory()
EditPartFactory
for this viewer. The EditPartFactory is used
to create the contents EditPart when setContents(Object)
is called. It
is made available so that other EditParts can use it to create their children or
connection editparts.
public Map getEditPartRegistry()
Map
for registering EditParts
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.
public EditPart getFocusEditPart()
EditPart
. 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 returns
null
.
EditPart
public KeyHandler getKeyHandler()
KeyHandler
for this viewer. The KeyHandler is sent KeyEvents
by the currently active Tool
. 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 the SelectionTool
forwards keysrokes.
It does not do so during a drag.
null
or a KeyHandlerpublic RootEditPart getRootEditPart()
RootEditPart
. 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.
getContents()
,
setRootEditPart(RootEditPart)
public List getSelectedEditParts()
List
containing zero or more selected editparts.
This list may be empty. This list can be modified indirectly by calling other
methods on the viewer.
public Map getVisualPartMap()
Map
for associating visual parts with their
EditParts
. 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 an
EditPart
. What consistutes a visual part is viewer-specific.
Examples include Figures
and TreeItems
.
public void registerAccessibleEditPart(AccessibleEditPart acc)
acc
- the AccessibleEditPartpublic void removeDragSourceListener(TransferDragSourceListener listener)
listener
- the listeneraddDragSourceListener(TransferDragSourceListener)
public void removeDropTargetListener(TransferDropTargetListener listener)
listener
- addDropTargetListener(TransferDropTargetListener)
public void reveal(EditPart editpart)
editpart
- the EditPart to revealpublic void select(EditPart editpart)
EditPart
. That part
becomes the primary selection. Fires selection changed to ISelectionChangedListener
s.
editpart
- the new selectionpublic void setContents(EditPart editpart)
setContents(Object)
.
getRootEditPart()
public void setContents(Object contents)
EditPart
for the provided model object using the
EditPartFactory
. That EditPart is then added to the RootEditPart
, and becomes the viewer's contents.
contents
- the contents model objectpublic void setContextMenu(MenuManager contextMenu)
MenuManager
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.
contextMenu
- the ContextMenuProvider
public void setControl(Control control)
Control
for this viewer. The viewer's control is also
set automatically if createControl(Composite)
is called.
control
- the Controlpublic void setCursor(Cursor cursor)
Control
. This method should only be
called by Tools
. null
can be used to indicate that the
default cursor should be restored.
cursor
- null
or a CursorgetControl()
public void setEditDomain(EditDomain domain)
EditDomain
for this viewer. The Viewer will route all mouse and
keyboard events to the EditDomain.
domain
- The EditDomainpublic void setEditPartFactory(EditPartFactory factory)
factory
- the factorygetEditPartFactory()
public void setFocus(EditPart focus)
focus
- the FocusPart.getFocusEditPart()
public void setKeyHandler(KeyHandler keyHandler)
KeyHandler
.
keyHandler
- the KeyHandlergetKeyHandler()
public void setRootEditPart(RootEditPart root)
root
- the RootEditPartgetRootEditPart()
,
getContents()
public void setRouteEventsToEditDomain(boolean value)
EditDomain
rather than
handled in the default way.
value
- true if the viewer should route events to the EditDomainpublic void unregisterAccessibleEditPart(AccessibleEditPart acc)
acc
- the accessible part
|
Eclipse GEF 2.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |