Interface EditPolicy
-
- All Known Implementing Classes:
AbstractEditPolicy
,AbstractTreeContainerEditPolicy
,BendpointEditPolicy
,ComponentEditPolicy
,ConnectionEditPolicy
,ConnectionEndpointEditPolicy
,ConstrainedLayoutEditPolicy
,ContainerEditPolicy
,DirectEditPolicy
,FlowLayoutEditPolicy
,GraphicalEditPolicy
,GraphicalNodeEditPolicy
,LayoutEditPolicy
,NonResizableEditPolicy
,OrderedLayoutEditPolicy
,ResizableEditPolicy
,RootComponentEditPolicy
,ScrollableSelectionFeedbackEditPolicy
,SelectionEditPolicy
,SelectionHandlesEditPolicy
,SnapFeedbackPolicy
,TreeContainerEditPolicy
,XYLayoutEditPolicy
public interface EditPolicy
A pluggable contribution implementing a portion of an EditPart's behavior. EditPolicies contribute to the overall editing behavior of an EditPart. Editing behavior is defined as one or more of the following:- Command Creation - Returning a
Command
in response togetCommand(Request)
- Feedback Management - Showing/erasing source and/or target feedback in response to Requests.
- Delegation/Forwarding - Collecting contributions from other
EditParts (and therefore their EditPolicies). In response to a given
Request
, an EditPolicy may create a derived Request and forward it to other EditParts. For example, during the deletion of a composite EditPart, that composite may consult its children for contributions to the delete command. Then, if the children have any additional work to do, they will return additional comands to be executed.
EditPolicies should determine an EditPart's editing capabilities. It is possible to implement an EditPart such that it handles all editing responsibility. However, it is much more flexible and object-oriented to use EditPolicies. Using policies, you can pick and choose the editing behavior for an EditPart without being bound to its class hierarchy. Code reuse is increased, and code management is easier.
IMPORTANT: This interface is not intended to be implemented by clients. Clients should inherit from
AbstractEditPolicy
. New methods may be added in the future.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
COMPONENT_ROLE
The key used to install a component EditPolicy.static java.lang.String
CONNECTION_BENDPOINTS_ROLE
The key used to install a bendpoint EditPolicy.static java.lang.String
CONNECTION_ENDPOINTS_ROLE
The key used to install a connection endpoint EditPolicy.static java.lang.String
CONNECTION_ROLE
The key used to install a connection EditPolicy.static java.lang.String
CONTAINER_ROLE
The key used to install a container EditPolicy.static java.lang.String
DIRECT_EDIT_ROLE
The key used to install a direct edit EditPolicy.static java.lang.String
GRAPHICAL_NODE_ROLE
The key used to install a graphical node EditPolicy.static java.lang.String
LAYOUT_ROLE
The key used to install a layout EditPolicy.static java.lang.String
NODE_ROLE
The key used to install a node EditPolicy.static java.lang.String
PRIMARY_DRAG_ROLE
The key used to install a primary drag EditPolicy.static java.lang.String
SELECTION_FEEDBACK_ROLE
The key used to install a selection feedback EditPolicy.static java.lang.String
TREE_CONTAINER_ROLE
The key used to install a tree container EditPolicy.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
activate()
Activates this EditPolicy.void
deactivate()
Deactivates the EditPolicy, the inverse ofactivate()
.void
eraseSourceFeedback(Request request)
Erases source feedback based on the givenRequest
.void
eraseTargetFeedback(Request request)
Erases target feedback based on the givenRequest
.Command
getCommand(Request request)
Returns theCommand
contribution for the givenRequest
, ornull
.EditPart
getHost()
EditPart
getTargetEditPart(Request request)
Returnsnull
or the appropriateEditPart
for the specifiedRequest
.void
setHost(EditPart editpart)
Sets the host in which this EditPolicy is installed.void
showSourceFeedback(Request request)
Shows or updates source feedback for the specifiedRequest
.void
showTargetFeedback(Request request)
Shows or updates target feedback for the specifiedRequest
.boolean
understandsRequest(Request request)
Returnstrue
if this EditPolicy understand the specified request.
-
-
-
Field Detail
-
COMPONENT_ROLE
static final java.lang.String COMPONENT_ROLE
The key used to install a component EditPolicy. A component is defined as anything in the model. This EditPolicy should handle the fundamental operations that do not fit under any other EditPolicy role. For example, delete is a fundamental operation. Generally the component EditPolicy knows only about the model, and can be used in any type of EditPartViewer.- See Also:
- Constant Field Values
-
CONNECTION_ENDPOINTS_ROLE
static final java.lang.String CONNECTION_ENDPOINTS_ROLE
The key used to install a connection endpoint EditPolicy. A connection endpoint EditPolicy is usually aSelectionHandlesEditPolicy
subclass. Besides rendering selection by displayingHandle
s at then ends of the connection, the EditPolicy also understands how to move the endpoints of the connection. If the endpoints are moveable, the EditPolicy will show feedback and provideCommands
to perform the move.- See Also:
- Constant Field Values
-
CONNECTION_BENDPOINTS_ROLE
static final java.lang.String CONNECTION_BENDPOINTS_ROLE
The key used to install a bendpoint EditPolicy. A bendpoint EditPolicy is an optional EditPolicy for connections that are visibile. As withendpoints
, bendpoint EditPolicies are porbablySelectionHandlesEditPolicy
.- See Also:
- Constant Field Values
-
CONNECTION_ROLE
static final java.lang.String CONNECTION_ROLE
The key used to install a connection EditPolicy. The behavior of aConnectionEditPart
may be implemented in its component EditPolicy,- See Also:
- Constant Field Values
-
CONTAINER_ROLE
static final java.lang.String CONTAINER_ROLE
The key used to install a container EditPolicy.- See Also:
- Constant Field Values
-
DIRECT_EDIT_ROLE
static final java.lang.String DIRECT_EDIT_ROLE
The key used to install a direct edit EditPolicy.- See Also:
- Constant Field Values
-
GRAPHICAL_NODE_ROLE
static final java.lang.String GRAPHICAL_NODE_ROLE
The key used to install a graphical node EditPolicy.- See Also:
- Constant Field Values
-
LAYOUT_ROLE
static final java.lang.String LAYOUT_ROLE
The key used to install a layout EditPolicy.- See Also:
- Constant Field Values
-
NODE_ROLE
static final java.lang.String NODE_ROLE
The key used to install a node EditPolicy.- See Also:
- Constant Field Values
-
PRIMARY_DRAG_ROLE
static final java.lang.String PRIMARY_DRAG_ROLE
The key used to install a primary drag EditPolicy.- See Also:
- Constant Field Values
-
SELECTION_FEEDBACK_ROLE
static final java.lang.String SELECTION_FEEDBACK_ROLE
The key used to install a selection feedback EditPolicy.- See Also:
- Constant Field Values
-
TREE_CONTAINER_ROLE
static final java.lang.String TREE_CONTAINER_ROLE
The key used to install a tree container EditPolicy.- See Also:
- Constant Field Values
-
-
Method Detail
-
activate
void activate()
Activates this EditPolicy. The EditPolicy might need to hook listeners. These listeners should be unhooked indeactivate()
. The EditPolicy might also contribute feedback/visuals immediately, such as selection handles if the EditPart was selected at the time of activation.Activate is called after the host has been set, and that host has been activated.
-
deactivate
void deactivate()
Deactivates the EditPolicy, the inverse ofactivate()
. Deactivate is called when the host is deactivated, or when the EditPolicy is uninstalled from an active host. Deactivate unhooks any listeners, and removes all feedback.
-
eraseSourceFeedback
void eraseSourceFeedback(Request request)
Erases source feedback based on the givenRequest
. Does nothing if the EditPolicy does not apply to the given Request.This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies.- Parameters:
request
- the Request
-
eraseTargetFeedback
void eraseTargetFeedback(Request request)
Erases target feedback based on the givenRequest
. Does nothing if the EditPolicy does not apply to the given Request.This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies.- Parameters:
request
- the Request
-
getCommand
Command getCommand(Request request)
Returns theCommand
contribution for the givenRequest
, ornull
.null
is treated as a no-op by the caller, or an empty contribution. The EditPolicy must return anUnexecutableCommand
if it wishes to disallow the Request.This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies. The EditPart will combine each EditPolicy's contribution into aCompoundCommand
.- Parameters:
request
- the Request- Returns:
null
or a Command contribution
-
getHost
EditPart getHost()
- Returns:
- the host EditPart on which this policy is installed.
-
getTargetEditPart
EditPart getTargetEditPart(Request request)
Returnsnull
or the appropriateEditPart
for the specifiedRequest
. In general, this EditPolicy will return its host EditPart if it understands the Request. Otherwise, it will returnnull
.This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies. The first non-null
result returned by an EditPolicy is returned by the EditPart.- Parameters:
request
- the Request- Returns:
null
or the appropriate targetEditPart
-
setHost
void setHost(EditPart editpart)
Sets the host in which this EditPolicy is installed.- Parameters:
editpart
- the host EditPart
-
showSourceFeedback
void showSourceFeedback(Request request)
Shows or updates source feedback for the specifiedRequest
. This method may be called repeatedly for the purpose of updating feedback based on changes to the Request.Does nothing if the EditPolicy does not recognize the given Request.
This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies.- Parameters:
request
- the Request
-
showTargetFeedback
void showTargetFeedback(Request request)
Shows or updates target feedback for the specifiedRequest
. This method may be called repeatedly for the purpose of updating feedback based on changes to the Request.Does nothing if the EditPolicy does not recognize the given request.
This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies.- Parameters:
request
- the Request
-
understandsRequest
boolean understandsRequest(Request request)
Returnstrue
if this EditPolicy understand the specified request.This method is declared on
EditPart
, and is redeclared here so that EditPart can delegate its implementation to each of its EditPolicies.EditPart
returnstrue
if any of its EditPolicies returnstrue
. In other words, it performs a logical OR.- Parameters:
request
- the Request- Returns:
- boolean
true
if the EditPolicy understands the specified request - See Also:
EditPart.understandsRequest(Request)
-
-