GUI.Statistics
Class PeriodicDiagram

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--GUI.Statistics.PeriodicDiagram

public class PeriodicDiagram
extends javax.swing.JPanel

See Also:
Serialized Form

Inner Class Summary
(package private)  class PeriodicDiagram.Runner
          Moves the statistic queue in time (to make registrations apply to the correct interval).
 
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.IntVector, javax.swing.JComponent.KeyboardBinding, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
private  java.awt.Color[] color
           
(package private)  PeriodicDiagramImplementation diagramImplementation
           
static int GRAPH
           
private  double[][] history
           
private  int historyP
           
private  int interval
           
private  java.lang.String[] name
           
private  double[] value
           
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
PeriodicDiagram(int entries, int interval, int historyLength, int type)
          The only constructor for this class
 
Method Summary
 void add(int entry, double value)
          Add the value to the given entry at the current time
 double get(int interval, int entry)
          Get the accumulated value of the given entry in the given time interval
 java.awt.Color[] getColor()
          Return the color array
 int getHistoryLength()
          Returns the length of the history.
 java.lang.String[] getNames()
          Return the name array
 double[] getValues(int interval)
          Return the value array corresponding to the given interval
private  int intervalToIndex(int interval)
          Converts interval number to index number.
 void paint(java.awt.Graphics g)
          This method has been overrided to delegate the painting to the PeriodicDiagramImplementation
 void resetAll()
          Resets all values to 0, all names to the entry number and all colors to a default blue shaded spectrum
 void setColor(int entry, java.awt.Color color)
          The Color to use for painting the related graphics of the entry
 void setName(int entry, java.lang.String name)
          The name to associate with the given entry
 void setType(int type)
          Set the type, and sets up a PeriodicDiagramImplementation to use
 void update(java.awt.Graphics g)
          This metod has been overrided to stop it from clearing the graphic area.
 
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, bindingForKeyStroke, checkIfChildObscuredBySibling, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getCursorTarget, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setCursor, setFocusOwner, setLayout, transferFocus, updateCursor, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getIntrinsicCursor, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, 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

GRAPH

public static final int GRAPH

diagramImplementation

PeriodicDiagramImplementation diagramImplementation

value

private double[] value

color

private java.awt.Color[] color

name

private java.lang.String[] name

interval

private int interval

history

private double[][] history

historyP

private int historyP
Constructor Detail

PeriodicDiagram

public PeriodicDiagram(int entries,
                       int interval,
                       int historyLength,
                       int type)
The only constructor for this class
Parameters:
entry - The number of different entries to register
interval - The interval in which to register values - in seconds
historyLength - The number of intervals to remember
type - The type of diagram
Method Detail

getValues

public double[] getValues(int interval)
Return the value array corresponding to the given interval
Parameters:
interval - The interval
Returns:
The corresponding value array

intervalToIndex

private int intervalToIndex(int interval)
Converts interval number to index number. The interval number belongs to [0:history.length-1]. 0 is the oldest and history.length-1 is the current
Parameters:
interval - The interval
Returns:
The corresponding index in the history array

getNames

public java.lang.String[] getNames()
Return the name array
Returns:
The name array

getColor

public java.awt.Color[] getColor()
Return the color array
Returns:
The Color array

getHistoryLength

public int getHistoryLength()
Returns the length of the history. That is, how many intervals are remembered
Returns:
Length of history

setType

public void setType(int type)
Set the type, and sets up a PeriodicDiagramImplementation to use
Parameters:
type - The type
GRAPH: A normal graph

resetAll

public void resetAll()
Resets all values to 0, all names to the entry number and all colors to a default blue shaded spectrum

add

public void add(int entry,
                double value)
Add the value to the given entry at the current time
Parameters:
entry - The number of the entry - starts with 0
value - The value to add

get

public double get(int interval,
                  int entry)
Get the accumulated value of the given entry in the given time interval
Parameters:
interval - The interval
entry - The entry

setColor

public void setColor(int entry,
                     java.awt.Color color)
The Color to use for painting the related graphics of the entry
Parameters:
entry - The entry
color - The Color

setName

public void setName(int entry,
                    java.lang.String name)
The name to associate with the given entry
Parameters:
entry - The entry
name - The name

update

public void update(java.awt.Graphics g)
This metod has been overrided to stop it from clearing the graphic area. Clearing the graphic area would create an non-smoth update with a flickering image.
Overrides:
update in class javax.swing.JComponent

paint

public void paint(java.awt.Graphics g)
This method has been overrided to delegate the painting to the PeriodicDiagramImplementation
Overrides:
paint in class javax.swing.JComponent