schmitzm.swing
Class InputOption<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>
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
BooleanInputOption, ColorInputOption, FeatureInputOption, FeatureTypeInputOption, ManualInputOption, SelectionInputOption

public abstract class InputOption<E>
extends JPanel

Diese Klasse stellt die allgemeine Oberklasse fuer eine Eingabe-Option des MultipleOptionPane dar. Jede Option besteht aus einem Label und einem Eingabefeld. Die Art des Eingabefelds wird durch die Unterklassen spezifiziert.

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

Nested Class Summary
 
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  JLabel descLabel
          Speichert die Beschreibung der Option
protected  JComponent inpComp
          Speichert die Eingabe-Komponente der Option.
protected  String invalidInputMess
          Kann eine Fehlermeldung enthalten, wenn die Eingabe nicht valide ist.
protected  Component OPTION_COMPONENT
          Speichert eine Referenz auf die Eingabe-Option (this), damit in inneren Klassen darauf referenziert werden kann.
 
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
InputOption(String label, boolean inputNeeded)
          Erzeugt eine neue Eingabe-Option.
InputOption(String label, boolean inputNeeded, boolean centerInputComp)
          Erzeugt eine neue Eingabe-Option.
 
Method Summary
 void addInputOptionListener(InputOptionListener l)
          Fuegt der Eingabeoption einen Listener hinzu.
protected abstract  JComponent createInputComponent()
          Erzeugt eine neue Instanz der Eingabe-Komponente. z.B. ein Text-Eingabefeld oder eine Combo-Box.
protected  void fireFocusGained()
          Informiert alle InputOptionListener, dass die Eingabe-Option den Fokus erhalten hat.
protected  void fireFocusLost()
          Informiert alle InputOptionListener, dass die Eingabe-Option den Fokus verloren hat.
protected  void fireOptionChanged(E oldValue, E newValue)
          Informiert alle InputOptionListener, dass sich der Wert der Eingabeoption geaendert hat.
 JLabel getDescriptionLabel()
          Liefert eine Referenz auf das Beschreibungs-Label.
 JComponent getInputComponent()
          Liefert eine Referenz auf die Eingabe-Komponente.
 String getInvalidInputMessage()
          Liefert die letzte von isInputValid() erzeugte Fehlermeldung.
 String getLabel()
          Liefert die Beschreibung der Eingabe-Option.
 E getValue()
          Liefert den Wert, der in der Option eingegeben wurde.
 void grabFocus()
          Setzt den Fokus auf das Eingabe-Feld der InputOption.
 boolean inputEmpty()
          Prueft, ob das Feld eine Leereingabe beinhaltet.
 boolean inputNeeded()
          Prueft, ob fuer das Feld zwingend eine Eingabe erforderlich ist.
 boolean isInputValid()
          Prueft, ob die Eingabe in dem Feld zulaessig ist.
protected abstract  E performGetValue()
          Liefert den aktuellen Wert der Eingabe-Option.
protected abstract  boolean performIsInputEmpty()
          Prueft, ob die aktuelle Eingabe leer ist.
protected abstract  boolean performIsInputValid()
          Prueft, ob die aktuelle Eingabe leer ist.
protected abstract  boolean performSetValue(E newValue)
          Setzt den aktuellen Wert der Eingabe-Option.
 void removeInputOptionListener(InputOptionListener l)
          Entfernt einen Listener von der Eingabeoption.
 void setEnabled(boolean enabled)
          Deaktiviert die Option, in dem die Eingabe-Komponente deaktiviert wird.
 void setInputNeeded(boolean inpNeeded)
          Bestimmt, ob fuer das Feld zwingend eine Eingabe erforderlich ist.
 void setToolTipText(String text)
          Setzt den Hilfetext fuer Eingabe-Komponente und Beschreibungslabel.
 boolean setValue(E newValue)
          Setzt einen neuen Wert, mit der die Eingabe-Option belegt wird.
 
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

OPTION_COMPONENT

protected final Component OPTION_COMPONENT
Speichert eine Referenz auf die Eingabe-Option (this), damit in inneren Klassen darauf referenziert werden kann.


descLabel

protected JLabel descLabel
Speichert die Beschreibung der Option


inpComp

protected JComponent inpComp
Speichert die Eingabe-Komponente der Option.


invalidInputMess

protected String invalidInputMess
Kann eine Fehlermeldung enthalten, wenn die Eingabe nicht valide ist. Kann direkt von performIsInputValid() befuellt werden. Wird automatisch befuellt, wenn performIsInputValid() eine Exception wirft.

Constructor Detail

InputOption

public InputOption(String label,
                   boolean inputNeeded)
Erzeugt eine neue Eingabe-Option.

Parameters:
label - Beschreibung (wird im Label angezeigt)
inputNeeded - gibt an, ob eine Eingabe in der Option erforderlich ist

InputOption

public InputOption(String label,
                   boolean inputNeeded,
                   boolean centerInputComp)
Erzeugt eine neue Eingabe-Option.

