org.eclipse.gef
Interface EditPolicy
-
All Known Implementing Classes:
-
AbstractEditPolicy
- 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 to
getCommand(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
|
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. |
COMPONENT_ROLE
public 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
public static final java.lang.String CONNECTION_ENDPOINTS_ROLE
- The key used to install a connection endpoint EditPolicy. A connection
endpoint EditPolicy is usually a
SelectionHandlesEditPolicy
subclass. Besides rendering
selection by displaying Handle
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 provide
Commands
to perform the move.
-
See Also:
-
Constant Field Values
CONNECTION_BENDPOINTS_ROLE
public 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 with
endpoints
, bendpoint EditPolicies are porbably
SelectionHandlesEditPolicy
.
-
See Also:
-
Constant Field Values
CONNECTION_ROLE
public static final java.lang.String CONNECTION_ROLE
- The key used to install a connection EditPolicy. The behavior of a
ConnectionEditPart
may be implemented in its component EditPolicy,
-
See Also:
-
Constant Field Values
CONTAINER_ROLE
public static final java.lang.String CONTAINER_ROLE
- The key used to install a container EditPolicy.
-
See Also:
-
Constant Field Values
DIRECT_EDIT_ROLE
public 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
public static final java.lang.String GRAPHICAL_NODE_ROLE
- The key used to install a graphical node EditPolicy.
-
See Also:
-
Constant Field Values
LAYOUT_ROLE
public static final java.lang.String LAYOUT_ROLE
- The key used to install a layout EditPolicy.
-
See Also:
-
Constant Field Values
NODE_ROLE
public static final java.lang.String NODE_ROLE
- The key used to install a node EditPolicy.
-
See Also:
-
Constant Field Values
PRIMARY_DRAG_ROLE
public 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
public 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
public static final java.lang.String TREE_CONTAINER_ROLE
- The key used to install a tree container EditPolicy.
-
See Also:
-
Constant Field Values
activate
public void activate()
- Activates this EditPolicy. The EditPolicy might need to hook listeners. These
listeners should be unhooked in
deactivate()
. 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.
-
-
See Also:
-
EditPart.activate()
,
deactivate()
,
EditPart.installEditPolicy(Object, EditPolicy)
deactivate
public void deactivate()
- Deactivates the EditPolicy, the inverse of
activate()
. 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.
-
-
See Also:
-
EditPart.deactivate()
,
activate()
,
EditPart.removeEditPolicy(Object)
eraseSourceFeedback
public void eraseSourceFeedback(
Request request)
- Erases source feedback based on the given
Request
. 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
public void eraseTargetFeedback(
Request request)
- Erases target feedback based on the given
Request
. 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
public
Command getCommand(
Request request)
- Returns the
Command
contribution for the given Request
, or
null
. null
is treated as a no-op by the caller, or an empty
contribution. The EditPolicy must return an
UnexecutableCommand
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 a
CompoundCommand
.
-
-
Parameters:
-
request
- the Request
-
Returns:
-
null
or a Command contribution
getHost
public
EditPart getHost()
-
-
Returns:
- the host EditPart on which this policy is installed.
getTargetEditPart
public
EditPart getTargetEditPart(
Request request)
- Returns
null
or the appropriate EditPart
for the specified
Request
. In general, this EditPolicy will return its host EditPart
if it understands the Request. Otherwise, it will return null
.
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 target EditPart
setHost
public void setHost(
EditPart editpart)
- Sets the host in which this EditPolicy is installed.
-
-
Parameters:
-
editpart
- the host EditPart
showSourceFeedback
public void showSourceFeedback(
Request request)
- Shows or updates source feedback for the specified
Request
. 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
public void showTargetFeedback(
Request request)
- Shows or updates target feedback for the specified
Request
. 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
public boolean understandsRequest(
Request request)
- Returns
true
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
returns true
if any of its
EditPolicies returns true
. 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)
Copyright (c) IBM Corp. and others 2000, 2007. All Rights Reserved.