edu.uci.ics.jung.visualization.control
Class AbstractModalGraphMouse

java.lang.Object
  extended by edu.uci.ics.jung.visualization.control.PluggableGraphMouse
      extended by edu.uci.ics.jung.visualization.control.AbstractModalGraphMouse
All Implemented Interfaces:
ModalGraphMouse, VisualizationViewer.GraphMouse, MouseListener, MouseMotionListener, MouseWheelListener, ItemSelectable, EventListener
Direct Known Subclasses:
AnnotatingModalGraphMouse, DefaultModalGraphMouse, EditingModalGraphMouse, ModalLensGraphMouse

public abstract class AbstractModalGraphMouse
extends PluggableGraphMouse
implements ModalGraphMouse, ItemSelectable

AbstractModalGraphMouse is a PluggableGraphMouse class that manages a collection of plugins for picking and transforming the graph. Additionally, it carries the notion of a Mode: Picking or Translating. Switching between modes allows for a more natural choice of mouse modifiers to be used for the various plugins. The default modifiers are intended to mimick those of mainstream software applications in order to be intuitive to users. To change between modes, two different controls are offered, a combo box and a menu system. These controls are lazily created in their respective 'getter' methods so they don't impact code that does not intend to use them. The menu control can be placed in an unused corner of the GraphZoomScrollPane, which is a common location for mouse mode selection menus in mainstream applications. Users must implement the loadPlugins() method to create and install the GraphMousePlugins. The order of the plugins is important, as they are evaluated against the mask parameters in the order that they are added.

Author:
Tom Nelson

Nested Class Summary
 
Nested classes/interfaces inherited from interface edu.uci.ics.jung.visualization.control.ModalGraphMouse
ModalGraphMouse.Mode
 
Field Summary
protected  GraphMousePlugin animatedPickingPlugin
           
protected  float in
          used by the scaling plugins for zoom in
protected  EventListenerList listenerList
          listeners for mode changes
protected  ModalGraphMouse.Mode mode
          the current mode
protected  JComboBox modeBox
          a JComboBox control available to set the mode
protected  KeyListener modeKeyListener
           
protected  ItemListener modeListener
          a listener for mode changes
protected  JMenu modeMenu
          a menu available to set the mode
protected  float out
          used by the scaling plugins for zoom out
protected  GraphMousePlugin pickingPlugin
           
protected  GraphMousePlugin rotatingPlugin
           
protected  GraphMousePlugin scalingPlugin
           
protected  GraphMousePlugin shearingPlugin
           
protected  GraphMousePlugin translatingPlugin
           
 
Constructor Summary
protected AbstractModalGraphMouse(float in, float out)
           
 
Method Summary
 void addItemListener(ItemListener aListener)
          add a listener for mode changes
protected  void fireItemStateChanged(ItemEvent e)
          Notifies all listeners that have registered interest for notification on this event type.
 ItemListener[] getItemListeners()
          Returns an array of all the ItemListeners added to this JComboBox with addItemListener().
 JComboBox getModeComboBox()
           
 KeyListener getModeKeyListener()
           
 ItemListener getModeListener()
           
 JMenu getModeMenu()
          create (if necessary) and return a menu that will change the mode
 Object[] getSelectedObjects()
           
protected abstract  void loadPlugins()
          create the plugins, and load the plugins for TRANSFORMING mode
 void removeItemListener(ItemListener aListener)
          remove a listener for mode changes
 void setMode(ModalGraphMouse.Mode mode)
          setter for the Mode.
 void setModeKeyListener(KeyListener modeKeyListener)
           
protected  void setPickingMode()
           
protected  void setTransformingMode()
           
 void setZoomAtMouse(boolean zoomAtMouse)
           
 
Methods inherited from class edu.uci.ics.jung.visualization.control.PluggableGraphMouse
add, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, mouseWheelMoved, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased
 
Methods inherited from interface java.awt.event.MouseMotionListener
mouseDragged, mouseMoved
 
Methods inherited from interface java.awt.event.MouseWheelListener
mouseWheelMoved
 

Field Detail

in

protected float in
used by the scaling plugins for zoom in


out

protected float out
used by the scaling plugins for zoom out


modeListener

protected ItemListener modeListener
a listener for mode changes


modeBox

protected JComboBox modeBox
a JComboBox control available to set the mode


modeMenu

protected JMenu modeMenu
a menu available to set the mode


mode

protected ModalGraphMouse.Mode mode
the current mode


listenerList

protected EventListenerList listenerList
listeners for mode changes


pickingPlugin

protected GraphMousePlugin pickingPlugin

translatingPlugin

protected GraphMousePlugin translatingPlugin

animatedPickingPlugin

protected GraphMousePlugin animatedPickingPlugin

scalingPlugin

protected GraphMousePlugin scalingPlugin

rotatingPlugin

protected GraphMousePlugin rotatingPlugin

shearingPlugin

protected GraphMousePlugin shearingPlugin

modeKeyListener

protected KeyListener modeKeyListener
Constructor Detail

AbstractModalGraphMouse

protected AbstractModalGraphMouse(float in,
                                  float out)
Method Detail

loadPlugins

protected abstract void loadPlugins()
create the plugins, and load the plugins for TRANSFORMING mode


setMode

public void setMode(ModalGraphMouse.Mode mode)
setter for the Mode.

Specified by:
setMode in interface ModalGraphMouse

setPickingMode

protected void setPickingMode()

setTransformingMode

protected void setTransformingMode()

setZoomAtMouse

public void setZoomAtMouse(boolean zoomAtMouse)
Parameters:
zoomAtMouse - The zoomAtMouse to set.

getModeListener

public ItemListener getModeListener()
Specified by:
getModeListener in interface ModalGraphMouse
Returns:
Returns the modeListener.

getModeKeyListener

public KeyListener getModeKeyListener()
Returns:
the modeKeyListener

setModeKeyListener

public void setModeKeyListener(KeyListener modeKeyListener)
Parameters:
modeKeyListener - the modeKeyListener to set

getModeComboBox

public JComboBox getModeComboBox()
Returns:
Returns the modeBox.

getModeMenu

public JMenu getModeMenu()
create (if necessary) and return a menu that will change the mode

Returns:
the menu

addItemListener

public void addItemListener(ItemListener aListener)
add a listener for mode changes

Specified by:
addItemListener in interface ItemSelectable

removeItemListener

public void removeItemListener(ItemListener aListener)
remove a listener for mode changes

Specified by:
removeItemListener in interface ItemSelectable

getItemListeners

public ItemListener[] getItemListeners()
Returns an array of all the ItemListeners added to this JComboBox with addItemListener().

Returns:
all of the ItemListeners added or an empty array if no listeners have been added
Since:
1.4

getSelectedObjects

public Object[] getSelectedObjects()
Specified by:
getSelectedObjects in interface ItemSelectable

fireItemStateChanged

protected void fireItemStateChanged(ItemEvent e)
Notifies all listeners that have registered interest for notification on this event type.

Parameters:
e - the event of interest
See Also:
EventListenerList


Copyright © 2009. All Rights Reserved.