schmitzm.swing
Class SelectionInputOption<E>

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by schmitzm.swing.InputOption<E>
                      extended by schmitzm.swing.SelectionInputOption<E>
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
SelectionInputOption.Combo, SelectionInputOption.Radio

public abstract class SelectionInputOption<E>
extends InputOption<E>

Diese Klasse stellt eine Auswahl-Eingabe-Option fuer das MultipleOptionPane dar. Die Klasse kann nicht direkt instanziiert werden. Statt dessen sind die eingebetteten Klassen

zu verwenden.

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

Nested Class Summary
static class SelectionInputOption.Combo<E>
          Diese Klasse stellt eine Auswahl-Option dar, die durch eine JComboBox dargestellt wird.
static class SelectionInputOption.Radio<E>
          Diese Klasse stellt eine Auswahl-Option dar, die durch ein JPanel mit vertikal angeordneten JRadioButtons dargestellt wird.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
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  Object[] displayObject
          Speichert die Objekte, die fuer die Auswahl angezeigt werden.
protected  Map<Object,String> displayToolTip
          Speichert fuer jedes selectionObject einen ToolTip, der fuer das Auswahl-Objekt angezeigt wird.
protected  E[] selectionObject
          Speichert die Objekte, die zur Auswahl stehen.
 
Fields inherited from class schmitzm.swing.InputOption
descLabel, inpComp, invalidInputMess, OPTION_COMPONENT
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
protected SelectionInputOption(String label, boolean inputNeeded, E[] value, E defValue, Object[] display)
          Erzeugt eine neue Eingabe-Option.
protected SelectionInputOption(String label, boolean inputNeeded, E[] value, E defValue, Object[] display, Map<Object,String> tooltip)
          Erzeugt eine neue Eingabe-Option.
protected SelectionInputOption(String label, boolean inputNeeded, E[] value, int defIdx, Object[] display)
          Erzeugt eine neue Eingabe-Option.
protected SelectionInputOption(String label, boolean inputNeeded, E[] value, Object[] display)
          Erzeugt eine neue Eingabe-Option.
 
Method Summary
 Object getSelectedDisplayItem()
          Liefert das Anzeige-Objekt der akuellen Auswahl.
abstract  int getSelectedIndex()
          Liefert den Index, der in der Objekt-Liste ausgewaehlt wurde.
 int getSelectedItemCount()
          Liefert die Anzahl der zur Auswahl stehenden Eintraege.
protected  E performGetValue()
          Liefert das Objekt, das zum aktuell ausgewaehlten Eintrag der Auswahl-Liste gehoert.
protected  boolean performIsInputEmpty()
          Prueft, ob im Auswahlfeld ein Eintrag ausgewaehlt wurde.
protected  boolean performIsInputValid()
          Liefert immer true, da keine speziellen Anforderungen an die Auswahl-Eingabe gestellt werden.
protected abstract  void performSelectionUpdate()
          Aktualisiert die Objekte in der der Auswahlkomponente.
protected  boolean performSetValue(E newValue)
          Setzt das Objekt, das in der Auswahlliste angewaehlt wird.
 void setSelectedDisplayItem(Object object)
          Setzt die Auswahl auf ein bestimmtes Anzeige-Objekt.
abstract  void setSelectedIndex(int idx)
          Setzt den Index, der in der Objekt-Liste ausgewaehlt wurde.
 void setSelectedItem(Object object)
          Setzt die Auswahl auf ein bestimmtes Objekt.
 void setSelectionObjects(E[] value, Object[] display)
          Setzt die im Auswahlfeld zur Verfuegung stehenden Eintraege
 void setSelectionObjects(E[] value, Object[] display, Map<Object,String> tooltip)
          Setzt die im Auswahlfeld zur Verfuegung stehenden Eintraege
 boolean setValue(E newValue)
          Setzt einen neuen Wert, mit der die Eingabe-Option belegt wird.
 
Methods inherited from class schmitzm.swing.InputOption
addInputOptionListener, createInputComponent, fireFocusGained, fireFocusLost, fireOptionChanged, getDescriptionLabel, getInputComponent, getInvalidInputMessage, getLabel, getValue, grabFocus, inputEmpty, inputNeeded, isInputValid, removeInputOptionListener, setEnabled, setInputNeeded, setToolTipText
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, 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

selectionObject

protected E[] selectionObject
Speichert die Objekte, die zur Auswahl stehen.


displayObject

protected Object[] displayObject
Speichert die Objekte, die fuer die Auswahl angezeigt werden.


displayToolTip

protected Map<Object,String> displayToolTip
Speichert fuer jedes selectionObject einen ToolTip, der fuer das Auswahl-Objekt angezeigt wird.

Constructor Detail

SelectionInputOption

protected SelectionInputOption(String label,
                               boolean inputNeeded,
                               E[] value,
                               int defIdx,
                               Object[] display)
Erzeugt eine neue Eingabe-Option.

Parameters:
label - Beschreibung
inputNeeded - gibt an, ob eine Eingabe erforderlich ist
value - die zur Auswahl stehenden Objekte
defIdx - Index der vorgeblendeten Auswahl
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden

SelectionInputOption

protected SelectionInputOption(String label,
                               boolean inputNeeded,
                               E[] value,
                               E defValue,
                               Object[] display)