Parameters:
label - Beschreibung (wird im Label angezeigt)
inputNeeded - gibt an, ob eine Eingabe in der Option erforderlich ist
centerInputComp - bestimmt, ob die Eingabe-Komponente (siehe createInputComponent()) ins Zentrum des BorderLayout gelegt wird)
Method Detail

setEnabled

public void setEnabled(boolean enabled)
Deaktiviert die Option, in dem die Eingabe-Komponente deaktiviert wird.

Overrides:
setEnabled in class JComponent

setToolTipText

public void setToolTipText(String text)
Setzt den Hilfetext fuer Eingabe-Komponente und Beschreibungslabel.

Overrides:
setToolTipText in class JComponent
Parameters:
text - Hilfe-Text

grabFocus

public void grabFocus()
Setzt den Fokus auf das Eingabe-Feld der InputOption.

Overrides:
grabFocus in class JComponent

getValue

public E getValue()
Liefert den Wert, der in der Option eingegeben wurde. Prueft zuerst auf Gueltigkeit und ruft dann performGetValue() auf.

Returns:
null wenn die aktuelle Eingabe nicht zulaessig ist (siehe isInputValid())

setValue

public boolean setValue(E newValue)
Setzt einen neuen Wert, mit der die Eingabe-Option belegt wird. Ruft performSetValue(Object) auf und bewirkt ein InputOptionListener#optionChanged(Object,Object) fuer alle angeschlossenen InputOptionListener, falls sich der Wert der Option geaendert hat.

Parameters:
newValue - neuer Wert
Returns:
false gdw. der Objekt-Typ fuer die Option nicht zulaessig ist

getLabel

public String getLabel()
Liefert die Beschreibung der Eingabe-Option.


inputNeeded

public boolean inputNeeded()
Prueft, ob fuer das Feld zwingend eine Eingabe erforderlich ist.


setInputNeeded

public void setInputNeeded(boolean inpNeeded)
Bestimmt, ob fuer das Feld zwingend eine Eingabe erforderlich ist.


isInputValid

public boolean isInputValid()
Prueft, ob die Eingabe in dem Feld zulaessig ist. Die Implementierung prueft zuerst auf Leereingabe und ruft dann performIsInputValid() auf.

Returns:
false falls die Option leer ist, aber eine Eingabe erforderlich ist

getInvalidInputMessage

public String getInvalidInputMessage()
Liefert die letzte von isInputValid() erzeugte Fehlermeldung.


inputEmpty

public boolean inputEmpty()
Prueft, ob das Feld eine Leereingabe beinhaltet.

See Also:
performIsInputEmpty()

getInputComponent

public JComponent getInputComponent()
Liefert eine Referenz auf die Eingabe-Komponente.
Bemerke:
Uber diese Referenz sollte hoechsten ihr Layout beeinflusst werden, aber nicht ihr Verhalten, da ansonsten die Funktionalitaet der InputOption negativ beeinflusst werden kann!!


getDescriptionLabel

public JLabel getDescriptionLabel()
Liefert eine Referenz auf das Beschreibungs-Label.
Bemerke:
Uber diese Referenz sollte hoechsten das Layout beeinflusst werden, aber nicht das Verhalten, da ansonsten die Funktionalitaet der InputOption negativ beeinflusst werden kann!!


createInputComponent

protected abstract JComponent createInputComponent()
Erzeugt eine neue Instanz der Eingabe-Komponente. z.B. ein Text-Eingabefeld oder eine Combo-Box.


performGetValue

protected abstract E performGetValue()
Liefert den aktuellen Wert der Eingabe-Option.


performSetValue

protected abstract boolean performSetValue(E newValue)
Setzt den aktuellen Wert der Eingabe-Option. Ist der Objekt-Typ fuer die Option nicht zulaessig, sollte nichts gemacht werden und false zurueckgegeben werden.

Parameters:
newValue - neuer Wert
Returns:
false gdw. der Objekt-Typ fuer die Eingabe-Option nicht zulaessig ist

performIsInputEmpty

protected abstract boolean performIsInputEmpty()
Prueft, ob die aktuelle Eingabe leer ist.


performIsInputValid

protected abstract boolean performIsInputValid()
Prueft, ob die aktuelle Eingabe leer ist.


addInputOptionListener

public void addInputOptionListener(InputOptionListener l)
Fuegt der Eingabeoption einen Listener hinzu.

Parameters:
l - neuer Listener

removeInputOptionListener

public void removeInputOptionListener(InputOptionListener l)
Entfernt einen Listener von der Eingabeoption.

Parameters:
l - zu entfernender Listener

fireFocusGained

protected void fireFocusGained()
Informiert alle InputOptionListener, dass die Eingabe-Option den Fokus erhalten hat.


fireFocusLost

protected void fireFocusLost()
Informiert alle InputOptionListener, dass die Eingabe-Option den Fokus verloren hat.


fireOptionChanged

protected void fireOptionChanged(E oldValue,
                                 E newValue)
Informiert alle InputOptionListener, dass sich der Wert der Eingabeoption geaendert hat.

Parameters:
oldValue - alter Optionswert
newValue - neuer Optionswert