Class AbstractGraphicalEditPart
- java.lang.Object
-
- org.eclipse.gef.editparts.AbstractEditPart
-
- org.eclipse.gef.editparts.AbstractGraphicalEditPart
-
- All Implemented Interfaces:
IAdaptable,EditPart,GraphicalEditPart,RequestConstants
- Direct Known Subclasses:
AbstractConnectionEditPart,GraphicalRootEditPart,SimpleRootEditPart
public abstract class AbstractGraphicalEditPart extends AbstractEditPart implements GraphicalEditPart
Default implementation forGraphicalEditPart.This is an implementation class, and the documentation here is targeted at subclassing this class. Callers of public API should refer to the interface's documentation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAbstractGraphicalEditPart.AccessibleGraphicalEditPartA default implementation ofAccessibleEditPart.protected classAbstractGraphicalEditPart.DefaultAccessibleAnchorProviderThe default implementation ofAccessibleAnchorProviderreturned ingetAdapter(Class).-
Nested classes/interfaces inherited from class org.eclipse.gef.editparts.AbstractEditPart
AbstractEditPart.EditPolicyIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected org.eclipse.draw2d.IFigurefigureThe Figureprotected java.util.ListsourceConnectionsList of source ConnectionEditPartsprotected java.util.ListtargetConnectionsList of source ConnectionEditParts-
Fields inherited from class org.eclipse.gef.editparts.AbstractEditPart
children, FLAG_ACTIVE, FLAG_FOCUS, MAX_FLAG
-
Fields inherited from interface org.eclipse.gef.EditPart
SELECTED, SELECTED_NONE, SELECTED_PRIMARY
-
Fields inherited from interface org.eclipse.gef.RequestConstants
REQ_ADD, REQ_ALIGN, REQ_ALIGN_CHILDREN, REQ_CLONE, REQ_CONNECTION_END, REQ_CONNECTION_START, REQ_CREATE, REQ_CREATE_BENDPOINT, REQ_DELETE, REQ_DELETE_DEPENDANT, REQ_DIRECT_EDIT, REQ_MOVE, REQ_MOVE_BENDPOINT, REQ_MOVE_CHILDREN, REQ_OPEN, REQ_ORPHAN, REQ_ORPHAN_CHILDREN, REQ_RECONNECT_SOURCE, REQ_RECONNECT_TARGET, REQ_RESIZE, REQ_RESIZE_CHILDREN, REQ_SELECTION, REQ_SELECTION_HOVER
-
-
Constructor Summary
Constructors Constructor Description AbstractGraphicalEditPart()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidactivate()ExtendsAbstractEditPart.activate()to also activate all source ConnectionEditParts.protected voidaddChildVisual(EditPart childEditPart, int index)Adds the child's Figure to thecontentPane.voidaddNodeListener(NodeListener listener)Adds a NodeListener to the EditPart.voidaddNotify()Called after the EditPart has been added to its parent.protected voidaddSourceConnection(ConnectionEditPart connection, int index)Adds a source ConnectionEditPart at the specified index.protected voidaddTargetConnection(ConnectionEditPart connection, int index)Adds a target ConnectionEditPart at the specified index.protected ConnectionEditPartcreateConnection(java.lang.Object model)Creates aConnectionEditPartfor the given model.protected abstract org.eclipse.draw2d.IFigurecreateFigure()Creates theFigureto be used as this part's visuals.protected ConnectionEditPartcreateOrFindConnection(java.lang.Object model)Searches for an existingConnectionEditPartin the Viewer'sEditPart registryand returns it if one is found.voiddeactivate()ExtendsAbstractEditPart.deactivate()to also deactivate the source ConnectionEditParts.protected voidfireRemovingSourceConnection(ConnectionEditPart connection, int index)Notifies listeners that a source connection has been removed.protected voidfireRemovingTargetConnection(ConnectionEditPart connection, int index)Notifies listeners that a target connection has been removed.protected voidfireSourceConnectionAdded(ConnectionEditPart connection, int index)Notifies listeners that a source connection has been added.protected voidfireTargetConnectionAdded(ConnectionEditPart connection, int index)Notifies listeners that a target connection has been added.java.lang.ObjectgetAdapter(java.lang.Class key)ExtendsAbstractEditPart.getAdapter(Class)to handle additional adapter types.org.eclipse.draw2d.IFiguregetContentPane()Implemented to delegate togetFigure()by default.DragTrackergetDragTracker(Request request)Overridden to return a defaultDragTrackerfor GraphicalEditParts.org.eclipse.draw2d.IFiguregetFigure()The default implementation callscreateFigure()if the figure is currentlynull.protected org.eclipse.draw2d.IFiguregetLayer(java.lang.Object layer)A convenience method for obtaining the specified layer from theLayerManager.protected java.util.ListgetModelSourceConnections()Returns theListof the connection model objects for which this EditPart's model is the source.protected java.util.ListgetModelTargetConnections()Returns theListof the connection model objects for which this EditPart's model is the target.java.util.ListgetSourceConnections()Returns the source connections for this GraphicalEditPart.java.util.ListgetTargetConnections()Returns the target connections for this GraphicalEditPart.booleanisSelectable()A GraphicalEditPart is considered selectable, if it is active and its figure is showing.protected voidprimAddSourceConnection(ConnectionEditPart connection, int index)Adds the specified sourceConnectionEditPartat an index.protected voidprimAddTargetConnection(ConnectionEditPart connection, int index)Adds the specified targetConnectionEditPartat an index.protected voidprimRemoveSourceConnection(ConnectionEditPart connection)Removes the specified sourceConnectionEditPartfrom thesourceConnectionsList.protected voidprimRemoveTargetConnection(ConnectionEditPart connection)Removes the specified targetConnectionEditPartfrom thetargetConnectionsList.voidrefresh()ExtendsAbstractEditPart.refresh()to refresh two additional structural features: source and target connections.protected voidrefreshSourceConnections()Updates the set of source ConnectionEditParts so that it is in sync with the model source connections.protected voidrefreshTargetConnections()Updates the set of target ConnectionEditParts so that it is in sync with the model target connections.protected voidregisterVisuals()Registers the EditPart's Figure in the Viewer.protected voidremoveChildVisual(EditPart childEditPart)Remove the child's Figure from thecontentPane.voidremoveNodeListener(NodeListener listener)Removes the first occurance of the specified listener from the list of listeners.voidremoveNotify()ExtendsAbstractEditPart.removeNotify()to cleanupConnectionEditParts.protected voidremoveSourceConnection(ConnectionEditPart connection)Removes the given connection for which this EditPart is the source.protected voidremoveTargetConnection(ConnectionEditPart connection)Removes the given connection for which this EditPart is the target.protected voidreorderChild(EditPart child, int index)This method is extended to preserve a LayoutManager constraint if one exists.protected voidreorderSourceConnection(ConnectionEditPart connection, int index)Moves a sourceConnectionEditPartinto a lower index than it currently occupies.protected voidreorderTargetConnection(ConnectionEditPart connection, int index)Moves a targetConnectionEditPartinto a lower index than it currently occupies.protected voidsetFigure(org.eclipse.draw2d.IFigure figure)Sets the FigurevoidsetLayoutConstraint(EditPart child, org.eclipse.draw2d.IFigure childFigure, java.lang.Object constraint)Sets the specified constraint for a child's Figure on thecontent panefigure for this GraphicalEditPart.protected voidunregisterVisuals()Implemented to remove the Figure from the Viewer's registry.-
Methods inherited from class org.eclipse.gef.editparts.AbstractEditPart
activateEditPolicies, addChild, addEditPartListener, createChild, createEditPolicies, deactivateEditPolicies, debug, debugFeedback, eraseSourceFeedback, eraseTargetFeedback, fireActivated, fireChildAdded, fireDeactivated, fireRemovingChild, fireSelectionChanged, getAccessibleEditPart, getChildren, getCommand, getEditPolicy, getEditPolicyIterator, getEventListeners, getFlag, getModel, getModelChildren, getParent, getRoot, getSelected, getTargetEditPart, getViewer, hasFocus, installEditPolicy, isActive, performRequest, refreshChildren, refreshVisuals, register, registerAccessibility, registerModel, removeChild, removeEditPartListener, removeEditPolicy, setFlag, setFocus, setModel, setParent, setSelected, showSourceFeedback, showTargetFeedback, toString, understandsRequest, unregister, unregisterAccessibility, unregisterModel
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.gef.EditPart
addEditPartListener, eraseSourceFeedback, eraseTargetFeedback, getChildren, getCommand, getEditPolicy, getModel, getParent, getRoot, getSelected, getTargetEditPart, getViewer, hasFocus, installEditPolicy, isActive, performRequest, removeEditPartListener, removeEditPolicy, setFocus, setModel, setParent, setSelected, showSourceFeedback, showTargetFeedback, understandsRequest
-
-
-
-
Method Detail
-
activate
public void activate()
ExtendsAbstractEditPart.activate()to also activate all source ConnectionEditParts.- Specified by:
activatein interfaceEditPart- Overrides:
activatein classAbstractEditPart- See Also:
EditPart.activate()
-
addChildVisual
protected void addChildVisual(EditPart childEditPart, int index)
Adds the child's Figure to thecontentPane.- Specified by:
addChildVisualin classAbstractEditPart- Parameters:
childEditPart- The EditPart being addedindex- The child's position- See Also:
AbstractEditPart.addChildVisual(EditPart, int)
-
addNodeListener
public void addNodeListener(NodeListener listener)
Description copied from interface:GraphicalEditPartAdds a NodeListener to the EditPart. Duplicate calls result in duplicate notification.- Specified by:
addNodeListenerin interfaceGraphicalEditPart- Parameters:
listener- the Listener- See Also:
GraphicalEditPart.addNodeListener(org.eclipse.gef.NodeListener)
-
addNotify
public void addNotify()
Description copied from interface:EditPartCalled after the EditPart has been added to its parent. This is used to indicate to the EditPart that it should refresh itself for the first time.- Specified by:
addNotifyin interfaceEditPart- Overrides:
addNotifyin classAbstractEditPart- See Also:
EditPart.addNotify()
-
addSourceConnection
protected void addSourceConnection(ConnectionEditPart connection, int index)
Adds a source ConnectionEditPart at the specified index. This method is called fromrefreshSourceConnections(). There should be no reason to call or override this method. Source connection are created as a result of overridinggetModelSourceConnections().primAddSourceConnection(ConnectionEditPart, int)is called to perform the actual update of thesourceConnectionsList. The connection will have its source set tothis.If active, this EditPart will activate the ConnectionEditPart.
Finally, all
NodeListeners are notified of the new connection.- Parameters:
connection- Connection being addedindex- Index where it is being added
-
addTargetConnection
protected void addTargetConnection(ConnectionEditPart connection, int index)
Adds a target ConnectionEditPart at the specified index. This method is called fromrefreshTargetConnections(). There should be no reason to call or override this method. Target connection are created as a result of overridinggetModelTargetConnections().primAddTargetConnection(ConnectionEditPart, int)is called to perform the actual update of thetargetConnectionsList. The connection will have its target set tothis.Finally, all
NodeListeners are notified of the new connection.- Parameters:
connection- Connection being addedindex- Index where it is being added
-
createConnection
protected ConnectionEditPart createConnection(java.lang.Object model)
Creates aConnectionEditPartfor the given model. Similar toAbstractEditPart.createChild(Object). This method is called indirectly duringrefreshSourceConnections(), andrefreshTargetConnections().The default implementation goes to the EditPartViewer's
EditPartFactoryto create the connection. This method should not be overridden unless factories are not being used.- Parameters:
model- the connection model object- Returns:
- the new ConnectionEditPart
-
createFigure
protected abstract org.eclipse.draw2d.IFigure createFigure()
Creates theFigureto be used as this part's visuals. This is called fromgetFigure()if the figure has not been created.- Returns:
- a Figure
-
createOrFindConnection
protected ConnectionEditPart createOrFindConnection(java.lang.Object model)
Searches for an existingConnectionEditPartin the Viewer'sEditPart registryand returns it if one is found. Otherwise,createConnection(Object)is called to create a new ConnectionEditPart. Override this method only if you need to find an existing connection some other way.- Parameters:
model- the Connection's model- Returns:
- the ConnectionEditPart
-
deactivate
public void deactivate()
ExtendsAbstractEditPart.deactivate()to also deactivate the source ConnectionEditParts. Subclasses should extend this method to remove any listeners added inactivate().- Specified by:
deactivatein interfaceEditPart- Overrides:
deactivatein classAbstractEditPart- See Also:
EditPart.deactivate()
-
fireRemovingSourceConnection
protected void fireRemovingSourceConnection(ConnectionEditPart connection, int index)
Notifies listeners that a source connection has been removed. Called fromremoveSourceConnection(ConnectionEditPart). There is no reason for subclasses to call or override this method.- Parameters:
connection-ConnectionEditPartbeing added as child.index- Position child is being added into.
-
fireRemovingTargetConnection
protected void fireRemovingTargetConnection(ConnectionEditPart connection, int index)
Notifies listeners that a target connection has been removed. Called fromremoveTargetConnection(ConnectionEditPart). There is no reason for subclasses to call or override this method.- Parameters:
connection-ConnectionEditPartbeing added as child.index- Position child is being added into.
-
fireSourceConnectionAdded
protected void fireSourceConnectionAdded(ConnectionEditPart connection, int index)
Notifies listeners that a source connection has been added. Called fromaddSourceConnection(ConnectionEditPart, int). There is no reason for subclasses to call or override this method.- Parameters:
connection-ConnectionEditPartbeing added as child.index- Position child is being added into.
-
fireTargetConnectionAdded
protected void fireTargetConnectionAdded(ConnectionEditPart connection, int index)
Notifies listeners that a target connection has been added. Called fromaddTargetConnection(ConnectionEditPart, int). There is no reason for subclasses to call or override this method.- Parameters:
connection-ConnectionEditPartbeing added as child.index- Position child is being added into.
-
getAdapter
public java.lang.Object getAdapter(java.lang.Class key)
ExtendsAbstractEditPart.getAdapter(Class)to handle additional adapter types. Currently, these types includeAccessibleHandleProviderandAccessibleAnchorProvider. Subclasses should extend this method to support additional adapter types, or to replace the default provided adapaters.- Specified by:
getAdapterin interfaceIAdaptable- Overrides:
getAdapterin classAbstractEditPart- See Also:
IAdaptable.getAdapter(Class)
-
getContentPane
public org.eclipse.draw2d.IFigure getContentPane()
Implemented to delegate togetFigure()by default. Subclasses may overwrite in case theIFigurereturned bygetFigure()is a composite figure and child figures should be added to one of its children instead of the figure itself.- Specified by:
getContentPanein interfaceGraphicalEditPart- Returns:
- the content pane Figure
- See Also:
GraphicalEditPart.getContentPane()
-
getDragTracker
public DragTracker getDragTracker(Request request)
Overridden to return a defaultDragTrackerfor GraphicalEditParts.- Specified by:
getDragTrackerin interfaceEditPart- Parameters:
request- aRequestindicating the context of the drag- Returns:
nullor a DragTracker- See Also:
EditPart.getDragTracker(Request)
-
getFigure
public org.eclipse.draw2d.IFigure getFigure()
The default implementation callscreateFigure()if the figure is currentlynull.- Specified by:
getFigurein interfaceGraphicalEditPart- Returns:
- this EditPart's Figure
- See Also:
GraphicalEditPart.getFigure()
-
getLayer
protected org.eclipse.draw2d.IFigure getLayer(java.lang.Object layer)
A convenience method for obtaining the specified layer from theLayerManager.- Parameters:
layer- ID of the Layer- Returns:
- The requested layer or
nullif it doesn't exist
-
getModelSourceConnections
protected java.util.List getModelSourceConnections()
Returns theListof the connection model objects for which this EditPart's model is the source.refreshSourceConnections()calls this method. For each connection model object,createConnection(Object)will be called automatically to obtain a correspondingConnectionEditPart.Callers must not modify the returned List.
- Returns:
- the List of model source connections
-
getModelTargetConnections
protected java.util.List getModelTargetConnections()
Returns theListof the connection model objects for which this EditPart's model is the target.refreshTargetConnections()calls this method. For each connection model object,createConnection(Object)will be called automatically to obtain a correspondingConnectionEditPart.Callers must not modify the returned List.
- Returns:
- the List of model target connections
-
getSourceConnections
public java.util.List getSourceConnections()
Description copied from interface:GraphicalEditPartReturns the source connections for this GraphicalEditPart. This method should only be called by the EditPart itself, and its helpers such as EditPolicies.- Specified by:
getSourceConnectionsin interfaceGraphicalEditPart- Returns:
- the source connections
- See Also:
GraphicalEditPart.getSourceConnections()
-
getTargetConnections
public java.util.List getTargetConnections()
Description copied from interface:GraphicalEditPartReturns the target connections for this GraphicalEditPart. This method should only be called by the EditPart itself, and its helpers such as EditPolicies.- Specified by:
getTargetConnectionsin interfaceGraphicalEditPart- Returns:
- the target connections
- See Also:
GraphicalEditPart.getTargetConnections()
-
isSelectable
public boolean isSelectable()
A GraphicalEditPart is considered selectable, if it is active and its figure is showing.- Specified by:
isSelectablein interfaceEditPart- Overrides:
isSelectablein classAbstractEditPart- Returns:
trueif the receiver can be selected- See Also:
AbstractEditPart.isSelectable()
-
primAddSourceConnection
protected void primAddSourceConnection(ConnectionEditPart connection, int index)
Adds the specified sourceConnectionEditPartat an index. This method is used to update thesourceConnectionsList. This method is called fromaddSourceConnection(ConnectionEditPart, int). Subclasses should not call or override this method.- Parameters:
connection- the ConnectionEditPartindex- the index of the add
-
primAddTargetConnection
protected void primAddTargetConnection(ConnectionEditPart connection, int index)
Adds the specified targetConnectionEditPartat an index. This method is used to update thetargetConnectionsList. This method is called fromaddTargetConnection(ConnectionEditPart, int). Subclasses should not call or override this method.- Parameters:
connection- the ConnectionEditPartindex- the index of the add
-
primRemoveSourceConnection
protected void primRemoveSourceConnection(ConnectionEditPart connection)
Removes the specified sourceConnectionEditPartfrom thesourceConnectionsList. This method is called fromremoveSourceConnection(ConnectionEditPart). Subclasses should not call or override this method.- Parameters:
connection- Connection to remove.
-
primRemoveTargetConnection
protected void primRemoveTargetConnection(ConnectionEditPart connection)
Removes the specified targetConnectionEditPartfrom thetargetConnectionsList. This method is called fromremoveTargetConnection(ConnectionEditPart). Subclasses should not call or override this method.- Parameters:
connection- Connection to remove.
-
refresh
public void refresh()
ExtendsAbstractEditPart.refresh()to refresh two additional structural features: source and target connections. Subclasses should probably overrideAbstractEditPart.refreshVisuals()instead of this method.- Specified by:
refreshin interfaceEditPart- Overrides:
refreshin classAbstractEditPart- See Also:
EditPart.refresh()
-
refreshSourceConnections
protected void refreshSourceConnections()
Updates the set of source ConnectionEditParts so that it is in sync with the model source connections. This method is called fromrefresh(), and may also be called in response to notification from the model.The update is performed by comparing the existing source ConnectionEditParts with the set of model source connections returned from
getModelSourceConnections(). EditParts whose model no longer exists areremoved. New models have their ConnectionEditPartscreated. Subclasses should overridegetModelSourceChildren().This method should not be overridden.
-
refreshTargetConnections
protected void refreshTargetConnections()
Updates the set of target ConnectionEditParts so that it is in sync with the model target connections. This method is called fromrefresh(), and may also be called in response to notification from the model.The update is performed by comparing the existing source ConnectionEditParts with the set of model source connections returned from
getModelTargetConnections(). EditParts whose model no longer exists areremoved. New models have their ConnectionEditPartscreated. Subclasses should overridegetModelTargetChildren().This method should not be overridden.
-
registerVisuals
protected void registerVisuals()
Registers the EditPart's Figure in the Viewer. This is what makes it possible for the Viewer to map a mouse location to an EditPart.- Overrides:
registerVisualsin classAbstractEditPart- See Also:
AbstractEditPart.registerVisuals()
-
removeChildVisual
protected void removeChildVisual(EditPart childEditPart)
Remove the child's Figure from thecontentPane.- Specified by:
removeChildVisualin classAbstractEditPart- Parameters:
childEditPart- the child EditPart- See Also:
AbstractEditPart.removeChildVisual(EditPart)
-
removeNodeListener
public void removeNodeListener(NodeListener listener)
Description copied from interface:GraphicalEditPartRemoves the first occurance of the specified listener from the list of listeners. Does nothing if the listener was not present.- Specified by:
removeNodeListenerin interfaceGraphicalEditPart- Parameters:
listener- the listener being removed- See Also:
GraphicalEditPart.removeNodeListener(org.eclipse.gef.NodeListener)
-
removeNotify
public void removeNotify()
ExtendsAbstractEditPart.removeNotify()to cleanupConnectionEditParts.- Specified by:
removeNotifyin interfaceEditPart- Overrides:
removeNotifyin classAbstractEditPart- See Also:
EditPart.removeNotify()
-
removeSourceConnection
protected void removeSourceConnection(ConnectionEditPart connection)
Removes the given connection for which this EditPart is the source.
Fires notification.
Inverse ofaddSourceConnection(ConnectionEditPart, int)- Parameters:
connection- Connection being removed
-
removeTargetConnection
protected void removeTargetConnection(ConnectionEditPart connection)
Removes the given connection for which this EditPart is the target.
Fires notification.
Inverse ofaddTargetConnection(ConnectionEditPart, int)- Parameters:
connection- Connection being removed
-
reorderChild
protected void reorderChild(EditPart child, int index)
This method is extended to preserve a LayoutManager constraint if one exists.- Overrides:
reorderChildin classAbstractEditPart- Parameters:
child- the child being reorderedindex- new index for the child- See Also:
AbstractEditPart.reorderChild(EditPart, int)
-
reorderSourceConnection
protected void reorderSourceConnection(ConnectionEditPart connection, int index)
Moves a sourceConnectionEditPartinto a lower index than it currently occupies. This method is called fromrefreshSourceConnections().- Parameters:
connection- the ConnectionEditPartindex- the new index
-
reorderTargetConnection
protected void reorderTargetConnection(ConnectionEditPart connection, int index)
Moves a targetConnectionEditPartinto a lower index than it currently occupies. This method is called fromrefreshTargetConnections().- Parameters:
connection- the ConnectionEditPartindex- the new index
-
setFigure
protected void setFigure(org.eclipse.draw2d.IFigure figure)
Sets the Figure- Parameters:
figure- the Figure
-
setLayoutConstraint
public void setLayoutConstraint(EditPart child, org.eclipse.draw2d.IFigure childFigure, java.lang.Object constraint)
Description copied from interface:GraphicalEditPartSets the specified constraint for a child's Figure on thecontent panefigure for this GraphicalEditPart. The constraint will be applied to the content pane'sLayoutManager.revalidate()is called on the content pane, which will cause it to layout during the next update.- Specified by:
setLayoutConstraintin interfaceGraphicalEditPart- Parameters:
child- the child GraphicalEditPart whose constraint is being setchildFigure- the Figure whose constraint is being setconstraint- the constraint for the draw2dLayoutManager- See Also:
GraphicalEditPart.setLayoutConstraint(EditPart, IFigure, Object)
-
unregisterVisuals
protected void unregisterVisuals()
Implemented to remove the Figure from the Viewer's registry.- Overrides:
unregisterVisualsin classAbstractEditPart- See Also:
AbstractEditPart.unregisterVisuals()
-
-