de.unihalle.informatik.Alida.dataio.provider.helpers
Class ALDParameterPanel

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 de.unihalle.informatik.Alida.dataio.provider.helpers.ALDParameterPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class ALDParameterPanel
extends javax.swing.JPanel

Class for configuring sets of parameters via GUI in Alida.

This class provides a panel containing GUI elements to configure all parameters of a set provided at initialization. Note that parameter labels can be marked and unmarked externally. This feature is, e.g., be used during parameter validation.

This panel allows to validate its parameters, i.e. if a certain parameter is declared as required, but reading the parameter results in 'null', the parameter is marked in the GUI.

Author:
moeller
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.util.HashMap<ALDParameterDescriptor,javax.swing.JComponent> componentMap
          Maps a parameter descriptor to its component in the GUI.
private  boolean debug
          Local debug flag, not accessible from outside of the class.
private  java.util.HashMap<ALDParameterDescriptor,javax.swing.JLabel> labelMap
          Maps a descriptor to its JLabel component in the panel.
private  boolean nullReturnsForbidden
          Flag indicating if null return values are ok.
private  boolean onlyDisplay
          Flag to disable editability of GUI elements.
private  java.util.LinkedList<? extends ALDParameterDescriptor> paramDescriptors
          List of parameter descriptors managed by this panel.
private  java.lang.String titleString
          Optional title string for panel.
 
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
ALDParameterPanel(java.util.LinkedList<? extends ALDParameterDescriptor> paramDescrips, java.lang.String title, boolean topLevelCall)
          Default constructor.
ALDParameterPanel(java.util.LinkedList<? extends ALDParameterDescriptor> paramDescrips, java.lang.String title, boolean topLevelCall, boolean noEdit)
          Constructor.
 
Method Summary
private  void buildInputPanel()
          Builds up the input panel.
 void changeViewMode(Parameter.ExpertMode mode)
          Changes the view mode.
 void markParameter(ALDParameterDescriptor descr)
          Sets label color of parameter to red (e.g. if validation failed).
 java.lang.Object readParameter(ALDParameterDescriptor descr)
          Get value of given parameter from the GUI element.
 void setEnabled(boolean b)
           
 void setParameter(ALDParameterDescriptor descr, java.lang.Object value)
          Set value of given parameter, i.e. pass the value to GUI component.
 void unmarkAllParameters()
          Sets label colors of all parameter to black.
 void unmarkParameter(ALDParameterDescriptor descr)
          Sets label color of parameter to black (e.g. if validation successful).
 boolean validateParameters()
          Check if all GUI elements can deliver a proper (non-null) value.
 
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, grabFocus, 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, setToolTipText, 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

componentMap

private java.util.HashMap<ALDParameterDescriptor,javax.swing.JComponent> componentMap
Maps a parameter descriptor to its component in the GUI.


debug

private boolean debug
Local debug flag, not accessible from outside of the class.


labelMap

private java.util.HashMap<ALDParameterDescriptor,javax.swing.JLabel> labelMap
Maps a descriptor to its JLabel component in the panel.


nullReturnsForbidden

private boolean nullReturnsForbidden
Flag indicating if null return values are ok.

Mostly null returns are not ok on top level operator configuration, however, operators being passed as parameters to other operators might accept null parameters.


onlyDisplay

private boolean onlyDisplay
Flag to disable editability of GUI elements.

If the flag is set true, parameter editing is not possible, i.e. the graphical elements in the window are not editable.


paramDescriptors

private java.util.LinkedList<? extends ALDParameterDescriptor> paramDescriptors
List of parameter descriptors managed by this panel.


titleString

private java.lang.String titleString
Optional title string for panel.

Constructor Detail

ALDParameterPanel

public ALDParameterPanel(java.util.LinkedList<? extends ALDParameterDescriptor> paramDescrips,
                         java.lang.String title,
                         boolean topLevelCall)
Default constructor.

Parameters:
paramDescrips - List of parameter descriptors to manage.
title - Title of panel.
topLevelCall - If true, null returns are forbidden.

ALDParameterPanel

public ALDParameterPanel(java.util.LinkedList<? extends ALDParameterDescriptor> paramDescrips,
                         java.lang.String title,
                         boolean topLevelCall,
                         boolean noEdit)
Constructor.

Parameters:
paramDescrips - List of parameter descriptors to manage.
title - Title of panel.
topLevelCall - If true, null returns are forbidden.
noEdit - If true, elements cannot be edited.
Method Detail

buildInputPanel

private void buildInputPanel()
Builds up the input panel.


changeViewMode

public void changeViewMode(Parameter.ExpertMode mode)
Changes the view mode.

There are the view modes 'standard' and 'advanced' available in the GUI. In standard mode only the parameters annotated as standard are visible, while in advanced mode all parameters are visible.

Parameters:
mode - Desired display mode.

markParameter

public void markParameter(ALDParameterDescriptor descr)
Sets label color of parameter to red (e.g. if validation failed).

Parameters:
descr - Descriptor of parameter to mark.

readParameter

public java.lang.Object readParameter(ALDParameterDescriptor descr)
                               throws ALDDataIOException
Get value of given parameter from the GUI element.

Parameters:
descr - Descriptor of desired parameter
Returns:
Value of parameter, might be null.
Throws:
ALDDataIOException

setEnabled

public void setEnabled(boolean b)
Overrides:
setEnabled in class javax.swing.JComponent

setParameter

public void setParameter(ALDParameterDescriptor descr,
                         java.lang.Object value)
                  throws ALDDataIOException
Set value of given parameter, i.e. pass the value to GUI component.

Parameters:
descr - Descriptor of parameter to be updated.
value - New value of parameter to be displayed.
Throws:
ALDDataIOException

unmarkAllParameters

public void unmarkAllParameters()
Sets label colors of all parameter to black.


unmarkParameter

public void unmarkParameter(ALDParameterDescriptor descr)
Sets label color of parameter to black (e.g. if validation successful).

Parameters:
descr - Descriptor of parameter to unmark.

validateParameters

public boolean validateParameters()
Check if all GUI elements can deliver a proper (non-null) value.

Parameters delivering null as value are marked red or orange. Red color is used for panels used in top-level context, orange otherwise.

Returns:
True, if all elements can deliver non-null value objects.