Class AbstractModalGraphMouse

java.lang.Object
edu.uci.ics.jung.visualization.control.PluggableGraphMouse
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.
  • Field Details

    • 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<ModalGraphMouse.Mode> 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 Details

    • AbstractModalGraphMouse

      protected AbstractModalGraphMouse(float in, float out)
  • Method Details

    • 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<ModalGraphMouse.Mode> 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: