de.uni_paderborn.robots.gui
Class StatisticPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--de.uni_paderborn.robots.gui.StatisticPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class StatisticPanel
extends javax.swing.JPanel

class which creates and manages the table which shows the statistics of the robots

See Also:
Serialized Form

Inner Class Summary
(package private)  class StatisticPanel.CardVal
          inner class for storing the cards of the robots
(package private)  class StatisticPanel.CardValRenderer
          Inner class that is used by the table for drawing the cards
(package private)  class StatisticPanel.ColorVal
          Inner class which is used for storing the color of the group.
(package private)  class StatisticPanel.ColorValRenderer
          inner class which is used by the table for drawing the color and the robots in the table
(package private)  class StatisticPanel.EnergyRenderer
          inner class which is used by the table for drawing the progress bars
(package private)  class StatisticPanel.EnergyVal
          inner class which is used by the table for storing energy of the robot
(package private)  class StatisticPanel.MyTableModel
          inner class which creates and manages the two tables
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
private  int[] allocation
          Allocation table for the robots.
private  ArenaImages arenaImages
          reference to the images of the game
private  java.awt.Color bestColor
          color for marking the best robot - in default mode
(package private) static int[][] color
          This array is used by the class ColorValRenderer for saving the robot colors.
private static int[] columnWidth
          array which saves the default width of a column
private  java.awt.Color currentColor
          color for marking the current robot - in debug mode
private  boolean debugModeOn
          true, if the debug-mode is on
private  javax.swing.JTable leftTable
          the reference to the left table basic class
private  int maxEnergy
          maximum of energy a robot can have
private  int maxPoints
          maximum points of all robots
private  StatisticPanel.MyTableModel myLeftTable
          the reference to the left table function class
private  StatisticPanel.MyTableModel myRightTable
          the reference to the right table function class
private  int[] points
          array for saving the points of the robots. if a robot is disabled it's points will be set to 0.
private  javax.swing.JTable rightTable
          the reference to the right table basic class
private  int robotCnt
          counter for the robots in the table
private  boolean[] robotIsDisqualified
          array which saves if a robot has been disqualified
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, 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, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, 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
StatisticPanel()
          Constructor of the whole Panel which contains the two tables
 
Method Summary
 void addRobot(Robot robot)
          This method adds a robot to one of the two tables.
 void clearTable()
          This method removes all entries form the two tables and initializes it
private  void clearTableEntry(int entryNo)
          This private method removes one entry form the table.
private  void copyTableEntry(int sourceEntryNo, int destinationEntryNo)
          This method copies all entries from one row to another.
private  int getEntryNo(Robot robot)
          This method returns the position in the table where a robot is saved.
private  javax.swing.JTable getJTable(int EntryNo)
          This method returns a reference to the JTable where a robot is displayed.
private  int getRow(int EntryNo)
          This method returns the row of the table where a robot is saved.
private  StatisticPanel.MyTableModel getTable(int EntryNo)
          This method returns a reference to the MyTableModel where the robot is displayed.
 void removeRobot(Robot robot)
          This method removes a robot of one of the two tables.
 void turnDebugModeOn(boolean debugModeOn)
          This methods informs the StatisticPanel about debug mode state.
private  void updateCards(int entryNo, int points, java.util.HashSet cards)
          This method is for updating the cards and points of a group.
 void updateCards(Robot robot, int points, java.util.HashSet cards)
          This method is for updating the cards and points of a robot.
private  void updateEnergy(int EntryNo, int energy)
          This method is for updating the energy of a group.
 void updateMaxEnergy()
          This method updates the progress bars to the new max energy
 void updateRobotEntries(Robot robot)
          This method updates the table entries of the robot and should be called by the arena after every change of robotdata.
private  void updateTimer(int entryNo, java.lang.String time)
          This method is for updating the timer of a group.
 void updateTimer(Robot robot, java.lang.String time)
          This method is for updating the timer of a group.
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
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, initIDs, 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, getWindowForObject, 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, registerNatives, wait, wait, wait
 

Field Detail

myLeftTable

private StatisticPanel.MyTableModel myLeftTable
the reference to the left table function class

myRightTable

private StatisticPanel.MyTableModel myRightTable
the reference to the right table function class

leftTable

private javax.swing.JTable leftTable
the reference to the left table basic class

rightTable

private javax.swing.JTable rightTable
the reference to the right table basic class

bestColor

