ballworld.view
Class BallGUI

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by ballworld.view.BallGUI
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class BallGUI
extends javax.swing.JFrame

A subclass of JFrame containing the various GUI components specified in the program behavior specification. Provides a Component area where the drawing object is to be drawn.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  javax.swing.JButton _addBtn
          Button to add the strategy from the textfield to both the drop lists.
private  javax.swing.JPanel _canvasPnl
          Panel that the balls are drawn on
private  javax.swing.JPanel _cbPnl
          sub-panel to hold the drop lists and associated buttons.
private  javax.swing.JButton _clearAllBtn
          Button to clear all the balls from the system
private  javax.swing.JButton _combineBtn
          Button to create a new strategy that is the composition of the selected strategies on the top and bottom drop lists.
private  javax.swing.JPanel _controlPnl
          Panel for holding the control components
private  javax.swing.JPanel _inputPnl
          Sub-panel to hold the input textfield and the "add to lists" button
private  javax.swing.JTextField _inputTF
          Textfield to input class name of new strategies to use
private  javax.swing.JComboBox _list1DL
          The top drop list, used to select what strategy to use in a new ball and to switch the switcher to.
private  javax.swing.JComboBox _list2DL
          Bottom drop list, used for combining with the top list selection.
private  javax.swing.JButton _makeSelectedBtn
          Button to make a ball using the strategy selected from the top drop list
private  javax.swing.JButton _makeSwitcherBtn
          Button to make a switcher ball
private  IModelControlAdapter _modelControlAdpt
          Adapter back to the model for control tasks.
private  IModelUpdateAdapter _modelUpdateAdpt
          Adapter back to the model for updating tasks.
private  javax.swing.JButton _switchBtn
          Button to switch the decoree of the switcher strategy
private  javax.swing.JPanel _switcherPnl
          Sub-panel to hold switcher controls
private  javax.swing.JButton addPaintBtn
           
private  javax.swing.JComboBox paintCBx
           
private  javax.swing.JPanel paintPnl
           
private  javax.swing.JTextField paintTF
           
private static long serialVersionUID
          Unique identifier for serialization purposes
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BallGUI(IModelControlAdapter modelCtrlAdpt, IModelUpdateAdapter modelUpdateAdpt)
          Initializes and lays out the GUI components.
 
Method Summary
 java.awt.Container getCanvas()
          Accessor method for the panel upon which the balls are to be drawn
private  void initGUI()
          Initialize the GUI components
 void start()
           
 void update()
           
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Unique identifier for serialization purposes

See Also:
Constant Field Values

_modelControlAdpt

private IModelControlAdapter _modelControlAdpt
Adapter back to the model for control tasks.


_modelUpdateAdpt

private IModelUpdateAdapter _modelUpdateAdpt
Adapter back to the model for updating tasks. Initialized to the null adapter for safety's sake in case an event comes through before the adapter connection is fully established.


_controlPnl

private javax.swing.JPanel _controlPnl
Panel for holding the control components


_canvasPnl

private javax.swing.JPanel _canvasPnl
Panel that the balls are drawn on


_clearAllBtn

private javax.swing.JButton _clearAllBtn
Button to clear all the balls from the system


_inputTF

private javax.swing.JTextField _inputTF
Textfield to input class name of new strategies to use


_inputPnl

private javax.swing.JPanel _inputPnl
Sub-panel to hold the input textfield and the "add to lists" button


_makeSwitcherBtn

private javax.swing.JButton _makeSwitcherBtn
Button to make a switcher ball


_switchBtn

private javax.swing.JButton _switchBtn
Button to switch the decoree of the switcher strategy


paintTF

private javax.swing.JTextField paintTF

paintCBx

private javax.swing.JComboBox paintCBx

addPaintBtn

private javax.swing.JButton addPaintBtn

paintPnl

private javax.swing.JPanel paintPnl

_switcherPnl

private javax.swing.JPanel _switcherPnl
Sub-panel to hold switcher controls


_cbPnl

private javax.swing.JPanel _cbPnl
sub-panel to hold the drop lists and associated buttons.


_list1DL

private javax.swing.JComboBox _list1DL
The top drop list, used to select what strategy to use in a new ball and to switch the switcher to.


_list2DL

private javax.swing.JComboBox _list2DL
Bottom drop list, used for combining with the top list selection.


_combineBtn

private javax.swing.JButton _combineBtn
Button to create a new strategy that is the composition of the selected strategies on the top and bottom drop lists.


_addBtn

private javax.swing.JButton _addBtn
Button to add the strategy from the textfield to both the drop lists.


_makeSelectedBtn

private javax.swing.JButton _makeSelectedBtn
Button to make a ball using the strategy selected from the top drop list

Constructor Detail

BallGUI

public BallGUI(IModelControlAdapter modelCtrlAdpt,
               IModelUpdateAdapter modelUpdateAdpt)
Initializes and lays out the GUI components.

Method Detail

initGUI

private void initGUI()
              throws java.lang.Exception
Initialize the GUI components

Throws:
java.lang.Exception

getCanvas

public java.awt.Container getCanvas()
Accessor method for the panel upon which the balls are to be drawn


update

public void update()

start

public void start()