candy.ui
Class WhiteboardVisual

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--candy.ui.WhiteboardVisual
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

class WhiteboardVisual
extends javax.swing.JComponent

This class forms the actual drawing surface of the whiteboard.

See Also:
WhiteboardDisplay, WBPrimitive, WBPrimitivePacket, WBPrimitiveFactory, Serialized Form

Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  ClientApp client
          The ClientApp
(package private)  WhiteboardDisplay disp
          The WhiteboardDisplay attached to this visual
(package private)  java.lang.Class DrawClass
          The class of same.
(package private)  boolean Drawing
          Indicates that drawing is currently in progress
(package private)  java.lang.String DrawMode
          The class name of the primitive currently being drawn
(package private)  WBPrimitiveFactory factory
          The factory which generates new primitives from user input
(package private)  java.lang.reflect.Method finalSeq
           
(package private)  javax.swing.JScrollPane jsp
          The scrollpane containing the display
(package private)  java.util.Vector Points
          All the points relevant to the primitive currently under construction.
(package private)  java.lang.reflect.Method postSeq
           
(package private)  java.lang.reflect.Method preSeq
          The current primitive's entry point hooks
(package private)  Whiteboard wb
          The associated whiteboard
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, listenerList, paintingChild, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WhiteboardVisual(Whiteboard w, WhiteboardDisplay wd, ClientApp c)
          Constructor.
 
Method Summary
protected  void commitPrimitive()
          Finalizes the construction of a new primitive by invoking the factory to create a new WBPrimitive, wrapping it in a WBPrimitivePacket, and adding the packet to the whiteboard.
(package private)  boolean finalSequence(WBPrimitive e)
           
 void paint(java.awt.Graphics g)
          Swing repaint method.
(package private)  boolean postSequence(java.awt.event.MouseEvent e)
           
(package private)  boolean preSequence(java.awt.event.MouseEvent e)
          Wrappers for the primitive entry points
 boolean setPrimitive(java.lang.String d)
          Sets the current drawing mode to a new primitive
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, , addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, alwaysOnTop, checkIfChildObscuredBySibling, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

client

ClientApp client
The ClientApp

jsp

javax.swing.JScrollPane jsp
The scrollpane containing the display

wb

Whiteboard wb
The associated whiteboard

factory

WBPrimitiveFactory factory
The factory which generates new primitives from user input

DrawMode

java.lang.String DrawMode
The class name of the primitive currently being drawn

DrawClass

java.lang.Class DrawClass
The class of same.

disp

WhiteboardDisplay disp
The WhiteboardDisplay attached to this visual

Points

java.util.Vector Points
All the points relevant to the primitive currently under construction.

Drawing

boolean Drawing
Indicates that drawing is currently in progress

preSeq

java.lang.reflect.Method preSeq
The current primitive's entry point hooks
See Also:
WBPrimitive.preSequence(java.awt.event.MouseEvent, candy.util.whiteboard.Whiteboard, java.awt.Graphics2D), WBPrimitive.postSequence(java.awt.event.MouseEvent, candy.util.whiteboard.Whiteboard, java.awt.Graphics2D), WBPrimitive.finalSequence(candy.util.whiteboard.WBPrimitive, candy.util.whiteboard.Whiteboard)

postSeq

java.lang.reflect.Method postSeq

finalSeq

java.lang.reflect.Method finalSeq
Constructor Detail

WhiteboardVisual

public WhiteboardVisual(Whiteboard w,
                        WhiteboardDisplay wd,
                        ClientApp c)
Constructor. The actual behavior on usaer input is defined by the anonymous inner-classes subclassing MouseAdapter and MouseMotionAdapter.
Parameters:
w - The associated whiteboard
wd - This visual's WhiteboardDisplay
c - The ClientApp
Method Detail

commitPrimitive

protected void commitPrimitive()
Finalizes the construction of a new primitive by invoking the factory to create a new WBPrimitive, wrapping it in a WBPrimitivePacket, and adding the packet to the whiteboard.

preSequence

boolean preSequence(java.awt.event.MouseEvent e)
Wrappers for the primitive entry points

postSequence

boolean postSequence(java.awt.event.MouseEvent e)

finalSequence

boolean finalSequence(WBPrimitive e)

setPrimitive

public boolean setPrimitive(java.lang.String d)
Sets the current drawing mode to a new primitive
Parameters:
n - The class name of the new primitive

paint

public void paint(java.awt.Graphics g)
Swing repaint method. This iterates over the Whiteboard's contents, drawing each primitive. Finally, it draws the current "shape in progress" as a rubberband.
Overrides:
paint in class javax.swing.JComponent
See Also:
JComponent