Search this API

y.view
Class CreateChildEdgeMode

java.lang.Object
  extended by y.view.ViewMode
      extended by y.view.CreateChildEdgeMode
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener, javax.swing.event.MouseInputListener

public class CreateChildEdgeMode
extends ViewMode

This view mode is responsible for creating children in a tree like fashion.

A child is created with this mode in the following way:

The default edge realizer of the Graph2D will be assigned to the newly created edge.

The default node realizer of the Graph2D will be assigned to the newly created child node.

It is possible to allow and forbid the creation of bends in this mode.

This mode provides some hook methods that can be overridden in order to influence the behaviour of this mode.

 

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
CreateChildEdgeMode()
          Instantiates a new CreateEdgeMode.
CreateChildEdgeMode(ViewContainer view)
          Instantiates a new CreateEdgeMode for a given ViewContainer
 
Method Summary
protected  boolean acceptBend(Node start, 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.
 void allowBendCreation(boolean b)
          Allows or disallows bend 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  void childCreated(Node child)
          This method gets called after the new child node was completely created by this mode.
protected  NodeRealizer createChildNodeRealizer()
          Factory method, which creates the NodeRealizer which is used for the new child node.
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.
 boolean doAllowBendCreation()
          Returns true iff the creation of bends 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.
 void init()
          This method is called in a child mode when it gets installed in another mode.
 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.
 void setCancelKeyCode(int cancelKeyCode)
          Sets the virtual key code as defined in KeyEvent which cancels the edge creation.
protected  void sourceNodeDeclined(Node target, double x, double y)
          This method gets called in case method acceptSourceNode(Node, double, double) returns false.
 
Methods inherited from class y.view.ViewMode
activate, addPropertyChangeListener, addPropertyChangeListener, deactivateChild, firePropertyChange, firePropertyChange, firePropertyChange, getChild, getGraph2D, getGridX, getGridY, getHitInfo, getHitInfo, getLastClickEvent, getLastDragEvent, getLastHitInfo, getLastMoveEvent, getLastPressEvent, getLastReleaseEvent, getModifierMask, getName, getParent, isActive, isEditing, isGrabFocusEnabled, isGridMode, isModifierPressed, mouseClicked, mouseClicked, mouseDragged, mouseDraggedMiddle, mouseDraggedRight, mouseEntered, mouseExited, mouseMoved, mousePressed, mousePressedMiddle, mousePressedRight, mouseReleased, mouseReleased, mouseReleasedMiddle, mouseShiftPressedMiddle, mouseShiftPressedRight, mouseShiftReleasedMiddle, mouseShiftReleasedRight, removePropertyChangeListener, removePropertyChangeListener, setActiveView, setChild, setChild, setEditing, setGrabFocusEnabled, setGridMode, setLastHitInfo, setModifierMask, setName, setParent, translateX, translateY
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CreateChildEdgeMode

public CreateChildEdgeMode(ViewContainer view)
Instantiates a new CreateEdgeMode for a given ViewContainer


CreateChildEdgeMode

public CreateChildEdgeMode()
Instantiates a new CreateEdgeMode.

Method Detail

init

public void init()
Description copied from class: ViewMode
This method is called in a child mode when it gets installed in another mode.

Overrides:
init in class ViewMode
See Also:
ViewMode.setChild(ViewMode,MouseEvent,MouseEvent)

allowBendCreation

public void allowBendCreation(boolean b)
Allows or disallows bend creation. By default bend creation is allowed.


doAllowBendCreation

public boolean doAllowBendCreation()
Returns true iff the creation of bends should be allowed. This mode will act according to the return value of this method.


mousePressedLeft

public void mousePressedLeft(double x,
                             double y)
Initiates the creation of an edge.

Overrides:
mousePressedLeft in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

mouseShiftPressedLeft

public void mouseShiftPressedLeft(double x,
                                  double y)
Initiates the creation of an edge. By pressing shift a source port for that edge at the given location will be assigned.

Overrides:
mouseShiftPressedLeft in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

createChildNodeRealizer

protected NodeRealizer createChildNodeRealizer()
Factory method, which creates the NodeRealizer which is used for the new child node. By default, this method returns getGraph2D().getDefaultNodeRealizer().createCopy(); which is labeled Integer.toString(getGraph2D().N() + 1).


createDummyEdgeRealizer

protected EdgeRealizer createDummyEdgeRealizer()
Factory method, which creates the dummy EdgeRealizer which is used during the edge creation process. By default, this method returns getGraph2D().getDefaultEdgeRealizer().createCopy();


getDummyEdgeRealizer

protected EdgeRealizer getDummyEdgeRealizer()
Returns the dummy EdgeRealizer which is currently in use.

Throws:
java.lang.IllegalStateException - if the edge has not yet been created

createDummySourceNodeRealizer

protected NodeRealizer createDummySourceNodeRealizer(NodeRealizer currentRealizer)
Creates a dummy node for the target node of the dummy edge By default, this method returns currentRealizer.createCopy();


createDummyTargetNodeRealizer

protected NodeRealizer createDummyTargetNodeRealizer(double x,
                                                     double y)
Creates a dummy node for the other end of the edge. This implementation returns a zero width/ zero height ShapeNodeRealizer

Parameters:
x - the initial x coordinate
y - the initial y coordinate
Returns:
the created dummy target realizer

getDummyTargetNodeRealizer

protected NodeRealizer getDummyTargetNodeRealizer()
Returns the currently used dummy node realizer for the target node of the dummy edge.

Returns:
the realizer
Throws:
java.lang.IllegalStateException - if the edge has not yet been created

getDummySourceNodeRealizer

protected NodeRealizer getDummySourceNodeRealizer()
Returns the currently used dummy node realizer for the source node of the dummy edge.

Returns:
the realizer
Throws:
java.lang.IllegalStateException - if the edge has not yet been created

mouseReleasedRight

public void mouseReleasedRight(double x,
                               double y)
Removes a bend if possible. otherwise cancels edge creation.

Overrides:
mouseReleasedRight in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

mouseShiftReleasedLeft

public 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. By pressing shift a target port at the given coordinate will be assigned to the edge.

Overrides:
mouseShiftReleasedLeft in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

mouseReleasedLeft

public 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.

Overrides:
mouseReleasedLeft in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

acceptBend

protected boolean acceptBend(Node start,
                             double x,
                             double y)
Whether or not to accept the creation of a bend.

Parameters:
start - the node from where edge creation started
x - the x-coordinate of the current location
y - the y-coordinate of the current location

mouseDraggedLeft

public void mouseDraggedLeft(double x,
                             double y)
Moves the dummy end of the edge while the actual target node is unknown.

Overrides:
mouseDraggedLeft in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

mouseMoved

public void mouseMoved(double x,
                       double y)
Moves the dummy end of the edge while the actual target node is unknown.

Overrides:
mouseMoved in class ViewMode
Parameters:
x - the x-coordinate of the mouse event in world coordinates.
y - the y-coordinate of the mouse event in world coordinates.

reactivateParent

public void reactivateParent()
Description copied from class: ViewMode
The parent of this ViewMode is reactivated and this ViewMode is deactivated.

Overrides:
reactivateParent in class ViewMode

edgeMoved

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. By default this method does nothing.

Parameters:
x - the x-coordinate of the end point
y - the y-coordinate of the end point

edgeCreated

protected void edgeCreated(Edge edge)
This method gets called after a new edge was completely created by this mode. It serves as a hook to perform some actions after this event has happened. By default this method does nothing.


childCreated

protected void childCreated(Node child)
This method gets called after the new child node was completely created by this mode. It serves as a hook to perform some actions after this event has happened. By default this method does nothing.


cancelEdgeCreation

protected void cancelEdgeCreation()
Calling this method cancels edge creation properly. After doing some cleanup it reactivates the parent if present. This method is meant to be called from within the targetNodeDeclined method in order to cancel edge creation properly.


acceptSourceNode

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. 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.


sourceNodeDeclined

protected void sourceNodeDeclined(Node target,
                                  double x,
                                  double y)
This method gets called in case method acceptSourceNode(Node, double, double) returns false. This method is meant as a hook to perform some post source declination code.

By default this method does nothing.


getCancelKeyCode

public int getCancelKeyCode()
Sets the virtual key code as defined in KeyEvent which cancels the edge creation. Negative values disable this feature. Default is KeyEvent.VK_ESCAPE.


setCancelKeyCode

public void setCancelKeyCode(int cancelKeyCode)
Sets the virtual key code as defined in KeyEvent which cancels the edge creation. Negative values disable this feature.


cancelEditing

public void cancelEditing()
                   throws java.lang.UnsupportedOperationException
Description copied from class: ViewMode
This can be used to cleanly exit an edit that is currently in progress.
The implementation and interpretation of "canceling" is left to subclasses. This implementation does nothing but calls setEditing(false) if ViewMode.isEditing() returns true

Overrides:
cancelEditing in class ViewMode
Throws:
java.lang.UnsupportedOperationException - if the editing cannot be canceled for any reason.

© Copyright 2000-2022,
yWorks GmbH.
All rights reserved.