org.rr0.is.presentation.view.report.applet.draw
Class DrawController

java.lang.Object
  |
  +--java.awt.event.MouseAdapter
        |
        +--org.rr0.is.presentation.view.report.applet.draw.DrawController
Direct Known Subclasses:
SkyController

public class DrawController
extends MouseAdapter
implements MessageListener, MouseMotionListener

Handles drawing events to update a DrawView and a DrawModel accordingly.

Author:
Jerôme Beau
Version: 3 nov. 2003 22:59:54

Field Summary
 private VectoranimationListeners
           
 private RunnableanimationRunner
           
 private ThreadanimationThread
           
 protected intas
           
 private DrawShapebottomShapePrototype
           
 private DrawEventcurrentEvent
           
 protected GregorianCalendarcurrentTime
           
 protected DateFormatdateFormat
           
 private ThreaddragRecordThread
           
 private VectordrawListeners
           
 private DateendTime
           
 private MouseEventeventToRecord
           
 private HashtableimageCache
           
 private longlastRecordEnd
           
 private intlastX
           
 private intlastY
           
 private Localelocale
           
 private VectormessageListeners
           
 private ResourceBundlemessagesBundle
           
 private DrawShapemiddleShapePrototype
           
 protected Stringmode
           
 protected DrawModelmodel
           
 protected intmoveDeltaX
           
 protected intmoveDeltaY
           
 private booleanplaying
           
 private intsamplingRate
          The sampling rate, in milliseconds
 protected DrawSelectionselection
           
 private DatestartTime
           
 protected StringtimeKey
           
 private DrawShapetopShapePrototype
           
 protected DrawViewview
           

Constructor Summary
DrawController(DrawView view, DrawModel model, int samplingRate, Locale locale)
           

Method Summary
 voidaddAnimationListener(AnimationListener animationListener)
           
 voidaddDrawListener(DrawListener drawListener)
           
 voidaddMessageListener(MessageListener messageListener)
           
 voidaddSelection(DrawEvent selection)
           
 protected voidbackgroundClicked()
           
 private voidcreateNewShape(int mouseX, int mouseY, Object eventSource)
           
 protected voiddeselect(DrawEvent currentEvent)
           
 voiddraw()
           
 private voidfireAnimationStarted()
           
 private voidfireAnimationStopped()
           
 private voidfireEventRecorded(DrawEvent drawEvent)
           
 private voidfireEventSelected(DrawEvent currentEvent)
           
 voidfireMessage(String message)
          Send a text message to our message listeners.
 private voidfireModeChanged()
           
 private voidfireTimeChanged(GregorianCalendar currentTime)
           
 DateFormatgetDateFormat()
           
 DategetEndTime()
           
 ImagegetImage(URL url)
           
 LocalegetLocale()
           
 ResourceBundlegetMessagesBundle()
           
 intgetSamplingRate()
           
 DategetStartTime()
           
 TimeZonegetTimeZone()
           
 booleanisAspectMode()
           
 booleanisBehaviorMode()
           
 private booleanisMoving()
           
 booleanisPlaying()
           
 private booleanisResizingCorner()
           
 private booleanisResizingHeight()
           
 private booleanisResizingWidth()
           
 private booleanisShapePrototypeAvailable()
           
 voidmessage(MessageEvent messageEvent)
           
 voidmouseClicked(MouseEvent e)
          A click in the applet area.
 private voidmouseClickedAspect(MouseEvent e)
           
 private voidmouseClickedBehavior(MouseEvent e)
           
 voidmouseDragged(MouseEvent e)
           
 private voidmouseDraggedAspect(MouseEvent e)
           
 private voidmouseDraggedBehavior(MouseEvent e)
           
 voidmouseExited(MouseEvent e)
           
 voidmouseMoved(MouseEvent mouseEvent)
           
 private voidmouseMovedAspect(MouseEvent mouseEvent)
           
 private voidmouseMovedBehavior(MouseEvent mouseEvent)
           
 voidmouseReleased(MouseEvent e)
          Invoked when a mouse button has been released on a component.
 private voidmoveOverShape(DrawShape selectedShape, int mouseX, int mouseY)
           
 protected voidpaintShapes()
           
 voidplay(boolean on)
           
 protected DrawEventrecord(int x, int y, Object source, DrawShape shape)
           
 private voidrecord(MouseEvent e, DrawSelection selection)
           
 protected voidselect(boolean multiple, DrawEvent currentEvent)
          Select a applet event.
 voidsetAs(int x)
           
 voidsetBottomShape(DrawShape shapePrototype)
           
 voidsetColor(Color color)
           
 voidsetEndTime(Date endTime)
           
 voidsetMidShape(DrawShape shapePrototype)
           
 voidsetMode(String modeName)
           
 private voidsetNewHeight(Rectangle shapeBounds, int newY)
           
 private voidsetNewWidth(Rectangle shapeBounds, int newX)
           
 voidsetSelection(DrawSelection selection)
           
 voidsetStartTime(Date startTime)
           
 protected voidsetTime(GregorianCalendar currentTime)
           
 voidsetTimeZone(TimeZone timeZone)
           
 voidsetTopShape(DrawShape shapePrototype)
           
 voidsetTransparency(int alpha)
           
 protected voidshowShapeMenu(int mouseX, int mouseY)
           
 voidstart()
           

