org.jsurveylib.gui.swing
Class SurveyPanel

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 org.jsurveylib.gui.swing.SurveyPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, AnswerListener, PageListener, SurveyResetListener, InsertQuestionListener
Direct Known Subclasses:
SurveyPanel

public class SurveyPanel
extends javax.swing.JPanel
implements AnswerListener, PageListener, InsertQuestionListener, SurveyResetListener

This class displays the Survey object. It extends JPanel. Here is an example of how to add a SurveyPanel to your JFrame:


               try {
                   ClientSurvey survey = new Survey("surveyGettingStarted.xml");
                   SurveyPanel surveyPanel = new SurveyPanel(survey);
                   survey.addSurveyListener(this);
                   frame.setLayout(new BorderLayout());
                   frame.add(surveyPanel, BorderLayout.CENTER);
                   frame.setJMenuBar(new SurveyMenu(survey, frame));
               } catch (Exception e) {
                   e.printStackTrace();
               }
               

The Survey, ClientSurvey, SurveyPanel and the SurveyAdapter are the ONLY objects that the client should interact with directly. Even then, there may be public methods in this class that are marked "for internal use only". Methods marked "for internal use only" may be renamed, removed or replaced in future versions. Because of this uncertain future, it is highly recommended you don't use these methods: Your application may not compile when you upgrade. Most other classes are marked "for internal use only" but even if they aren't, these are the only classes that you should be interacting with.

Copyright (c)2007, Daniel Kaplan

Since:
7.10.4
Author:
Daniel Kaplan
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
static java.awt.Font FONT_LABEL
          FOR INTERNAL USE ONLY. These will likely disappear in the future.
static java.awt.Font FONT_PAGE_TITLE
          FOR INTERNAL USE ONLY. These will likely disappear in the future.
static java.awt.Font FONT_QUESTION_ANSWER
          FOR INTERNAL USE ONLY. These will likely disappear in the future.
static java.awt.Font FONT_QUESTION_NUMBER
          FOR INTERNAL USE ONLY. These will likely disappear in the future.
static java.awt.Font FONT_QUESTION_TEXT
          FOR INTERNAL USE ONLY. These will likely disappear in the future.
static java.awt.Font FONT_SURVEY_TITLE
          FOR INTERNAL USE ONLY..
 
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
SurveyPanel(ClientSurvey survey)
          This will initialize the SurveyPanel object.
 
Method Summary
 void answerChanged(Question question, boolean evaluateScript)
          FOR INTERNAL USE ONLY. This will be called when a question's answer has changed.
 void currentPageChanged()
          FOR INTERNAL USE ONLY. This method will be called to inform the panel that it should display a different page.
 void questionInserted(Question question, int page, int row)
           
 void surveyReset()
           
 
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, setEnabled, 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

FONT_SURVEY_TITLE

public static final java.awt.Font FONT_SURVEY_TITLE
FOR INTERNAL USE ONLY.. These will likely disappear in the future.


FONT_PAGE_TITLE

public static final java.awt.Font FONT_PAGE_TITLE
FOR INTERNAL USE ONLY. These will likely disappear in the future.


FONT_LABEL

public static final java.awt.Font FONT_LABEL
FOR INTERNAL USE ONLY. These will likely disappear in the future.


FONT_QUESTION_NUMBER

public static final java.awt.Font FONT_QUESTION_NUMBER
FOR INTERNAL USE ONLY. These will likely disappear in the future.


FONT_QUESTION_TEXT

public static final java.awt.Font FONT_QUESTION_TEXT
FOR INTERNAL USE ONLY. These will likely disappear in the future.


FONT_QUESTION_ANSWER

public static final java.awt.Font FONT_QUESTION_ANSWER
FOR INTERNAL USE ONLY. These will likely disappear in the future.

Constructor Detail

SurveyPanel

public SurveyPanel(ClientSurvey survey)
This will initialize the SurveyPanel object. The Panel queries the survey object for its content and renders it on the screen. The Survey will start on the first page.

Parameters:
survey - The survey object that is rendered by this SurveyPanel.
Method Detail

answerChanged

public void answerChanged(Question question,
                          boolean evaluateScript)
FOR INTERNAL USE ONLY. This will be called when a question's answer has changed. The panel will react by enabling/disabling its buttons. This is for internal use because only JSurveyLib should be calling this method.

Specified by:
answerChanged in interface AnswerListener
Parameters:
question - The question who's answer has changed
evaluateScript - This boolean is ignored

currentPageChanged

public void currentPageChanged()
FOR INTERNAL USE ONLY. This method will be called to inform the panel that it should display a different page. This is internal because only the Survey object should be calling this method.

Specified by:
currentPageChanged in interface PageListener

questionInserted

public void questionInserted(Question question,
                             int page,
                             int row)
Specified by:
questionInserted in interface InsertQuestionListener

surveyReset

public void surveyReset()
Specified by:
surveyReset in interface SurveyResetListener