uk.ac.ic.doc.automed.p2p.gui.graph
Class CommonScreenHandler

java.lang.Object
  extended by java.awt.event.MouseAdapter
      extended by uk.ac.ic.doc.automed.p2p.gui.graph.CommonScreenHandler
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener, java.util.EventListener

public class CommonScreenHandler
extends java.awt.event.MouseAdapter
implements java.awt.event.MouseMotionListener, java.awt.event.KeyListener


Nested Class Summary
(package private)  class CommonScreenHandler.InteractiveState
          represents the state transition of a mouse
 
Field Summary
private  java.util.List activeShapes
           
private  GClipboard clipboard
           
private  boolean ctrlDown
           
private  java.awt.Point currentPoint
           
private  boolean debug
           
private  java.awt.Cursor defaultCursor
           
private  java.awt.Image draggedCursor
           
private  java.awt.Image draggedCursorGUI
           
private  GraphUI gui
           
private  GraphViz gviz
           
private  CommonScreenHandler.InteractiveState istate
           
private  GEventReceiver mouseDragRcv
           
private  java.util.List onClickShapes
           
private  boolean shiftDown
           
private  java.lang.Object source
           
private  java.awt.Toolkit toolKit
           
 
Constructor Summary
CommonScreenHandler(GraphViz gviz, GraphUI gui, GClipboard clipboard)
           
 
Method Summary
protected  void addActiveShape(GShape s)
          Register a shape as an active shape.
protected  void addMouseOverShape(GShape s)
           
 void clear()
           