Erzeugt eine neue Eingabe-Option.

Parameters:
label - Beschreibung
inputNeeded - gibt an, ob eine Eingabe erforderlich ist
value - die zur Auswahl stehenden Objekte
defValue - vorgeblendetes Auswahlobjekt
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden

SelectionInputOption

protected SelectionInputOption(String label,
                               boolean inputNeeded,
                               E[] value,
                               E defValue,
                               Object[] display,
                               Map<Object,String> tooltip)
Erzeugt eine neue Eingabe-Option.

Parameters:
label - Beschreibung
inputNeeded - gibt an, ob eine Eingabe erforderlich ist
value - die zur Auswahl stehenden Objekte
defValue - vorgeblendetes Auswahlobjekt
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
tooltip - die fuer jedes Auswahl-Objekt angezeigten Tooltips (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden

SelectionInputOption

protected SelectionInputOption(String label,
                               boolean inputNeeded,
                               E[] value,
                               Object[] display)
Erzeugt eine neue Eingabe-Option. Es wird (sofern vorhanden) das erste Auswahl-Objekt vorgeblendet.

Parameters:
label - Beschreibung
inputNeeded - gibt an, ob eine Eingabe erforderlich ist
value - die zur Auswahl stehenden Objekte
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden
Method Detail

setSelectionObjects

public void setSelectionObjects(E[] value,
                                Object[] display)
Setzt die im Auswahlfeld zur Verfuegung stehenden Eintraege

Parameters:
value - die zur Auswahl stehenden Objekte
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden

setSelectionObjects

public void setSelectionObjects(E[] value,
                                Object[] display,
                                Map<Object,String> tooltip)
Setzt die im Auswahlfeld zur Verfuegung stehenden Eintraege

Parameters:
value - die zur Auswahl stehenden Objekte
display - die anstelle der Auswahl-Objekte angezeigten Objekte (kann null sein)
tooltip - die fuer jedes Auswahl-Objekt angezeigten Tooltips (kann null sein)
Throws:
IllegalArgumentException - falls sich die Array-Groessen von value und display unterscheiden

performSelectionUpdate

protected abstract void performSelectionUpdate()
Aktualisiert die Objekte in der der Auswahlkomponente. Wird aufgerufen, wenn dich die zur Auswahl stehenden Objekte aendern. Die Variablen selectionObject und displayObject sind dann bereits aktualisiert,


performIsInputValid

protected boolean performIsInputValid()
Liefert immer true, da keine speziellen Anforderungen an die Auswahl-Eingabe gestellt werden.

Specified by:
performIsInputValid in class InputOption<E>

performIsInputEmpty

protected boolean performIsInputEmpty()
Prueft, ob im Auswahlfeld ein Eintrag ausgewaehlt wurde.

Specified by:
performIsInputEmpty in class InputOption<E>

performGetValue

protected E performGetValue()
Liefert das Objekt, das zum aktuell ausgewaehlten Eintrag der Auswahl-Liste gehoert.

Specified by:
performGetValue in class InputOption<E>
Returns:
null falls kein Objekt ausgewaehlt ist

performSetValue

protected boolean performSetValue(E newValue)
Setzt das Objekt, das in der Auswahlliste angewaehlt wird. Ruft setSelectedItem(Object) auf.

Specified by:
performSetValue in class InputOption<E>
Parameters:
newValue - neuer Wert
Returns:
immer true

setValue

public boolean setValue(E newValue)
Setzt einen neuen Wert, mit der die Eingabe-Option belegt wird. Ruft lediglich performSetValue(Object) auf. Ueberschreibt die Methode von InputOption, da die Ueberpruefung auf Aenderung (und Event-Ausloesung) in setSelectedIndex(int) erfolgt.

Overrides:
setValue in class InputOption<E>
Parameters:
newValue - neuer Wert
Returns:
false gdw. der Objekt-Typ fuer die Option nicht zulaessig ist

getSelectedIndex

public abstract int getSelectedIndex()
Liefert den Index, der in der Objekt-Liste ausgewaehlt wurde.

Returns:
-1 falls kein Objekt ausgewaehlt wurde

setSelectedIndex

public abstract void setSelectedIndex(int idx)
Setzt den Index, der in der Objekt-Liste ausgewaehlt wurde. Da dies die Basis-Methode fuer alle Aenderungsoperationen darstellt, muss sie die Ueberpruefung auf Aenderung implementieren und ggf. InputOption.fireOptionChanged(Object,Object) ausloesen.

Parameters:
idx - Listen-Index (-1 um eine Leer-Auswahl zu erzeugen)

setSelectedItem

public void setSelectedItem(Object object)
Setzt die Auswahl auf ein bestimmtes Objekt. Ist dieses nicht vorhanden, wird die Auswahlliste auf eine leere Auswahl eingestellt.


getSelectedDisplayItem

public Object getSelectedDisplayItem()
Liefert das Anzeige-Objekt der akuellen Auswahl.


setSelectedDisplayItem

public void setSelectedDisplayItem(Object object)
Setzt die Auswahl auf ein bestimmtes Anzeige-Objekt. Ist dieses nicht vorhanden, wird die Auswahlliste auf eine leere Auswahl eingestellt.


getSelectedItemCount

public int getSelectedItemCount()
Liefert die Anzahl der zur Auswahl stehenden Eintraege.