com.abstractics.utils.swing
Class AdjustableQuestionPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bycom.abstractics.utils.swing.AdjustableQuestionPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class AdjustableQuestionPanel
extends javax.swing.JPanel
implements java.awt.event.FocusListener

The AdjustableQuestionPanel is used to show various label/value items that allow a varying number of questions to be given. By constructing the object and then adding questions the panel can handle laying them out.

Version:
$Id: AdjustableQuestionPanel.java,v 1.1 2005/11/04 16:46:27 andrew Exp $
Author:
Andrew Lawrence, Copyright 2006 Abstractics, L.L.C., Licensed under the Apache License, Version 2.0
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private) static java.awt.Font DEFAULT_FONT
           
 
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.Container
 
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
AdjustableQuestionPanel()
           
 
Method Summary
 void addQuestionCheckbox(java.lang.String label)
          Adds a question to the panel, using a checkbox for the answer.
 void addQuestionComboBox(java.lang.String label, java.lang.Object[] choices)
          Adds a question to the panel, allowing any answer to be selected from a drop-down box
 void addQuestionFixed(java.lang.String label, java.lang.String text)
          Adds a question to the panel, but displays a JLabel for the answer so it is fixed.
 void addQuestionFixedTextArea(java.lang.String label, java.lang.String text, int rows, int columns)
          Adds a question to the panel, but places it in a non-editable JTextArea so that it is "fixed".
 void addQuestionText(java.lang.String label, int textBoxColumns)
          Adds a question to the panel, allowing for any answer to be typed into a text field
 void addQuestionTextArea(java.lang.String label, int rows, int columns)
          Adds a question to the panel, allowing for any answer to be typed into a text area
 void clearAnswers()
          Iterates through all of the answer objects and resets them to default, or clears them.
 void focusGained(java.awt.event.FocusEvent e)
          Implementation of FocusListener - the panel is listening to focus changes on question components so that scrolling is handled.
 void focusLost(java.awt.event.FocusEvent e)
          Implementation of FocusListener - does nothing
 java.lang.Object[] getAnswers()
          Returns an array of objects where each entry in the array represents an answer to a question.
 javax.swing.JComponent getQuestionComponent(int questionIndex)
          Returns the JComponent for the given question index.
 javax.swing.JComponent[] getQuestionComponents()
           
 boolean isAllQuestionsFixed()
           
 void setDefaultValues(java.lang.Object[] defaultValues)
          Allows the default objects to be set for each of the questions, in order.
For text boxes/areas, object should be a String.
For checkboxes, object should be a java.lang.Boolean object.
For comboboxes, object should be equal to one of the values that was given for the combobox.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

DEFAULT_FONT

static final java.awt.Font DEFAULT_FONT
Constructor Detail

AdjustableQuestionPanel

public AdjustableQuestionPanel()
Method Detail

isAllQuestionsFixed

public boolean isAllQuestionsFixed()
Returns:
Returns true if all of the questions have fixed answers.

clearAnswers

public void clearAnswers()
Iterates through all of the answer objects and resets them to default, or clears them.


addQuestionText

public void addQuestionText(java.lang.String label,
                            int textBoxColumns)
Adds a question to the panel, allowing for any answer to be typed into a text field

Parameters:
label - Question to display to the left of the text field
textBoxColumns - The number of columns the text field should show

addQuestionTextArea

public void addQuestionTextArea(java.lang.String label,
                                int rows,
                                int columns)
Adds a question to the panel, allowing for any answer to be typed into a text area

Parameters:
label - Question to display to the left of the text area
rows - The number of rows the text area should show
columns - The number of columns the text area should show

addQuestionFixedTextArea

public void addQuestionFixedTextArea(java.lang.String label,
                                     java.lang.String text,
                                     int rows,
                                     int columns)
Adds a question to the panel, but places it in a non-editable JTextArea so that it is "fixed".

Parameters:
label - Question to display to the left of the text area
text - The text that should go in the static text area
rows - The number of rows the text area should show
columns - The number of columns the text area should show

getQuestionComponent

public javax.swing.JComponent getQuestionComponent(int questionIndex)
Returns the JComponent for the given question index. Might be a JTextField, JComboBox, JLabel, or a JCheckBox, depending on how the question was added to the panel.

Parameters:
questionIndex -
Returns:
The JComponent found at the index
Throws:
java.lang.IndexOutOfBoundsException - Thrown if the index exceeds the current number of questions in the panel.

getQuestionComponents

public javax.swing.JComponent[] getQuestionComponents()
Returns:
Returns all of the answer components, in the order they were added

addQuestionComboBox

public void addQuestionComboBox(java.lang.String label,
                                java.lang.Object[] choices)
Adds a question to the panel, allowing any answer to be selected from a drop-down box

Parameters:
label - Question to display to the left of the combo box
choices - The objects to be placed in the model of the combo box. Generally the toString() method is called on each object to get the display value.

addQuestionCheckbox

public void addQuestionCheckbox(java.lang.String label)
Adds a question to the panel, using a checkbox for the answer. This option behaves slightly different than the others in that the label text will be to the right of the checkbox, with no text on the left.

Parameters:
label - Question to display to the right of the checkbox

addQuestionFixed

public void addQuestionFixed(java.lang.String label,
                             java.lang.String text)
Adds a question to the panel, but displays a JLabel for the answer so it is fixed.

Parameters:
label - Question to display to the left of the label
text - The text that should go in the static label

getAnswers

public java.lang.Object[] getAnswers()
Returns an array of objects where each entry in the array represents an answer to a question. Answers are returned in the same order that questions were added to the dialog.
For each question type, the following resulting object will be the answer:

Returns:
Returns the current answers in the panel, in question order.

setDefaultValues

public void setDefaultValues(java.lang.Object[] defaultValues)
Allows the default objects to be set for each of the questions, in order.
For text boxes/areas, object should be a String.
For checkboxes, object should be a java.lang.Boolean object.
For comboboxes, object should be equal to one of the values that was given for the combobox.

Parameters:
defaultValues - Array of objects that should be the default values for each of the questions, in order.

focusGained

public void focusGained(java.awt.event.FocusEvent e)
Implementation of FocusListener - the panel is listening to focus changes on question components so that scrolling is handled.

Specified by:
focusGained in interface java.awt.event.FocusListener
Parameters:
e -

focusLost

public void focusLost(java.awt.event.FocusEvent e)
Implementation of FocusListener - does nothing

Specified by:
focusLost in interface java.awt.event.FocusListener
Parameters:
e -