private  void debugPrint(java.lang.String msg)
           
 GShape getActiveShape()
          Find all the shapes that the user has clicke on and return them
 java.util.Collection getActiveShapes()
          Return all shapes that are currently selected by the user (i.e.
 java.awt.Point getPoint()
           
private  void handleDoubleClicked()
           
private  void handleDragStarted()
           
private  void handleDragStopped()
           
private  void handleInDragging()
           
private  java.lang.Object handleKeywordDrag(GraphUI gui, java.awt.Point p, java.lang.Object draggedObj)
           
private  void handleMoved()
           
private  void handleMultipleShapeSelected()
           
private  void handleOnClick()
          Handle the event when the user clicks on a shape
private  void handleOnShape()
           
private  void handleRightClicked()
           
private  void handleShapeDeselected()
           
private  void handleShapeDrag(GraphUI gui, java.awt.Point p, GShape draggedObj)
           
private  void handleShapeGroupDrag(GraphUI gui, java.awt.Point newPoint, GShape draggedObj, java.util.Collection shapeGrp)
           
private  java.lang.Object invokeShapeGroupOnClick(java.util.Collection activeShapes)
          invoke actions to be performed for a shape group
private  java.lang.Object invokeShapeGroupOnMouseOver(java.util.Collection activeShapes)
          invoke actions to be performed for a shape group
 java.lang.Object invokeShapeOnClick(GShape shape)
          invoke actions to be performed for a shape group
 java.lang.Object invokeShapeOnDoubleClick(GShape shape)
          invoke actions to be performed for a shape group
 GShape invokeShapeOnMouseOver(GShape shape)
          Perform the designated actions on an active shape
 boolean isCtrlDown()
           
 boolean isShiftDown()
           
 void keyPressed(java.awt.event.KeyEvent e)
          Invoked when a key has been pressed.
 void keyReleased(java.awt.event.KeyEvent e)
          Invoked when a key has been released.
 void keyTyped(java.awt.event.KeyEvent e)
          Invoked when a key has been typed.
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void toggleOnClick(GShape shape, boolean state, boolean repaint)
          Update the state of a shape.
private  void updateMouseKeyState(java.awt.event.MouseEvent e)
           
 
Methods inherited from class java.awt.event.MouseAdapter
mouseEntered, mouseExited, mousePressed, mouseWheelMoved
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

private boolean debug

gviz

private GraphViz gviz

gui

private GraphUI gui

mouseDragRcv

private GEventReceiver mouseDragRcv

clipboard

private transient GClipboard clipboard

draggedCursor

private java.awt.Image draggedCursor

draggedCursorGUI

private java.awt.Image draggedCursorGUI

defaultCursor

private java.awt.Cursor defaultCursor

toolKit

private java.awt.Toolkit toolKit

istate

private CommonScreenHandler.InteractiveState istate

activeShapes

private java.util.List activeShapes

onClickShapes

private java.util.List onClickShapes

ctrlDown

private boolean ctrlDown

shiftDown

private boolean shiftDown

source

private java.lang.Object source

currentPoint

private java.awt.Point currentPoint
Constructor Detail

CommonScreenHandler

public CommonScreenHandler(GraphViz gviz,
                           GraphUI gui,
                           GClipboard clipboard)
Method Detail

handleMoved

private void handleMoved()

handleOnShape

private void handleOnShape()

handleOnClick

private void handleOnClick()
Handle the event when the user clicks on a shape


handleMultipleShapeSelected

private void handleMultipleShapeSelected()

handleShapeDeselected

private void handleShapeDeselected()

handleDragStarted

private void handleDragStarted()

handleInDragging

private void handleInDragging()

handleDragStopped

private void handleDragStopped()

handleRightClicked

private void handleRightClicked()

handleDoubleClicked

private void handleDoubleClicked()

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener
Overrides:
mouseClicked in class java.awt.event.MouseAdapter

updateMouseKeyState

private void updateMouseKeyState(java.awt.event.MouseEvent e)

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class java.awt.event.MouseAdapter

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class java.awt.event.MouseAdapter

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Overrides:
mouseMoved in class java.awt.event.MouseAdapter

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Invoked when a key has been typed. See the class description for KeyEvent for a definition of a key typed event.

Specified by:
keyTyped in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Invoked when a key has been pressed. See the class description for KeyEvent for a definition of a key pressed event.

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Invoked when a key has been released. See the class description for KeyEvent for a definition of a key released event.

Specified by:
keyReleased in interface java.awt.event.KeyListener

invokeShapeOnMouseOver

public GShape invokeShapeOnMouseOver(GShape shape)
Perform the designated actions on an active shape


invokeShapeGroupOnMouseOver

private java.lang.Object invokeShapeGroupOnMouseOver(java.util.Collection activeShapes)
invoke actions to be performed for a shape group


invokeShapeOnClick

public java.lang.Object invokeShapeOnClick(GShape shape)
invoke actions to be performed for a shape group


invokeShapeOnDoubleClick

public java.lang.Object invokeShapeOnDoubleClick(GShape shape)
invoke actions to be performed for a shape group


invokeShapeGroupOnClick

private java.lang.Object invokeShapeGroupOnClick(java.util.Collection activeShapes)
invoke actions to be performed for a shape group


handleKeywordDrag

private java.lang.Object handleKeywordDrag(GraphUI gui,
                                           java.awt.Point p,
                                           java.lang.Object draggedObj)

handleShapeDrag

private void handleShapeDrag(GraphUI gui,
                             java.awt.Point p,
                             GShape draggedObj)

handleShapeGroupDrag

private void handleShapeGroupDrag(GraphUI gui,
                                  java.awt.Point newPoint,
                                  GShape draggedObj,
                                  java.util.Collection shapeGrp)

getActiveShape

public GShape getActiveShape()
Find all the shapes that the user has clicke on and return them


getPoint

public java.awt.Point getPoint()

getActiveShapes

public java.util.Collection getActiveShapes()
Return all shapes that are currently selected by the user (i.e. the user has actually clicked on them)


addActiveShape

protected void addActiveShape(GShape s)
Register a shape as an active shape. This is invoked by methods that needed to manually activate one or more shapes as active

Parameters:
s -

addMouseOverShape

protected void addMouseOverShape(GShape s)

toggleOnClick

public void toggleOnClick(GShape shape,
                          boolean state,
                          boolean repaint)
Update the state of a shape.

Parameters:
shape -
state -
repaint -

isShiftDown

public boolean isShiftDown()

isCtrlDown

public boolean isCtrlDown()

clear

public void clear()

debugPrint

private void debugPrint(java.lang.String msg)