org.argouml.uml.diagram.ui
Class ModeCreateEdgeAndNode

java.lang.Object
  |
  +--org.tigris.gef.base.ModeImpl
        |
        +--org.tigris.gef.base.FigModifyingModeImpl
              |
              +--org.tigris.gef.base.ModeCreate
                    |
                    +--org.argouml.uml.diagram.ui.ModeCreateEdgeAndNode
All Implemented Interfaces:
java.util.EventListener, org.tigris.gef.base.FigModifyingMode, java.awt.event.KeyListener, org.tigris.gef.base.Mode, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable

public class ModeCreateEdgeAndNode
extends org.tigris.gef.base.ModeCreate

A Mode to interpret user input while creating an edge. Basically mouse down starts creating an edge from a source port Fig, mouse motion paints a rubberband line, mouse up finds the destination port and finishes creating the edge and makes an FigEdge and sends it to the back of the Layer. The argument "edgeClass" determines the type if edge to suggest that the Editor's GraphModel construct. The GraphModel is responsible for acutally making an edge in the underlying model and connecting it to other model elements.

See Also:
Serialized Form

Field Summary
protected  org.tigris.gef.presentation.FigEdge _fe
           
protected  org.tigris.gef.presentation.FigNode _fn
           
protected  org.tigris.gef.presentation.Handle _handle
          The number of points added so far.
protected  boolean _postProcessEdge
           
protected static org.apache.log4j.Category cat
           
static int Drags_To_Existing
           
static int Drags_To_New
           
 
Fields inherited from class org.tigris.gef.base.ModeCreate
_defaultHeight, _defaultWidth, _newItem, anchorX, anchorY
 
Fields inherited from class org.tigris.gef.base.FigModifyingModeImpl
editor
 
Fields inherited from class org.tigris.gef.base.ModeImpl
_args
 
Constructor Summary
ModeCreateEdgeAndNode()
           
ModeCreateEdgeAndNode(org.tigris.gef.base.Editor ed, java.lang.Class edgeClass, java.lang.Class nodeClass, boolean post)
           
 
Method Summary
 org.tigris.gef.presentation.Fig createNewItem(java.awt.event.MouseEvent me, int snapX, int snapY)
          Create the new item that will be drawn.
 void done()
           
 java.lang.String instructions()
           
 void keyTyped(java.awt.event.KeyEvent ke)
           
 void mouseDragged(java.awt.event.MouseEvent me)
           
 void mouseMoved(java.awt.event.MouseEvent me)
           
 void mousePressed(java.awt.event.MouseEvent me)
          On mousePressed determine what port the user is dragging from.
 void mouseReleased(java.awt.event.MouseEvent me)
          On mouseReleased, find the destination port, ask the GraphModel to connect the two ports.
 void postProcessEdge()
           
 void setup(org.tigris.gef.presentation.FigNode fn, java.lang.Object port, int x, int y, boolean reverse)
           
 
Methods inherited from class org.tigris.gef.base.ModeCreate
creationDrag, getInitialCursor, keyPressed, paint
 
Methods inherited from class org.tigris.gef.base.FigModifyingModeImpl
getEditor, isFigEnclosedIn, print, setCursor, setEditor
 
Methods inherited from class org.tigris.gef.base.ModeImpl
canExit, getArg, getArgs, init, keyReleased, mouseClicked, mouseEntered, mouseExited, setArg, setArgs, start
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.tigris.gef.base.Mode
canExit, getArg, getArgs, init, setArg, setArgs, start
 

Field Detail

cat

protected static org.apache.log4j.Category cat

Drags_To_Existing

public static int Drags_To_Existing

Drags_To_New

public static int Drags_To_New

_handle

protected org.tigris.gef.presentation.Handle _handle
The number of points added so far.

_fn

protected org.tigris.gef.presentation.FigNode _fn

_fe

protected org.tigris.gef.presentation.FigEdge _fe

_postProcessEdge

protected boolean _postProcessEdge
Constructor Detail

ModeCreateEdgeAndNode

public ModeCreateEdgeAndNode()

ModeCreateEdgeAndNode

public ModeCreateEdgeAndNode(org.tigris.gef.base.Editor ed,
                             java.lang.Class edgeClass,
                             java.lang.Class nodeClass,
                             boolean post)
Method Detail

setup

public void setup(org.tigris.gef.presentation.FigNode fn,
                  java.lang.Object port,
                  int x,
                  int y,
                  boolean reverse)

instructions

public java.lang.String instructions()
Overrides:
instructions in class org.tigris.gef.base.FigModifyingModeImpl

createNewItem

public org.tigris.gef.presentation.Fig createNewItem(java.awt.event.MouseEvent me,
                                                     int snapX,
                                                     int snapY)
Create the new item that will be drawn. In this case I would rather create the FigEdge when I am done. Here I just create a rubberband FigLine to show during dragging.
Overrides:
createNewItem in class org.tigris.gef.base.ModeCreate

done

public void done()
Overrides:
done in class org.tigris.gef.base.FigModifyingModeImpl

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
On mousePressed determine what port the user is dragging from. The mousePressed event is sent via ModeSelect.
Overrides:
mousePressed in class org.tigris.gef.base.ModeCreate

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent me)
On mouseReleased, find the destination port, ask the GraphModel to connect the two ports. If that connection is allowed, then construct a new FigEdge and add it to the Layer and send it to the back.
Overrides:
mouseReleased in class org.tigris.gef.base.ModeCreate

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent me)
Overrides:
mouseMoved in class org.tigris.gef.base.ModeImpl

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent me)
Overrides:
mouseDragged in class org.tigris.gef.base.ModeCreate

keyTyped

public void keyTyped(java.awt.event.KeyEvent ke)
Overrides:
keyTyped in class org.tigris.gef.base.ModeImpl

postProcessEdge

public void postProcessEdge()


ArgoUML (c) 1996-2002
ArgoUML Project Home
ArgoUML Cookbook