Class FigureInteractor

  • All Implemented Interfaces:
    LayerListener, LayerMotionListener, Interactor, java.awt.event.KeyListener, java.util.EventListener

    public class FigureInteractor
    extends AbstractInteractor
    implements java.awt.event.KeyListener
    Listen for and handle events on a Diva figure. Because Diva figures are not derived from Java's component class, implementing a key listener directly would be problematic. Instead, this class must be made aware of the ViewScreen2D object that contains the figure, as the ViewScreen2D object will forward all keyboard events that occur on a selected figure to this listener. When initially adding a figure to the view screen, the view screen must call the setViewScreen() method of the figure with a reference to itself as the parameter.
    Since:
    Ptolemy II 4.0
    Version:
    $Id$
    Author:
    Ismael M. Sarmiento
    Pt.AcceptedRating:
    Red (cxh)
    Pt.ProposedRating:
    Yellow (ismael)
    • Constructor Summary

      Constructors 
      Constructor Description
      FigureInteractor​(AbstractFigure figure)
      Construct a FigureInteractor for the given figure.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean isSelected()
      Return whether or not a figure has been selected in the viewscreen.
      void keyPressed​(java.awt.event.KeyEvent e)
      Translate a selected figure according to which arrow key is pressed.
      void keyReleased​(java.awt.event.KeyEvent e)
      Included to comply with the KeyListener interface requirement.
      void keyTyped​(java.awt.event.KeyEvent e)
      Included to comply with the KeyListener interface requirement.
      void mouseClicked​(LayerEvent layerEvent)
      Included to comply with the AbstractListener implementation requirement.
      void mouseDragged​(LayerEvent layerEvent)
      Translate the figure to wherever the mouse is dragged.
      void mouseEntered​(LayerEvent layerEvent)
      Included to comply with the AbstractListener implementation requirement.
      void mouseExited​(LayerEvent layerEvent)
      Included to comply with the AbstractListener implementation requirement.
      void mouseMoved​(LayerEvent layerEvent)
      Included to comply with the AbstractListener implementation requirement.
      void mousePressed​(LayerEvent layerEvent)
      Update the state of this listener to reflect where on the figure the mouse button was pressed, and change the mouse cursor to show that the figure can now be dragged.
      void mouseReleased​(LayerEvent layerEvent)
      Included to comply with the AbstractListener implementation requirement.
      void setSelected​(boolean selected)
      Set whether the figure being listened to is selected or not selected.
      void setViewScreen​(ViewScreen2D viewScreen)
      Notify this object of the view screen which contains the figure this object is listening to.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FigureInteractor

        public FigureInteractor​(AbstractFigure figure)
        Construct a FigureInteractor for the given figure.
        Parameters:
        figure - The figure this interactor is to listen and respond to.
    • Method Detail

      • isSelected

        public boolean isSelected()
        Return whether or not a figure has been selected in the viewscreen. A figure is selected by a single mouse click on the figure, and deselected by a single mouse click anywhere outside the figure.
        Returns:
        A boolean true if the figure is selected, and false otherwise.
      • keyPressed

        public void keyPressed​(java.awt.event.KeyEvent e)
        Translate a selected figure according to which arrow key is pressed. This will respond only to the arrow keys outside of the number pad.
        Specified by:
        keyPressed in interface java.awt.event.KeyListener
        Parameters:
        e - The KeyEvent received.
      • keyReleased

        public void keyReleased​(java.awt.event.KeyEvent e)
        Included to comply with the KeyListener interface requirement. This method does nothing in its current implementation.
        Specified by:
        keyReleased in interface java.awt.event.KeyListener
        Parameters:
        e - The KeyEvent received.
      • keyTyped

        public void keyTyped​(java.awt.event.KeyEvent e)
        Included to comply with the KeyListener interface requirement. This method does nothing in its current implementation.
        Specified by:
        keyTyped in interface java.awt.event.KeyListener
        Parameters:
        e - The KeyEvent received.
      • mouseClicked

        public void mouseClicked​(LayerEvent layerEvent)
        Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.
        Specified by:
        mouseClicked in interface LayerListener
        Overrides:
        mouseClicked in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • mouseEntered

        public void mouseEntered​(LayerEvent layerEvent)
        Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.
        Specified by:
        mouseEntered in interface LayerMotionListener
        Overrides:
        mouseEntered in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • mouseExited

        public void mouseExited​(LayerEvent layerEvent)
        Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.
        Specified by:
        mouseExited in interface LayerMotionListener
        Overrides:
        mouseExited in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • mouseMoved

        public void mouseMoved​(LayerEvent layerEvent)
        Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.
        Specified by:
        mouseMoved in interface LayerMotionListener
        Overrides:
        mouseMoved in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • mousePressed

        public void mousePressed​(LayerEvent layerEvent)
        Update the state of this listener to reflect where on the figure the mouse button was pressed, and change the mouse cursor to show that the figure can now be dragged.
        Specified by:
        mousePressed in interface LayerListener
        Overrides:
        mousePressed in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • mouseReleased

        public void mouseReleased​(LayerEvent layerEvent)
        Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.
        Specified by:
        mouseReleased in interface LayerListener
        Overrides:
        mouseReleased in class AbstractInteractor
        Parameters:
        layerEvent - The LayerEvent received.
      • setSelected

        public void setSelected​(boolean selected)
        Set whether the figure being listened to is selected or not selected.
        Parameters:
        selected - true if the figure being listened to is selected, false otherwise.
      • setViewScreen

        public void setViewScreen​(ViewScreen2D viewScreen)
        Notify this object of the view screen which contains the figure this object is listening to.
        Parameters:
        viewScreen - The viewScreen containing the figure this interactor is listening to.