Methods inherited from class java.awt.event.MouseAdapter
mousePressed, mouseEntered

Methods inherited from class java.lang.Object
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize

Field Detail

animationListeners

private Vector animationListeners

animationRunner

private Runnable animationRunner

animationThread

private Thread animationThread

as

protected int as

bottomShapePrototype

private DrawShape bottomShapePrototype

currentEvent

private DrawEvent currentEvent

currentTime

protected GregorianCalendar currentTime

dateFormat

protected DateFormat dateFormat

dragRecordThread

private Thread dragRecordThread

drawListeners

private Vector drawListeners

endTime

private Date endTime

eventToRecord

private MouseEvent eventToRecord

imageCache

private Hashtable imageCache

lastRecordEnd

private long lastRecordEnd

lastX

private int lastX

lastY

private int lastY

locale

private Locale locale

messageListeners

private Vector messageListeners

messagesBundle

private ResourceBundle messagesBundle

middleShapePrototype

private DrawShape middleShapePrototype

mode

protected String mode

model

protected DrawModel model

moveDeltaX

protected int moveDeltaX

moveDeltaY

protected int moveDeltaY

playing

private boolean playing

samplingRate

private int samplingRate
The sampling rate, in milliseconds

selection

protected DrawSelection selection
supplierRole current selection

startTime

private Date startTime

timeKey

protected String timeKey

topShapePrototype

private DrawShape topShapePrototype

view

protected DrawView view
supplierRole view
Constructor Detail

DrawController

public DrawController(DrawView view, DrawModel model, int samplingRate, Locale locale)
Method Detail

addAnimationListener

public void addAnimationListener(AnimationListener animationListener)

addDrawListener

public void addDrawListener(DrawListener drawListener)

addMessageListener

public void addMessageListener(MessageListener messageListener)

addSelection

public void addSelection(DrawEvent selection)

backgroundClicked

protected void backgroundClicked()

createNewShape

private void createNewShape(int mouseX, int mouseY, Object eventSource)

deselect

protected void deselect(DrawEvent currentEvent)

draw

public void draw()

fireAnimationStarted

private void fireAnimationStarted()

fireAnimationStopped

private void fireAnimationStopped()

fireEventRecorded

private void fireEventRecorded(DrawEvent drawEvent)

fireEventSelected

private void fireEventSelected(DrawEvent currentEvent)

fireMessage

public void fireMessage(String message)
Send a text message to our message listeners.
Parameters:
message

fireModeChanged

private void fireModeChanged()

fireTimeChanged

private void fireTimeChanged(GregorianCalendar currentTime)

getDateFormat

public DateFormat getDateFormat()

getEndTime

public Date getEndTime()

getImage

public Image getImage(URL url)

getLocale

public Locale getLocale()

getMessagesBundle

