VisualSim.simulators.gr.lib
Class FigureInteractor

java.lang.Object
  extended bydiva.canvas.interactor.AbstractInteractor
      extended byVisualSim.simulators.gr.lib.FigureInteractor
All Implemented Interfaces:
java.util.EventListener, diva.canvas.interactor.Interactor, java.awt.event.KeyListener, diva.canvas.event.LayerListener, diva.canvas.event.LayerMotionListener

public class FigureInteractor
extends diva.canvas.interactor.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:
VisualSim4.0

Constructor Summary
FigureInteractor(diva.canvas.AbstractFigure figure)
          Construct a FigureInteractor for the given figure.
 
Method Summary
 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(diva.canvas.event.LayerEvent layerEvent)
          Included to comply with the AbstractListener implementation requirement.
 void mouseDragged(diva.canvas.event.LayerEvent layerEvent)
          Translate the figure to wherever the mouse is dragged.
 void mouseEntered(diva.canvas.event.LayerEvent layerEvent)
          Included to comply with the AbstractListener implementation requirement.
 void mouseExited(diva.canvas.event.LayerEvent layerEvent)
          Included to comply with the AbstractListener implementation requirement.
 void mouseMoved(diva.canvas.event.LayerEvent layerEvent)
          Included to comply with the AbstractListener implementation requirement.
 void mousePressed(diva.canvas.event.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(diva.canvas.event.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 diva.canvas.interactor.AbstractInteractor
accept, getMouseFilter, isConsuming, isEnabled, isMotionEnabled, setConsuming, setEnabled, setMotionEnabled, setMouseFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FigureInteractor

public FigureInteractor(diva.canvas.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(diva.canvas.event.LayerEvent layerEvent)
Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.

Specified by:
mouseClicked in interface diva.canvas.event.LayerListener
Parameters:
layerEvent - The LayerEvent received.

mouseDragged

public void mouseDragged(diva.canvas.event.LayerEvent layerEvent)
Translate the figure to wherever the mouse is dragged.

Specified by:
mouseDragged in interface diva.canvas.event.LayerListener
Parameters:
layerEvent - The LayerEvent received.

mouseEntered

public void mouseEntered(diva.canvas.event.LayerEvent layerEvent)
Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.

Specified by:
mouseEntered in interface diva.canvas.event.LayerMotionListener
Parameters:
layerEvent - The LayerEvent received.

mouseExited

public void mouseExited(diva.canvas.event.LayerEvent layerEvent)
Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.

Specified by:
mouseExited in interface diva.canvas.event.LayerMotionListener
Parameters:
layerEvent - The LayerEvent received.

mouseMoved

public void mouseMoved(diva.canvas.event.LayerEvent layerEvent)
Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.

Specified by:
mouseMoved in interface diva.canvas.event.LayerMotionListener
Parameters:
layerEvent - The LayerEvent received.

mousePressed

public void mousePressed(diva.canvas.event.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 diva.canvas.event.LayerListener
Parameters:
layerEvent - The LayerEvent received.

mouseReleased

public void mouseReleased(diva.canvas.event.LayerEvent layerEvent)
Included to comply with the AbstractListener implementation requirement. This method does nothing in its current implementation.

Specified by:
mouseReleased in interface diva.canvas.event.LayerListener
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.