|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objecty.view.ViewMode
y.view.CreateEdgeMode
public class CreateEdgeMode
This view mode is responsible for creating edges.
An edge is created with this mode in the following way:
cancel key).default edge realizer of the Graph2D
will be assigned to the newly created edge.
This mode provides several options, e.g.:
orthogonal edge pathsThis mode provides some hook methods that are meant to be overridden in order to influence its behavior.
| Field Summary |
|---|
| Fields inherited from class y.view.ViewMode |
|---|
ACTIVE_PROPERTY, ACTIVE_VIEW_PROPERTY, CHILD_MODE_PROPERTY, EDITING_PROPERTY, GRAB_FOCUS_ENABLED_PROPERTY, lastClickEvent, lastDragEvent, lastMoveEvent, lastPressEvent, lastReleaseEvent, MODIFIER_MASK_PROPERTY, NAME_PROPERTY, originalX, originalY, PARENT_MODE_PROPERTY, view |
| Constructor Summary | |
|---|---|
CreateEdgeMode()
Instantiates a new CreateEdgeMode. |
|
CreateEdgeMode(ViewContainer view)
Instantiates a new CreateEdgeMode for a given ViewContainer |
|
| Method Summary | |
|---|---|
protected boolean |
acceptBend(Node start,
Node hitNode,
double x,
double y)
Whether or not to accept the creation of a bend. |
protected boolean |
acceptSourceNode(Node source,
double x,
double y)
This method gets called right before someone wants to start creating an edge at location (x,y)
starting from node source. |
protected boolean |
acceptTargetNode(Node target,
double x,
double y)
This method gets called right before someone wants to complete creating an edge at location (x,y)
by connecting to node target. |
protected void |
addBend(EdgeRealizer realizer,
double x,
double y)
Invoked when the bend creation mouse gesture occurred and bend creation is allowed. |
void |
allowBendCreation(boolean b)
Allows or disallows bend creation. |
void |
allowSelfloopCreation(boolean b)
Allows or disallows self-loop creation. |
protected void |
cancelEdgeCreation()
Calling this method cancels edge creation properly. |
void |
cancelEditing()
This can be used to cleanly exit an edit that is currently in progress. |
protected EdgeRealizer |
createDummyEdgeRealizer()
Factory method, which creates the dummy EdgeRealizer which is used during the edge creation process. |
protected NodeRealizer |
createDummySourceNodeRealizer(NodeRealizer currentRealizer)
Creates a dummy node for the target node of the dummy edge By default, this method returns currentRealizer.createCopy(); |
protected NodeRealizer |
createDummyTargetNodeRealizer(double x,
double y)
Creates a dummy node for the other end of the edge. |
protected Edge |
createEdge(Graph2D graph,
Node startNode,
Node targetNode,
EdgeRealizer realizer)
Callback method that is responsible for the actual creation of the edge. |
protected HitInfo |
createTargetNodeHitInfo(double x,
double y)
Performs a hit test for a target node at the specified location. |
protected Node |
determineHitNode(Graph2D graph,
double x,
double y)
Callback used during the dragging to determine the target hit node |
boolean |
doAllowBendCreation()
Returns true iff the creation of bends should be allowed. |
boolean |
doAllowSelfloopCreation()
Returns true iff the creation of self-loops should be allowed. |
protected void |
edgeCreated(Edge edge)
This method gets called after a new edge was completely created by this mode. |
protected void |
edgeMoved(double x,
double y)
This method gets called whenever the dummy end point of the to be created edge has changed it's location. |
int |
getCancelKeyCode()
Sets the virtual key code as defined in KeyEvent
which cancels the edge creation. |
protected EdgeRealizer |
getDummyEdgeRealizer()
Returns the dummy EdgeRealizer which is currently in use. |
protected NodeRealizer |
getDummySourceNodeRealizer()
Returns the currently used dummy node realizer for the source node of the dummy edge. |
protected NodeRealizer |
getDummyTargetNodeRealizer()
Returns the currently used dummy node realizer for the target node of the dummy edge. |
protected YPoint |
getSourcePortOffset(boolean modifierPressed,
Node sourceNode,
double dx,
double dy)
Invoked when the edge is about to be created. |
protected YPoint |
getTargetPortOffset(boolean modifierPressed,
Node targetNode,
double dx,
double dy)
Invoked when the edge has been created. |
void |
init()
This method is called in a child mode when it gets installed in another mode. |
boolean |
isEarlyEdgeCancelingEnabled()
Determines whether the edge creation should be canceled if the user released the mouse inside the source node before even leaving it once. |
boolean |
isOrthogonalEdgeCreation()
Determines whether this mode creates orthogonally routed edges. |
void |
mouseDraggedLeft(double x,
double y)
Moves the dummy end of the edge while the actual target node is unknown. |
void |
mouseMoved(double x,
double y)
Moves the dummy end of the edge while the actual target node is unknown. |
void |
mousePressedLeft(double x,
double y)
Initiates the creation of an edge. |
void |
mouseReleasedLeft(double x,
double y)
If a node was hit at the given coordinates, that node will be used as target node for the newly created edge. |
void |
mouseReleasedRight(double x,
double y)
Removes a bend if possible. otherwise cancels edge creation. |
void |
mouseShiftPressedLeft(double x,
double y)
Initiates the creation of an edge. |
void |
mouseShiftReleasedLeft(double x,
double y)
If a node was hit at the given coordinates, that node will be used as target node for the newly created edge. |
void |
reactivateParent()
The parent of this ViewMode is reactivated and this ViewMode is deactivated. |
protected void |
removeBend(EdgeRealizer edgeRealizer,
int index)
Callback used by mouseReleasedRight(double, double)
that actually removes the given bend from the edge. |
void |
setCancelKeyCode(int cancelKeyCode)
Sets the virtual key code as defined in KeyEvent
which cancels the edge creation. |
void |
setEarlyEdgeCancelingEnabled(boolean earlyEdgeCancelingEnabled)
Determines whether the edge creation should be canceled if the user released the mouse inside the source node before even leaving it once. |
void |
setOrthogonalEdgeCreation(boolean orthogonalEdgeCreation)
Determines whether this mode should create orthogonally routed edges, only. |
protected void |
sourceNodeDeclined(Node source,
double x,
double y)
This method gets called in case method acceptSourceNode(Node, double, double)
returns false. |
protected void |
targetNodeDeclined(Node target,
double x,
double y)
This method gets called in case method acceptTargetNode(Node, double, double)
returns false. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public CreateEdgeMode(ViewContainer view)
public CreateEdgeMode()
| Method Detail |
|---|
public void init()
ViewMode
init in class ViewModeViewMode.setChild(ViewMode,MouseEvent,MouseEvent)public void allowBendCreation(boolean b)
public boolean doAllowBendCreation()
true iff the creation of bends should be allowed.
This mode will act according to the return value of this method.
public void allowSelfloopCreation(boolean b)
public boolean doAllowSelfloopCreation()
true iff the creation of self-loops should be allowed.
This mode will act according to the return value of this method.
public void mousePressedLeft(double x,
double y)
mousePressedLeft in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
public void mouseShiftPressedLeft(double x,
double y)
mouseShiftPressedLeft in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
protected YPoint getSourcePortOffset(boolean modifierPressed,
Node sourceNode,
double dx,
double dy)
YPoint.ORIGIN if the modifier is
false, otherwise the ViewMode.getGridX(double) and ViewMode.getGridY(double) methods
are used to snap to the next available grid point.
modifierPressed - indicates if the user wants to have an alternative port assignmentsourceNode - the node which will be the source of the newly created edgedx - the x offset were the click occurred on the nodedy - the y offset were the click occurred on the node
protected EdgeRealizer createDummyEdgeRealizer()
getGraph2D().getDefaultEdgeRealizer().createCopy();
protected EdgeRealizer getDummyEdgeRealizer()
IllegalStateException - if the edge has not yet been createdprotected NodeRealizer createDummySourceNodeRealizer(NodeRealizer currentRealizer)
currentRealizer.createCopy();
protected NodeRealizer createDummyTargetNodeRealizer(double x,
double y)
x - the initial x coordinatey - the initial y coordinate
protected NodeRealizer getDummyTargetNodeRealizer()
IllegalStateException - if the edge has not yet been created
protected NodeRealizer getDummySourceNodeRealizer()
IllegalStateException - if the edge has not yet been created
public void mouseReleasedRight(double x,
double y)
mouseReleasedRight in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
protected void removeBend(EdgeRealizer edgeRealizer,
int index)
mouseReleasedRight(double, double)
that actually removes the given bend from the edge.
edgeRealizer - the dummy realizer that is used for displaying the edge during the creation.index - the index of the bend to remove.
public void mouseShiftReleasedLeft(double x,
double y)
mouseShiftReleasedLeft in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
public void mouseReleasedLeft(double x,
double y)
mouseReleasedLeft in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
protected HitInfo createTargetNodeHitInfo(double x,
double y)
protected void addBend(EdgeRealizer realizer,
double x,
double y)
realizer - The realizer for the edge that is being created.x - The x coordinate where the mouse gesture occurred.y - The y coordinate where the mouse gesture occurred.
protected YPoint getTargetPortOffset(boolean modifierPressed,
Node targetNode,
double dx,
double dy)
YPoint.ORIGIN if the modifier is
false, otherwise the ViewMode.getGridX(double) and ViewMode.getGridY(double) methods
are used to snap to the next available grid point.
modifierPressed - indicates if the user wants to have an alternative port assignmenttargetNode - the node which is the target of the newly created edgedx - the x offset where the click occurred on the nodedy - the y offset where the click occurred on the node
protected Edge createEdge(Graph2D graph,
Node startNode,
Node targetNode,
EdgeRealizer realizer)
graph.createEdge(startNode, targetNode, realizer)
graph - the graph to create the edge instartNode - the start node of the edgetargetNode - the target node of the edgerealizer - the realizer to use (may be replaced or altered by subclass implementations)
null if no edge should be created
protected boolean acceptBend(Node start,
Node hitNode,
double x,
double y)
start - the node from where edge creation startedhitNode - the node that was hit at the given locationx - the x-coordinate of the current locationy - the y-coordinate of the current location
public void mouseDraggedLeft(double x,
double y)
mouseDraggedLeft in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.
protected Node determineHitNode(Graph2D graph,
double x,
double y)
graph - the graph that can be used for hit-testingx - the x position of the mouse (not yet snapped to grid coordinates)y - the y position of the mouse (not yet snapped to grid coordinates)
public void mouseMoved(double x,
double y)
mouseMoved in class ViewModex - the x-coordinate of the mouse event in world coordinates.y - the y-coordinate of the mouse event in world coordinates.public void reactivateParent()
ViewMode
reactivateParent in class ViewModepublic boolean isOrthogonalEdgeCreation()
false.
public void setOrthogonalEdgeCreation(boolean orthogonalEdgeCreation)
false.
orthogonalEdgeCreation - whether to enable orthogonal edge creation.public boolean isEarlyEdgeCancelingEnabled()
true.
public void setEarlyEdgeCancelingEnabled(boolean earlyEdgeCancelingEnabled)
true.
earlyEdgeCancelingEnabled - whether creation should be canceled early.
protected void edgeMoved(double x,
double y)
x - the x-coordinate of the end pointy - the y-coordinate of the end pointprotected void edgeCreated(Edge edge)
protected void cancelEdgeCreation()
protected boolean acceptSourceNode(Node source,
double x,
double y)
(x,y)
starting from node source.
The return value of this method determines whether or not
creating an edge from that node will actually be initiated.
By default this method returns true.
Subclasses may want to override this feature to forbid
edge creation starting from certain nodes.
protected void targetNodeDeclined(Node target,
double x,
double y)
acceptTargetNode(Node, double, double)
returns false. This method is meant as a hook
to perform some post target declination code.
By default this method does nothing.
protected boolean acceptTargetNode(Node target,
double x,
double y)
(x,y)
by connecting to node target.
The return value of this method determines whether or not
the creation of an edge to that node will be performed.
By default this method returns true.
Subclasses may want to override this feature to forbid
connecting an edge to a certain node.
protected void sourceNodeDeclined(Node source,
double x,
double y)
acceptSourceNode(Node, double, double)
returns false. This method is meant as a hook
to perform some post source declination code.
By default this method simply calls reactivateParent() and therefor
CreateEdgeMode is being left, when the node is not accepted as source node.
public int getCancelKeyCode()
KeyEvent
which cancels the edge creation. Negative values disable this feature.
Default is KeyEvent.VK_ESCAPE.
public void setCancelKeyCode(int cancelKeyCode)
KeyEvent
which cancels the edge creation. Negative values disable this feature.
public void cancelEditing()
throws UnsupportedOperationException
ViewModesetEditing(false) if
ViewMode.isEditing() returns true
cancelEditing in class ViewModeUnsupportedOperationException - if the editing cannot be canceled
for any reason.
|
© Copyright 2000-2008, yWorks GmbH. All rights reserved. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||