private java.awt.Color bestColor
color for marking the best robot - in default mode

currentColor

private java.awt.Color currentColor
color for marking the current robot - in debug mode

points

private int[] points
array for saving the points of the robots. if a robot is disabled it's points will be set to 0.

maxPoints

private int maxPoints
maximum points of all robots

allocation

private int[] allocation
Allocation table for the robots. The table is indexed by the type of the robot and contains the entry of the table where the robot is placed.

robotCnt

private int robotCnt
counter for the robots in the table

maxEnergy

private int maxEnergy
maximum of energy a robot can have

columnWidth

private static int[] columnWidth
array which saves the default width of a column

robotIsDisqualified

private boolean[] robotIsDisqualified
array which saves if a robot has been disqualified

debugModeOn

private boolean debugModeOn
true, if the debug-mode is on

arenaImages

private ArenaImages arenaImages
reference to the images of the game

color

static final int[][] color
This array is used by the class ColorValRenderer for saving the robot colors. As it should be static it has not been placed in the inner class.
Constructor Detail

StatisticPanel

public StatisticPanel()
Constructor of the whole Panel which contains the two tables
Method Detail

clearTable

public void clearTable()
This method removes all entries form the two tables and initializes it

turnDebugModeOn

public void turnDebugModeOn(boolean debugModeOn)
This methods informs the StatisticPanel about debug mode state.
Parameters:
debugModeOn - true, if debug mode is on

updateMaxEnergy

public void updateMaxEnergy()
This method updates the progress bars to the new max energy

addRobot

public void addRobot(Robot robot)
This method adds a robot to one of the two tables.
Parameters:
robot - a reference to the robot

removeRobot

public void removeRobot(Robot robot)
This method removes a robot of one of the two tables.
Parameters:
robot - a reference to the robot

clearTableEntry

private void clearTableEntry(int entryNo)
This private method removes one entry form the table.
Parameters:
entryNo - entry to be removed

copyTableEntry

private void copyTableEntry(int sourceEntryNo,
                            int destinationEntryNo)
This method copies all entries from one row to another.
Parameters:
sourceEntryNo - source entry
destinationEntryNo - destination entry

getEntryNo

private int getEntryNo(Robot robot)
This method returns the position in the table where a robot is saved.
Parameters:
robot - a reference to the robot
Returns:
position in the table

getRow

private int getRow(int EntryNo)
This method returns the row of the table where a robot is saved. This function has been added to be flexible with the filling order of the table.
Parameters:
EntryNo - the entry in the StatisticPanel
Returns:
the row of the table

getTable

private StatisticPanel.MyTableModel getTable(int EntryNo)
This method returns a reference to the MyTableModel where the robot is displayed. This function has been added to be flexible with the filling order of the table .
Parameters:
EntryNo - the entry in the StatisticPanel
Returns:
reference to the table

getJTable

private javax.swing.JTable getJTable(int EntryNo)
This method returns a reference to the JTable where a robot is displayed. This function has been added to be flexible with the filling order of the table.
Parameters:
EntryNo - the entry in the StatisticPanel
Returns:
reference to the table

updateRobotEntries

public void updateRobotEntries(Robot robot)
This method updates the table entries of the robot and should be called by the arena after every change of robotdata. If the cards of a robot has changed the method updateCards should also be called.
Parameters:
robot - a reference to the robot

updateTimer

public void updateTimer(Robot robot,
                        java.lang.String time)
This method is for updating the timer of a group.
Parameters:
robot - a reference to the robot
time - string which contains the duration of the current task of the robot

updateTimer

private void updateTimer(int entryNo,
                         java.lang.String time)
This method is for updating the timer of a group.
Parameters:
entryNo - number of the table
time - string which contains the duration of the current task of the robot

updateEnergy

private void updateEnergy(int EntryNo,
                          int energy)
This method is for updating the energy of a group.
Parameters:
EntryNo - the entry number of the table
energy - the new energy

updateCards

public void updateCards(Robot robot,
                        int points,
                        java.util.HashSet cards)
This method is for updating the cards and points of a robot.
Parameters:
robot - a reference to the robot
points - the current points of a robot
cards - a hashset which contains the current cards of a robot

updateCards

private void updateCards(int entryNo,
                         int points,
                         java.util.HashSet cards)
This method is for updating the cards and points of a group.
Parameters:
entryNo - the entry number of the table
points - contains the current points of a group
cards - is a hashset which contains the current cards