public ResourceBundle getMessagesBundle()

getSamplingRate

public int getSamplingRate()

getStartTime

public Date getStartTime()

getTimeZone

public TimeZone getTimeZone()

isAspectMode

public boolean isAspectMode()

isBehaviorMode

public boolean isBehaviorMode()

isMoving

private boolean isMoving()

isPlaying

public boolean isPlaying()

isResizingCorner

private boolean isResizingCorner()

isResizingHeight

private boolean isResizingHeight()

isResizingWidth

private boolean isResizingWidth()

isShapePrototypeAvailable

private boolean isShapePrototypeAvailable()

message

public void message(MessageEvent messageEvent)

mouseClicked

public void mouseClicked(MouseEvent e)
A click in the applet area.
Parameters:
e The mouse click event

mouseClickedAspect

private void mouseClickedAspect(MouseEvent e)

mouseClickedBehavior

private void mouseClickedBehavior(MouseEvent e)

mouseDragged

public void mouseDragged(MouseEvent e)

mouseDraggedAspect

private void mouseDraggedAspect(MouseEvent e)

mouseDraggedBehavior

private void mouseDraggedBehavior(MouseEvent e)

mouseExited

public void mouseExited(MouseEvent e)

mouseMoved

public void mouseMoved(MouseEvent mouseEvent)

mouseMovedAspect

private void mouseMovedAspect(MouseEvent mouseEvent)

mouseMovedBehavior

private void mouseMovedBehavior(MouseEvent mouseEvent)

mouseReleased

public void mouseReleased(MouseEvent e)
Invoked when a mouse button has been released on a component.

moveOverShape

private void moveOverShape(DrawShape selectedShape, int mouseX, int mouseY)

paintShapes

protected void paintShapes()

play

public void play(boolean on)

record

protected DrawEvent record(int x, int y, Object source, DrawShape shape)

record

private void record(MouseEvent e, DrawSelection selection)

select

protected void select(boolean multiple, DrawEvent currentEvent)
Select a applet event.
Parameters:
multiple
currentEvent

setAs

public void setAs(int x)

setBottomShape

public void setBottomShape(DrawShape shapePrototype)

setColor

public void setColor(Color color)

setEndTime

public void setEndTime(Date endTime)

setMidShape

public void setMidShape(DrawShape shapePrototype)

setMode

public void setMode(String modeName)

setNewHeight

private void setNewHeight(Rectangle shapeBounds, int newY)

setNewWidth

private void setNewWidth(Rectangle shapeBounds, int newX)

setSelection

public void setSelection(DrawSelection selection)

setStartTime

public void setStartTime(Date startTime)

setTime

protected void setTime(GregorianCalendar currentTime)

setTimeZone

public void setTimeZone(TimeZone timeZone)

setTopShape

public void setTopShape(DrawShape shapePrototype)

setTransparency

public void setTransparency(int alpha)

showShapeMenu

protected void showShapeMenu(int mouseX, int mouseY)

start

public void start()

Association Links

to Class java.lang.String

to Class org.rr0.is.presentation.view.report.applet.draw.DrawView

Supplier Role view

to Class org.rr0.is.presentation.view.report.applet.draw.DrawModel

to Class java.util.Vector

to Class java.util.Vector

to Class java.util.GregorianCalendar

to Class java.text.DateFormat

to Class java.lang.String

to Class org.rr0.is.presentation.view.report.applet.draw.DrawSelection

Supplier Role current selection

to Class org.rr0.is.presentation.view.report.applet.draw.DrawShape

to Class org.rr0.is.presentation.view.report.applet.draw.DrawShape

to Class org.rr0.is.presentation.view.report.applet.draw.DrawShape

to Class org.rr0.is.presentation.view.report.applet.draw.DrawEvent

to Class java.util.Vector

to Class java.util.Date

to Class java.util.Date

to Class java.util.Locale

to Class java.util.ResourceBundle

to Class java.lang.Thread

to Class java.util.Hashtable

to Class java.awt.event.MouseEvent

to Class java.lang.Thread

to Class java.lang.Runnable