schmitzm.swing
Class ExpansionBar

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by schmitzm.swing.ExpansionBar
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class ExpansionBar
extends Container

Ein ExpansionBar aehnelt einem JProgressBar, mit dem Unterschied, dass die Auspraegung des ExpansionBar nicht nur in eine Richtung gehen kann (unten nach oben, oder links nach rechts), sondern ausgehend von einem vorgegebenen Mitte-Wert in beide Richtungen, je nachdem, ob der gesetzte Wert groesser oder kleiner ist als der Mitte-Wert.
Waehrend der JProgressBar als Status-Balken aufgefasst werden kann, der stetig fortschreitet, dient der der ExpansionBar auch der Anzeige von negativen Werten (z.B. Abweichungswerten oder Amplituden). Fuer die Abweichung koennen je ein oberer und unterer Grenzwert festgelegt werden. Liegt der aktuelle Wert des Balken innerhalb dieser Toleranz, wird er gruen angezeigt, ansonsten rot.
Optional koennen fuer den Balken Labels mit den Grenz-Werten (Minimum, Mitte, Maximum) angezeigt werden (siehe setValueLabelsPainted(boolean). Dies ist per Default jedoch deaktiviert.
Bemerke:
Bei vertikaler Darstellung gibt es noch Probleme mit der Label-Darstellung!

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  int fracFact
          Speichert den Umrechnungsfaktor, um von den gesetzten double-Werten auf Integer fuer die JProgressBar-Instanzen umzurechnen.
static int HORIZONTAL
          Konstante fuer eine horizontale Ausrichtung des Balken.
protected  Color intoleranceColor
          Speichert die Farbe, in der der Balken angezeigt wird, wenn der Wert ausserhalb der Toleranz liegt.
static int LINEAR
          Konstante fuer eine lineare Darstellung des Balken.
static int LOGARITHMIC
          Konstante fuer eine logarithmische Darstellung des Balken.
protected  Color toleranceColor
          Speichert die Farbe, in der der Balken angezeigt wird, wenn der Wert innerhalb der Toleranz liegt.
static int VERTICAL
          Konstante fuer eine vertikale Ausrichtung des Balken.
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ExpansionBar(int orient, double min, double max, double mid, double tol, NumberFormat form)
          Erzeugt einen neuen linearen Balken.
ExpansionBar(int orient, double min, double max, double tol, NumberFormat form)
          Erzeugt einen neuen linearen Balken.
ExpansionBar(int orient, int type, double min, double max, double mid, double minTol, double maxTol, double initValue, NumberFormat barForm, NumberFormat infoForm)
          Erzeugt einen neuen Balken.
ExpansionBar(int orient, int type, double min, double max, double mid, double tol, NumberFormat form)
          Erzeugt einen neuen Balken.
ExpansionBar(int orient, int type, double min, double max, double tol, NumberFormat form)
          Erzeugt einen neuen Balken.
 
Method Summary
protected  void checkValues()
          Prueft die durch den Konstruktor gesetzten Initialisierungswerte auf korrektheit.
protected  int convertToProgressBarValue(double val)
          Der ExpansionBar ist ueber zwei JProgressBars realisiert.
 Color getBackground()
          Liefert die Hintergrund-Farbe des Balkens.
 Color getForeground()
          Liefert die aktuelle Vordergrund-Farbe des Balkens.
 Color getIntoleranceColor()
          Liefert die Farbe, die angezeigt wird, wenn der Balkenwert ausserhalb der Toleranz liegt.
 double getMaximum()
          Liefert den Maximum-Wert des Balkens.
 double getMaximumTolerance()
          Liefert den (absoluten) Wert nach oben, bis zu dessen Wert der Balkens in gruen dargstellt wird.
 double getMiddle()
          Liefert den Mitte-Wert des Balkens.
 double getMinimum()
          Liefert den Minimum-Wert des Balkens.
 double getMinimumTolerance()
          Liefert den (absoluten) Wert nach unten, bis zu dessen Wert der Balkens in gruen dargstellt wird.
 boolean getStringPainted()
          Prueft, ob der Balken-Wert angezeigt wird.
 Color getToleranceColor()
          Liefert die Farbe, die angezeigt wird, wenn der Balkenwert innerhalb der Toleranz liegt.
 double getValue()
          Liefert den aktuellen Wert des Balkens.
 boolean getValueLabelsPainted()
          Prueft, ob die Minimum/Mitte/Maximum-Labels angezeigt werden.
 void setBackground(Color color)
          Setzt die Hintergrund-Farbe des Balkens.
 void setForeground(Color color)
          Setzt die Vordergrundfarbe des Balken unabhaengig davon, ob der Wert innerhalb oder ausserhalb der Toleranz liegt.
 void setIntoleranceColor(Color color)
          Setzt die Farbe, die angezeigt wird, wenn der Balkenwert ausserhalb der Toleranz liegt.
 void setMaximumTolerance(double maxTol)
          Setzt den (absoluten) Wert nach oben, bis zu dessen Wert der Balkens in gruen dargstellt wird.
 void setMinimumTolerance(double minTol)
          Setzt den (absoluten) Wert nach unten, bis zu dessen Wert der Balkens in gruen dargstellt wird.
 void setStringPainted(boolean strPaint)
          Zeigt den Balken-Wert an oder verbirgt ihn.
 void setToleranceColor(Color color)
          Setzt die Farbe, die angezeigt wird, wenn der Balkenwert innerhalb der Toleranz liegt.
 void setValue(double value)
          Setzt den aktuellen Wert des Balkens.
 void setValueLabelsPainted(boolean visible)
          Zeigt die Minimum/Mitte/Maximum-Labels an oder verbirgt sie.
protected  void updateForeground()
          Aktualisiert die Vordergrundfarbe des Balkens, je nachdem, ob der Balkenwert aktuell innerhalb oder ausserhalb der Toleranz liegt.
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, 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, getAccessibleContext, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LINEAR

public static final int LINEAR
Konstante fuer eine lineare Darstellung des Balken.

See Also:
Constant Field Values

LOGARITHMIC

public static final int LOGARITHMIC
Konstante fuer eine logarithmische Darstellung des Balken.

See Also:
Constant Field Values

VERTICAL

public static final int VERTICAL
Konstante fuer eine vertikale Ausrichtung des Balken.

See Also:
SwingConstants.VERTICAL, Constant Field Values

HORIZONTAL

public static final int HORIZONTAL
Konstante fuer eine horizontale Ausrichtung des Balken.

See Also:
SwingConstants.HORIZONTAL, Constant Field Values

fracFact

protected int fracFact
Speichert den Umrechnungsfaktor, um von den gesetzten double-Werten auf Integer fuer die JProgressBar-Instanzen umzurechnen.

See Also:
convertToProgressBarValue(double)

toleranceColor

protected Color toleranceColor
Speichert die Farbe, in der der Balken angezeigt wird, wenn der Wert innerhalb der Toleranz liegt.
Default: Gruen


intoleranceColor

protected Color intoleranceColor
Speichert die Farbe, in der der Balken angezeigt wird, wenn der Wert ausserhalb der Toleranz liegt.
Default: Rot

Constructor Detail

ExpansionBar

public ExpansionBar(int orient,
                    double min,
                    double max,
                    double tol,
                    NumberFormat form)
Erzeugt einen neuen linearen Balken. Als Mitte-Wert wird 0 gesetzt und die Toleranz ist nach oben und unten gleich.
Die Minimum-, Mitte- und Maximum-Label werden standardmaessig nicht angezeigt, wohl aber der aktuelle Balkenwert.

Parameters:
orient - Orientierung des Balken (ExpansionBar.HORIZONTAL oder ExpansionBar.VERTICAL
min - Minimalwert des Balkens
max - Maximalwert des Balkens
tol - Toleranzwert nach oben/unten bis zu dem der Balken gruen dargestellt wird (muss zwischen 0 und max liegen)
form - Bestimmt die Darstellung der Werte im Anzeige-Label des Balken und in der etwaigen Info-Leiste
Throws:
IllegalArgumentException - falls die Konstellation der angegeben Werte unzulaessig ist
See Also:
setValueLabelsPainted(boolean), setStringPainted(boolean)

ExpansionBar

public ExpansionBar(int orient,
                    int type,
                    double min,
                    double max,
                    double tol,
                    NumberFormat form)
Erzeugt einen neuen Balken. Als Mitte-Wert wird 0 gesetzt und die Toleranz ist nach oben und unten gleich.
Die Minimum-, Mitte- und Maximum-Label werden standardmaessig nicht angezeigt, wohl aber der aktuelle Balkenwert.

Parameters:
orient - Orientierung des Balken (ExpansionBar.HORIZONTAL oder ExpansionBar.VERTICAL
type - Darstellung des Balken (ExpansionBar.LINEAR oder ExpansionBar.LOGARITHMIC
min - Minimalwert des Balkens
max - Maximalwert des Balkens
tol - Toleranzwert nach oben/unten bis zu dem der Balken gruen dargestellt wird (muss zwischen 0 und max liegen)
form - Bestimmt die Darstellung der Werte im Anzeige-Label des Balken und in der etwaigen Info-Leiste
Throws:
IllegalArgumentException - falls die Konstellation der angegeben Werte unzulaessig ist
See Also:
setValueLabelsPainted(boolean), setStringPainted(boolean)

ExpansionBar

public ExpansionBar(int orient,
                    double min,
                    double max,
                    double mid,
                    double tol,
                    NumberFormat form)
Erzeugt einen neuen linearen Balken. Die Toleranz vom Mitte-Wert ist nach oben und unten gleich.
Die Minimum-, Mitte- und Maximum-Label werden standardmaessig nicht angezeigt, wohl aber der aktuelle Balkenwert.

Parameters:
orient - Orientierung des Balken (ExpansionBar.HORIZONTAL oder ExpansionBar.VERTICAL
min - Minimalwert des Balkens
max - Maximalwert des Balkens
mid - Mitte-Wert des Balkens (muss zwischen min und max liegen)
tol - Toleranzwert (relativ zur Mitte!) bis zu dem der Balken gruen dargestellt wird (muss zwischen 0 und max liegen)
form - Bestimmt die Darstellung der Werte im Anzeige-Label des Balken und in der etwaigen Info-Leiste
Throws:
IllegalArgumentException - falls die Konstellation der angegeben Werte unzulaessig ist
See Also:
setValueLabelsPainted(boolean), setStringPainted(boolean)

ExpansionBar

public ExpansionBar(int orient,
                    int type,
                    double min,
                    double max,
                    double mid,
                    double tol,
                    NumberFormat form)
Erzeugt einen neuen Balken. Die Toleranz vom Mitte-Wert ist nach oben und unten gleich.
Die Minimum-, Mitte- und Maximum-Label werden standardmaessig nicht angezeigt, wohl aber der aktuelle Balkenwert.

Parameters:
orient - Orientierung des Balken (ExpansionBar.HORIZONTAL oder ExpansionBar.VERTICAL
type - Darstellung des Balken (ExpansionBar.LINEAR oder ExpansionBar.LOGARITHMIC
min - Minimalwert des Balkens
max - Maximalwert des Balkens
mid - Mitte-Wert des Balkens (muss zwischen min und max liegen)
tol - Toleranzwert (relativ zur Mitte!) bis zu dem der Balken gruen dargestellt wird (muss zwischen 0 und max liegen)
form - Bestimmt die Darstellung der Werte im Anzeige-Label des Balken und in der etwaigen Info-Leiste
Throws:
IllegalArgumentException - falls die Konstellation der angegeben Werte unzulaessig ist
See Also:
setValueLabelsPainted(boolean), setStringPainted(boolean)

ExpansionBar

public ExpansionBar(int orient,
                    int type,
                    double min,
                    double max,
                    double mid,
                    double minTol,
                    double maxTol,
                    double initValue,
                    NumberFormat barForm,
                    NumberFormat infoForm)
Erzeugt einen neuen Balken. Die Minimum-, Mitte- und Maximum-Label werden standardmaessig nicht angezeigt, wohl aber der aktuelle Balkenwert.

Parameters:
orient - Orientierung des Balken (ExpansionBar.HORIZONTAL oder ExpansionBar.VERTICAL
type - Darstellung des Balken (ExpansionBar.LINEAR oder ExpansionBar.LOGARITHMIC
min - Minimalwert des Balkens
max - Maximalwert des Balkens
mid - Mitte-Wert des Balkens (muss zwischen min und max liegen)
minTol - Absoluter Toleranzwert nach unten bis zu dem der Balken gruen dargestellt wird (muss zwischen min und mid liegen)
maxTol - Absoluter Toleranzwert nach oben bis zu dem der Balken gruen dargestellt wird (muss zwischen mid und max liegen)
initValue - Initialer Wert den der Balken annimmt
barForm - Bestimmt die Darstellung der Werte im Anzeige-Label des Balken
infoForm - Bestimmt die Darstellung der Werte im etwaigen Info-Label unterhalb des Balken
Throws:
IllegalArgumentException - falls die Konstellation der angegeben Werte unzulaessig ist
See Also:
setValueLabelsPainted(boolean), setStringPainted(boolean)
Method Detail

convertToProgressBarValue

protected int convertToProgressBarValue(double val)
Der ExpansionBar ist ueber zwei JProgressBars realisiert. Diese koennen nur Integers darstellen. Damit auch kleinere Bereiche (z.B. zwischen 0 und 1) fliessend dargestellt werden koennen, wird der Bereich auf (mind. 1000 Werte) skaliert. Desweiteren wird ggf. auf eine logarithmische Darstellung umgerechnet.

Parameters:
val - umzurechnender Wert
See Also:
fracFact

checkValues

protected void checkValues()
Prueft die durch den Konstruktor gesetzten Initialisierungswerte auf korrektheit.
  1. min <= max
  2. min <= mid <= max
  3. min <= minTol <= mid
  4. mid <= maxTol <= max
  5. orient == ExpansionBar.HORIZONTAL || orient == ExpansionBar.VERTICAL


getMinimum

public double getMinimum()
Liefert den Minimum-Wert des Balkens.


getMaximum

public double getMaximum()
Liefert den Maximum-Wert des Balkens.


getMiddle

public double getMiddle()
Liefert den Mitte-Wert des Balkens.


getMinimumTolerance

public double getMinimumTolerance()
Liefert den (absoluten) Wert nach unten, bis zu dessen Wert der Balkens in gruen dargstellt wird.


setMinimumTolerance

public void setMinimumTolerance(double minTol)
Setzt den (absoluten) Wert nach unten, bis zu dessen Wert der Balkens in gruen dargstellt wird.


getMaximumTolerance

public double getMaximumTolerance()
Liefert den (absoluten) Wert nach oben, bis zu dessen Wert der Balkens in gruen dargstellt wird.


setMaximumTolerance

public void setMaximumTolerance(double maxTol)
Setzt den (absoluten) Wert nach oben, bis zu dessen Wert der Balkens in gruen dargstellt wird.


getValue

public double getValue()
Liefert den aktuellen Wert des Balkens.


setValue

public void setValue(double value)
Setzt den aktuellen Wert des Balkens.


getValueLabelsPainted

public boolean getValueLabelsPainted()
Prueft, ob die Minimum/Mitte/Maximum-Labels angezeigt werden.


setValueLabelsPainted

public void setValueLabelsPainted(boolean visible)
Zeigt die Minimum/Mitte/Maximum-Labels an oder verbirgt sie.


getStringPainted

public boolean getStringPainted()
Prueft, ob der Balken-Wert angezeigt wird.


setStringPainted

public void setStringPainted(boolean strPaint)
Zeigt den Balken-Wert an oder verbirgt ihn.


updateForeground

protected void updateForeground()
Aktualisiert die Vordergrundfarbe des Balkens, je nachdem, ob der Balkenwert aktuell innerhalb oder ausserhalb der Toleranz liegt.


setToleranceColor

public void setToleranceColor(Color color)
Setzt die Farbe, die angezeigt wird, wenn der Balkenwert innerhalb der Toleranz liegt.


getToleranceColor

public Color getToleranceColor()
Liefert die Farbe, die angezeigt wird, wenn der Balkenwert innerhalb der Toleranz liegt.


setIntoleranceColor

public void setIntoleranceColor(Color color)
Setzt die Farbe, die angezeigt wird, wenn der Balkenwert ausserhalb der Toleranz liegt.


getIntoleranceColor

public Color getIntoleranceColor()
Liefert die Farbe, die angezeigt wird, wenn der Balkenwert ausserhalb der Toleranz liegt.


getForeground

public Color getForeground()
Liefert die aktuelle Vordergrund-Farbe des Balkens.

Overrides:
getForeground in class Component

setForeground

public void setForeground(Color color)
Setzt die Vordergrundfarbe des Balken unabhaengig davon, ob der Wert innerhalb oder ausserhalb der Toleranz liegt.
Bemerke:
Dies beeinflusst die (In)Toleranz-Farben nicht! Bei der naechsten Aktualisierung (z.B. setValue(double)) wird die Farbe wieder entsprechend der (In)Toleranz-Einstellungen gesetzt.

Overrides:
setForeground in class Component
See Also:
setToleranceColor(Color), setIntoleranceColor(Color)

getBackground

public Color getBackground()
Liefert die Hintergrund-Farbe des Balkens.

Overrides:
getBackground in class Component

setBackground

public void setBackground(Color color)
Setzt die Hintergrund-Farbe des Balkens.

Overrides:
setBackground in class Component