Package org.eclipse.graphiti.tb
Class DefaultToolBehaviorProvider
- java.lang.Object
-
- org.eclipse.graphiti.tb.DefaultToolBehaviorProvider
-
- All Implemented Interfaces:
IToolBehaviorProvider
public class DefaultToolBehaviorProvider extends java.lang.Object implements IToolBehaviorProvider
The Class DefaultToolBehaviorProvider.
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
CONTEXT_BUTTON_DELETE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.protected static int
CONTEXT_BUTTON_REMOVE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.protected static int
CONTEXT_BUTTON_UPDATE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.static int
DEFAULT_LINE_SELECTION_WIDTH
The default selection width (the tolerance area a user can click to still select) a lathy object (e.g.protected static IContextMenuEntry[]
NO_CONTEXT_MENU_ENTRIES
The Constant NO_CONTEXT_MENU_ENTRIES.protected int
THRESHOLD_FOR_LONG_RUNNING_OPERATION
-
Constructor Summary
Constructors Constructor Description DefaultToolBehaviorProvider(IDiagramTypeProvider diagramTypeProvider)
Creates a newDefaultToolBehaviorProvider
.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
dispose()
Dispose.boolean
equalsBusinessObjects(java.lang.Object o1, java.lang.Object o2)
Default Implementation.protected ILocation
getAbsoluteLocation(GraphicsAlgorithm ga)
Returns the location of the graphics algorithm in absolute coordinates.protected ILocation
getAbsoluteLocation(PictogramElement pe)
Returns the location of the graphics algorithm associated to the pictogram element in absolute coordinates.java.lang.Object
getAdapter(java.lang.Class<?> type)
Returns the adapter for the specified key.GraphicsAlgorithm
getChopboxAnchorArea(PictogramElement pe)
Provides the graphics algorithm that defines the outline for the given pictogram element's chopbox Anchor.GraphicsAlgorithm[]
getClickArea(PictogramElement pe)
The returned graphics algorithm's define the area where the user can click to select the shape.ICustomFeature
getCommandFeature(CustomContext context, java.lang.String hint)
Command features can do anything, but they are tied to an external command.GraphicsAlgorithm
getContentArea(ContainerShape cs)
The returned graphics algorithm defines the technical container for active children.IContextButtonPadData
getContextButtonPad(IPictogramElementContext context)
Returns the context button pad data for the given pictogram element context.IContextMenuEntry[]
getContextMenu(ICustomContext context)
Returns the context menu for the current mouse location.java.lang.String
getContributorId()
Returns the contributor ID for the tabbed property sheet page.IDecorator[]
getDecorators(PictogramElement pe)
Returns decorators which will be used at rendering time to decorate the graphical representation of the given pictogram element.DiagramScrollingBehavior
getDiagramScrollingBehavior()
Deprecated.Scroll bar based infinite canvas is a workaround for Bug 195527 and can be harmed by GEF modifications.protected IDiagramTypeProvider
getDiagramTypeProvider()
Gets the diagram type provider.java.lang.String
getDirectEditingInvalidNotificationTitle(IDirectEditingFeature feature, IDirectEditingContext context)
Returns the title of the popup that appears when a user provides an invalid input for direct editing.ICustomFeature
getDoubleClickFeature(IDoubleClickContext context)
Returns a feature which will be executed at at double click.protected IFeatureProvider
getFeatureProvider()
Gets the feature provider.int
getLineSelectionWidth(Polyline polyline)
Is asked to return the selection width (the tolerance area a user can click to still select) a lathy object (e.g.ILocationInfo
getLocationInfo(PictogramElement pe, ILocationInfo locationInfo)
Returns the location info which will be used for direct editing if the framework cannot decide this.IPaletteCompartmentEntry[]
getPalette()
Default implementation: creates a connection and an object compartment.PictogramElement
getSelection(PictogramElement originalPe, PictogramElement[] oldSelection)
Override this method if you want to change the default selection on mouse click.GraphicsAlgorithm
getSelectionBorder(PictogramElement pe)
The returned graphics algorithm defines the selection border and the rectangle where the context buttons appear at.IAnchorSelectionInfo
getSelectionInfoForAnchor(Anchor anchor)
Return the selection info for the given anchor.IConnectionSelectionInfo
getSelectionInfoForConnection(Connection connection)
Return the selection info for the given connection.IShapeSelectionInfo
getSelectionInfoForShape(Shape shape)
Return the selection info for the given shape.PictogramElement[]
getSelections(PictogramElement selection)
ICustomFeature
getSingleClickFeature(ISingleClickContext context)
Returns a feature which will be executed at at a single click on an already selected shape.java.lang.String
getTitleToolTip()
Returns a tooltip for the workbench titlebar.java.lang.Object
getToolTip(GraphicsAlgorithm ga)
Returns the tooltip to be attached to the graphical representation of the given graphics algorithm.double[]
getZoomLevels()
Gets the zoom levels.boolean
isConnectionSelectionEnabled()
Indicates if the selection of connections is enabled.boolean
isDefaultBendPointRenderingActive()
boolean
isMultiSelectionEnabled()
Indicates if the selection of multiple elements is enabled.boolean
isShowFlyoutPalette()
{@see IToolBehaviorProvider#isShowFlyoutPalette()}.boolean
isShowGuides()
Indicates whether guides will be shown or not.boolean
isShowMarqueeTool()
{@see IToolBehaviorProvider#isShowMarqueeTool()}.boolean
isShowSelectionTool()
{@see IToolBehaviorProvider#isShowSelectionTool()}.boolean
isStayActiveAfterExecution(IConnectionCreationToolEntry connectionCreationToolEntry)
Defines if the tool created for the givenIConnectionCreationToolEntry
stays active after a connection has been created or not.void
postExecute(IExecutionInfo executionInfo)
Called after execution on stack.void
preExecute(IExecutionInfo executionInfo)
Called before execution on stack.protected void
setGenericContextButtons(IContextButtonPadData data, PictogramElement pe, int identifiers)
Sets the defined generic context buttons to the given IContextButtonPadData.
-
-
-
Field Detail
-
DEFAULT_LINE_SELECTION_WIDTH
public static final int DEFAULT_LINE_SELECTION_WIDTH
The default selection width (the tolerance area a user can click to still select) a lathy object (e.g.Polyline
orPolygon
forShape
s andConnection
s) in the diagram. Is returned in the default implementation ofgetLineSelectionWidth(Polyline)
.- Since:
- 0.9
- See Also:
- Constant Field Values
-
THRESHOLD_FOR_LONG_RUNNING_OPERATION
protected int THRESHOLD_FOR_LONG_RUNNING_OPERATION
-
CONTEXT_BUTTON_UPDATE
protected static int CONTEXT_BUTTON_UPDATE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.
-
CONTEXT_BUTTON_REMOVE
protected static int CONTEXT_BUTTON_REMOVE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.
-
CONTEXT_BUTTON_DELETE
protected static int CONTEXT_BUTTON_DELETE
Identifier for a generic context button, used insetGenericContextButtons(IContextButtonPadData, PictogramElement, int)
.
-
NO_CONTEXT_MENU_ENTRIES
protected static final IContextMenuEntry[] NO_CONTEXT_MENU_ENTRIES
The Constant NO_CONTEXT_MENU_ENTRIES.
-
-
Constructor Detail
-
DefaultToolBehaviorProvider
public DefaultToolBehaviorProvider(IDiagramTypeProvider diagramTypeProvider)
Creates a newDefaultToolBehaviorProvider
.- Parameters:
diagramTypeProvider
- the diagram type provider
-
-
Method Detail
-
dispose
public void dispose()
Description copied from interface:IToolBehaviorProvider
Dispose.- Specified by:
dispose
in interfaceIToolBehaviorProvider
-
getAdapter
public java.lang.Object getAdapter(java.lang.Class<?> type)
Description copied from interface:IToolBehaviorProvider
Returns the adapter for the specified key. This method will be called in the getAdapter() method of the graphical editor.- Specified by:
getAdapter
in interfaceIToolBehaviorProvider
- Parameters:
type
- the type- Returns:
- the adapter
-
getSelection
public PictogramElement getSelection(PictogramElement originalPe, PictogramElement[] oldSelection)
Description copied from interface:IToolBehaviorProvider
Override this method if you want to change the default selection on mouse click.- Specified by:
getSelection
in interfaceIToolBehaviorProvider
- Parameters:
originalPe
- the original pictogram elementoldSelection
- the old selection- Returns:
- an active pictogram element to be selected instead; return
null
if there should not be a special selection behavior; if there should not be a selection simply return the diagram
-
getSelections
public PictogramElement[] getSelections(PictogramElement selection)
- Specified by:
getSelections
in interfaceIToolBehaviorProvider
- Since:
- 0.16
-
getSelectionInfoForConnection
public IConnectionSelectionInfo getSelectionInfoForConnection(Connection connection)
Description copied from interface:IToolBehaviorProvider
Return the selection info for the given connection.- Specified by:
getSelectionInfoForConnection
in interfaceIToolBehaviorProvider
- Parameters:
connection
- the connection- Returns:
- the connection selection info
- Since:
- 0.10
-
getContextButtonPad
public IContextButtonPadData getContextButtonPad(IPictogramElementContext context)
Description copied from interface:IToolBehaviorProvider
Returns the context button pad data for the given pictogram element context. The context button pad data defines, which context buttons to show for a given pictogram element. Can return null, if no there is no context button pad for the given pictogram element.- Specified by:
getContextButtonPad
in interfaceIToolBehaviorProvider
- Parameters:
context
- The pictogram element context, for which to return the context button pad data.- Returns:
- The context button pad data for the given pictogram element context.
-
setGenericContextButtons
protected void setGenericContextButtons(IContextButtonPadData data, PictogramElement pe, int identifiers)
Sets the defined generic context buttons to the given IContextButtonPadData. You should never change the list of generic context buttons directly but always use this method. This ensures, that only the 'generic' context buttons are set and that they have the correct ordering.- Parameters:
data
- The IContextButtonPadData to which to set the generic context buttons.pe
- The pictogram element for which to get the underlying features of the context buttons.identifiers
- The context button identifiers (e.g. "CONTEXT_BUTTON_UPDATE
&CONTEXT_BUTTON_REMOVE
")
-
getAbsoluteLocation
protected ILocation getAbsoluteLocation(PictogramElement pe)
Returns the location of the graphics algorithm associated to the pictogram element in absolute coordinates. Also seegetAbsoluteLocation(GraphicsAlgorithm)
.- Parameters:
pe
- The pictogram element, for which graphics algorithm to return the location.- Returns:
- The location of the graphics algorithm associated to the pictogram element in absolute coordinates.
-
getAbsoluteLocation
protected ILocation getAbsoluteLocation(GraphicsAlgorithm ga)
Returns the location of the graphics algorithm in absolute coordinates.- Parameters:
ga
- The graphics algorithm for which to return the location.- Returns:
- The location of the graphics algorithm in absolute coordinates.
-
getContextMenu
public IContextMenuEntry[] getContextMenu(ICustomContext context)
Description copied from interface:IToolBehaviorProvider
Returns the context menu for the current mouse location.- Specified by:
getContextMenu
in interfaceIToolBehaviorProvider
- Parameters:
context
- the custom context which contains the info about the location where the context menu appears.- Returns:
- the context menu
-
getLocationInfo
public ILocationInfo getLocationInfo(PictogramElement pe, ILocationInfo locationInfo)
Description copied from interface:IToolBehaviorProvider
Returns the location info which will be used for direct editing if the framework cannot decide this. E.g. a shape is selected and the user presses F2 but the mouse is outside the shape.- Specified by:
getLocationInfo
in interfaceIToolBehaviorProvider
- Parameters:
pe
- the active and selected pictogram elementlocationInfo
- the current location info determined by the framework- Returns:
- the location info for the given selected pictogram element
-
getDoubleClickFeature
public ICustomFeature getDoubleClickFeature(IDoubleClickContext context)
Description copied from interface:IToolBehaviorProvider
Returns a feature which will be executed at at double click. For that purpose a custom feature is used, because custom features appear in the context menu and the double click feature should also appear in the context menu (usual UI guideline).- Specified by:
getDoubleClickFeature
in interfaceIToolBehaviorProvider
- Parameters:
context
- contains information where the double click gesture has happened- Returns:
- the feature to execute
-
getSingleClickFeature
public ICustomFeature getSingleClickFeature(ISingleClickContext context)
Description copied from interface:IToolBehaviorProvider
Returns a feature which will be executed at at a single click on an already selected shape. If the feature provider already returned a direct editing feature for that single click, then this method will not be called.- Specified by:
getSingleClickFeature
in interfaceIToolBehaviorProvider
- Parameters:
context
- contains information where the single click gesture has happened- Returns:
- the feature to execute
- Since:
- 0.10
-
getCommandFeature
public ICustomFeature getCommandFeature(CustomContext context, java.lang.String hint)
Description copied from interface:IToolBehaviorProvider
Command features can do anything, but they are tied to an external command. They can be invoked through a keybinding, a menu action or a toolbar item.- Specified by:
getCommandFeature
in interfaceIToolBehaviorProvider
- Parameters:
context
- the contexthint
- the hint specified in the command binding- Returns:
- the feature
- Since:
- 0.10
-
getPalette
public IPaletteCompartmentEntry[] getPalette()
Default implementation: creates a connection and an object compartment. Adds all connection creation features and creation features.- Specified by:
getPalette
in interfaceIToolBehaviorProvider
- Returns:
- the palette entries
-
getDecorators
public IDecorator[] getDecorators(PictogramElement pe)
Description copied from interface:IToolBehaviorProvider
Returns decorators which will be used at rendering time to decorate the graphical representation of the given pictogram element. Adding or removing decorators will not make the diagram dirty.
Decorators of typeIImageDecorator
,IColorDecorator
andIBorderDecorator
are supported forShape
s; forConnection
s onlyIColorDecorator
s are supported and they can only be used to change the foreground color of theConnection
.- Specified by:
getDecorators
in interfaceIToolBehaviorProvider
- Parameters:
pe
- the pictogram element- Returns:
- the decorators
-
getSelectionInfoForShape
public IShapeSelectionInfo getSelectionInfoForShape(Shape shape)
Description copied from interface:IToolBehaviorProvider
Return the selection info for the given shape.- Specified by:
getSelectionInfoForShape
in interfaceIToolBehaviorProvider
- Parameters:
shape
- the shape- Returns:
- the shape selection info
- Since:
- 0.10
-
getSelectionInfoForAnchor
public IAnchorSelectionInfo getSelectionInfoForAnchor(Anchor anchor)
Description copied from interface:IToolBehaviorProvider
Return the selection info for the given anchor.- Specified by:
getSelectionInfoForAnchor
in interfaceIToolBehaviorProvider
- Parameters:
anchor
- the anchor- Returns:
- the anchor selection info
- Since:
- 0.10
-
getZoomLevels
public double[] getZoomLevels()
Description copied from interface:IToolBehaviorProvider
Gets the zoom levels.- Specified by:
getZoomLevels
in interfaceIToolBehaviorProvider
- Returns:
- the zoom levels
-
getDiagramScrollingBehavior
@Deprecated public DiagramScrollingBehavior getDiagramScrollingBehavior()
Deprecated.Scroll bar based infinite canvas is a workaround for Bug 195527 and can be harmed by GEF modifications. It will be removed thenDescription copied from interface:IToolBehaviorProvider
Override this method if you want to change the default scrolling behavior of the diagram. The default is DiagramScrollingBehavior.GEF_DEFAULT: the empty diagram comes up without scroll bars. The scroll bars start to appear when objects are moved to the outside of the currently visible area. For permanently visible scroll bars, return the value DiagramScrollingBehavior.SCROLLBARS_PERMANENTLY_VISIBLE.- Specified by:
getDiagramScrollingBehavior
in interfaceIToolBehaviorProvider
- Returns:
- The DiagramScrollingBehavior
- See Also:
getDiagramScrollingBehavior()
-
getDiagramTypeProvider
protected IDiagramTypeProvider getDiagramTypeProvider()
Gets the diagram type provider.- Returns:
- the diagram type provider
-
getFeatureProvider
protected IFeatureProvider getFeatureProvider()
Gets the feature provider.- Returns:
- the feature provider
-
preExecute
public void preExecute(IExecutionInfo executionInfo)
Description copied from interface:IToolBehaviorProvider
Called before execution on stack. Overriding this method can be necessary if any additional actions have to be processed before the stack will be executed.- Specified by:
preExecute
in interfaceIToolBehaviorProvider
- Parameters:
executionInfo
- info about content to be executed
-
postExecute
public void postExecute(IExecutionInfo executionInfo)
Description copied from interface:IToolBehaviorProvider
Called after execution on stack. Overriding this method can be necessary if any additional actions have to be processed after the stack will be executed. As example a tool could process an automatic layout of the diagram after each diagram modification.- Specified by:
postExecute
in interfaceIToolBehaviorProvider
- Parameters:
executionInfo
- info about content to be executed
-
getToolTip
public java.lang.Object getToolTip(GraphicsAlgorithm ga)
Returns the tooltip to be attached to the graphical representation of the given graphics algorithm.- Specified by:
getToolTip
in interfaceIToolBehaviorProvider
- Parameters:
graphicsAlgorithm
- the graphics algorithm- Returns:
- the tooltip
- Since:
- 0.10
-
getSelectionBorder
public GraphicsAlgorithm getSelectionBorder(PictogramElement pe)
Description copied from interface:IToolBehaviorProvider
The returned graphics algorithm defines the selection border and the rectangle where the context buttons appear at.- Specified by:
getSelectionBorder
in interfaceIToolBehaviorProvider
- Parameters:
pe
- the pictogram element- Returns:
- the graphics algorithm which defines the selection border
-
getClickArea
public GraphicsAlgorithm[] getClickArea(PictogramElement pe)
Description copied from interface:IToolBehaviorProvider
The returned graphics algorithm's define the area where the user can click to select the shape.- Specified by:
getClickArea
in interfaceIToolBehaviorProvider
- Parameters:
pe
- the pictogram element- Returns:
- the click area
-
getChopboxAnchorArea
public GraphicsAlgorithm getChopboxAnchorArea(PictogramElement pe)
Description copied from interface:IToolBehaviorProvider
Provides the graphics algorithm that defines the outline for the given pictogram element's chopbox Anchor.- Specified by:
getChopboxAnchorArea
in interfaceIToolBehaviorProvider
- Parameters:
pe
- the given pictogram element- Returns:
- the graphics algorithm that defines the outline for connections from or to the shape's chopbox anchor
-
getTitleToolTip
public java.lang.String getTitleToolTip()
Description copied from interface:IToolBehaviorProvider
Returns a tooltip for the workbench titlebar.- Specified by:
getTitleToolTip
in interfaceIToolBehaviorProvider
- Returns:
- a tooltip or
null
to indicate that the default from the graphics framework will be used
-
isShowGuides
public boolean isShowGuides()
Description copied from interface:IToolBehaviorProvider
Indicates whether guides will be shown or not.- Specified by:
isShowGuides
in interfaceIToolBehaviorProvider
- Returns:
true
, if guides should be shown
-
getContentArea
public GraphicsAlgorithm getContentArea(ContainerShape cs)
Description copied from interface:IToolBehaviorProvider
The returned graphics algorithm defines the technical container for active children. Currently implementers have to secure to deliver a (Rounded)Rectangle. Does not make sense for other types of graphics algorithm.- Specified by:
getContentArea
in interfaceIToolBehaviorProvider
- Parameters:
cs
- the container shape- Returns:
- the graphics algorithm acting as technical container
-
getContributorId
public java.lang.String getContributorId()
Description copied from interface:IToolBehaviorProvider
Returns the contributor ID for the tabbed property sheet page.- Specified by:
getContributorId
in interfaceIToolBehaviorProvider
- Returns:
- the contributor ID for the tabbed property sheet page.
-
isDefaultBendPointRenderingActive
public boolean isDefaultBendPointRenderingActive()
-
isMultiSelectionEnabled
public boolean isMultiSelectionEnabled()
Description copied from interface:IToolBehaviorProvider
Indicates if the selection of multiple elements is enabled. Override this method and returnfalse
if an editor with single selection behavior is needed.- Specified by:
isMultiSelectionEnabled
in interfaceIToolBehaviorProvider
- Returns:
false
, if single selection is enforced
-
isConnectionSelectionEnabled
public boolean isConnectionSelectionEnabled()
Description copied from interface:IToolBehaviorProvider
Indicates if the selection of connections is enabled.- Specified by:
isConnectionSelectionEnabled
in interfaceIToolBehaviorProvider
- Returns:
true
, if selection of connections is enabled
-
equalsBusinessObjects
public boolean equalsBusinessObjects(java.lang.Object o1, java.lang.Object o2)
Default Implementation. Customers requested the possibility to plug in equality decision based on object identity.- Specified by:
equalsBusinessObjects
in interfaceIToolBehaviorProvider
- Returns:
- true if the business objects are deemed equal, false otherwise.
-
isShowFlyoutPalette
public boolean isShowFlyoutPalette()
{@see IToolBehaviorProvider#isShowFlyoutPalette()}. This default implementation returnstrue
and tells the framework to show the palette.- Specified by:
isShowFlyoutPalette
in interfaceIToolBehaviorProvider
- Returns:
true
- Since:
- 0.9
-
isShowSelectionTool
public boolean isShowSelectionTool()
{@see IToolBehaviorProvider#isShowSelectionTool()}. This default implementation returnstrue
and tells the framework to show the selection tool entry in the palette.- Specified by:
isShowSelectionTool
in interfaceIToolBehaviorProvider
- Returns:
true
- Since:
- 0.9
-
isShowMarqueeTool
public boolean isShowMarqueeTool()
{@see IToolBehaviorProvider#isShowMarqueeTool()}. This default implementation returnstrue
and tells the framework to show the marquee tool entry in the palette.- Specified by:
isShowMarqueeTool
in interfaceIToolBehaviorProvider
- Returns:
true
- Since:
- 0.9
-
getLineSelectionWidth
public int getLineSelectionWidth(Polyline polyline)
Is asked to return the selection width (the tolerance area a user can click to still select) a lathy object (e.g.Polyline
orPolygon
forShape
s andConnection
s) in the diagram. The method is called when a new object is drawn for the first time onto a diagram (on creation of the object or on opening the diagram).
The default implementation returnsDEFAULT_LINE_SELECTION_WIDTH
with the value 5 for all shapes.- Specified by:
getLineSelectionWidth
in interfaceIToolBehaviorProvider
- Parameters:
polyline
- thePolyline
object to get the selection width for- Returns:
- an int representing the allowed tolerance for clicking in pixels
- Since:
- 0.9
-
isStayActiveAfterExecution
public boolean isStayActiveAfterExecution(IConnectionCreationToolEntry connectionCreationToolEntry)
Defines if the tool created for the givenIConnectionCreationToolEntry
stays active after a connection has been created or not. The default behavior in the GEF framework istrue
, which is also the return value of this default implementation.- Specified by:
isStayActiveAfterExecution
in interfaceIToolBehaviorProvider
- Returns:
true
in case the tool should stay active after execution,false
otherwise.- Since:
- 0.11
-
getDirectEditingInvalidNotificationTitle
public java.lang.String getDirectEditingInvalidNotificationTitle(IDirectEditingFeature feature, IDirectEditingContext context)
Returns the title of the popup that appears when a user provides an invalid input for direct editing. This default implementation returns 'Can not edit value'.- Specified by:
getDirectEditingInvalidNotificationTitle
in interfaceIToolBehaviorProvider
- Parameters:
feature
- TheIDirectEditingFeature
that was invokedcontext
- TheIDirectEditingContext
that was used.- Returns:
- A
String
representing the title of the popup to present to the user. - Since:
- 0.15
-
-