com.izforge.izpack.panels
Class RuleInputField

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended bycom.izforge.izpack.panels.RuleInputField
All Implemented Interfaces:
CaretListener, EventListener, FocusListener, ImageObserver, KeyListener, MenuContainer, ProcessingClient, Serializable

public class RuleInputField
extends JComponent
implements KeyListener, FocusListener, CaretListener, ProcessingClient

This class assists the user in entering serial numbers.

Serial numbers, license number, CD keys and the like are often lenghty alpha-numerical numbers. In many cases they are devided into multiple parts by dash or point separators. Entering these in a single text field can be a frustrating experience for the user. This class provides a way of presenting the user with an assembly of input fields that are arranged in the same way as the key, with the separators already in place. Immideate testing for format compliance if performed ans soon as each field is completed. In addition, the cursor is automatically advanced to make entering numbers as painless as possible.

Formatting:

Example:

"N:4:4 - H:6:6 - AN:3:3 x A:5:5"

This formatting string will produce a serial number field consisting of four separate input fields. The fisrt input field will accept four numeric digits, the second six hexa-decimal digits, the third three alpha-numeric digits and the fourth five letters. The first three input fields will be separated by '-' and the third and fourth by 'x'. The following snapshot was obtained with this setting:

Version:
0.0.1 / 10/19/02
Author:
Elmar Grom
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static int DISPLAY_FORMAT
          Used to specify the retsult format.
static int ENCRYPTED
          Used to specify the retsult format.
static int PLAIN_STRING
          Used to specify the retsult format.
static int SPECIAL_SEPARATOR
          Used to specify the retsult format.
 
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
RuleInputField(String format, String preset, String separator, String validator, Map validatorParams, String processor, int resultFormat, Toolkit toolkit, com.izforge.izpack.installer.InstallData idata)
          Constructs a rule input field.
RuleInputField(String format, String preset, String separator, String validator, String processor, int resultFormat, Toolkit toolkit, com.izforge.izpack.installer.InstallData idata)
          Constructs a rule input field.
 
Method Summary
 void caretUpdate(CaretEvent event)
          Called when the caret position is updated.
 void focusGained(FocusEvent event)
          Invoked when a component gains the keyboard focus.
 void focusLost(FocusEvent event)
          Invoked when a component loses the keyboard focus.
 String getFieldContents(int index)
          Returns the contents of the field indicated by index.
 int getNumFields()
          Returns the number of sub-fields composing this RuleInputField.
 String getText()
          Returns the field contents, assembled acording to the encryption and separator rules.
 Map getValidatorParams()
          Returns the validator parameters, if any.
 boolean hasParams()
           
 void keyPressed(KeyEvent event)
          This method is invoked when a key has been pressed.
 void keyReleased(KeyEvent event)
          This method is invoked when a key has been released.
 void keyTyped(KeyEvent event)
          This method is invoked when a key has been typed.
 boolean validateContents()
          This method validates the field content.
 
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, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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

PLAIN_STRING

public static final int PLAIN_STRING
Used to specify the retsult format. This constant specifies to return the contents of all fields concatenated into one long string, with separation between each component.

See Also:
Constant Field Values

DISPLAY_FORMAT

public static final int DISPLAY_FORMAT
Used to specify the retsult format. This constant specifies to return the contents of all fields together with all separators as specified in the field format concatenated into one long string. In this case the resulting string looks just like the user saw it during data entry

See Also:
Constant Field Values

SPECIAL_SEPARATOR

public static final int SPECIAL_SEPARATOR
Used to specify the retsult format. This constant specifies to return the contents of all fields concatenated into one long string, with a special separator string inserted in between the individual components.

See Also:
Constant Field Values

ENCRYPTED

public static final int ENCRYPTED
Used to specify the retsult format. This constant specifies to return the contents of all fields in a somehow modified way. How the content is modified depends on the operation performed by a encryption service class. The class must be provided at object instatiation.

See Also:
Constant Field Values
Constructor Detail

RuleInputField

public RuleInputField(String format,
                      String preset,
                      String separator,
                      String validator,
                      Map validatorParams,
                      String processor,
                      int resultFormat,
                      Toolkit toolkit,
                      com.izforge.izpack.installer.InstallData idata)
Constructs a rule input field.

Parameters:
format - a string that specifies the formatting and to a limited degree the behavior of this field.
preset - a string that specifies preset values for specific sub-fields.
separator - a string to be used for separating the contents of individual fields in the string returned by getText()
validator - A string that specifies a class to perform validation services. The string must completely identify the class, so that it can be instantiated. The class must implement the RuleValidator interface. If an attempt to instantiate this class fails, no validation will be performed.
validatorParams - A java.util.Map containing name/ value pairs, which will be forwarded to the validator.
processor - A string that specifies a class to perform processing services. The string must completely identify the class, so that it can be instantiated. The class must implement the Processor interface. If an attempt to instantiate this class fails, no processing will be performed. Instead, the text is returned in the default formatting.
resultFormat - specifies in which format the resulting text should be returned, wehn getText() is called. The following values are legal:
toolkit - needed to gain access to beep()

RuleInputField

public RuleInputField(String format,
                      String preset,
                      String separator,
                      String validator,
                      String processor,
                      int resultFormat,
                      Toolkit toolkit,
                      com.izforge.izpack.installer.InstallData idata)
Constructs a rule input field.

Parameters:
format - a string that specifies the formatting and to a limited degree the behavior of this field.
preset - a string that specifies preset values for specific sub-fields.
separator - a string to be used for separating the contents of individual fields in the string returned by getText()
validator - A string that specifies a class to perform validation services. The string must completely identify the class, so that it can be instantiated. The class must implement the RuleValidator interface. If an attempt to instantiate this class fails, no validation will be performed.
processor - A string that specifies a class to perform processing services. The string must completely identify the class, so that it can be instantiated. The class must implement the Processor interface. If an attempt to instantiate this class fails, no processing will be performed. Instead, the text is returned in the default formatting.
resultFormat - specifies in which format the resulting text should be returned, wehn getText() is called. The following values are legal:
toolkit - needed to gain access to beep()
Method Detail

hasParams

public boolean hasParams()
Returns:
true if this instance has any parameters to pass to the Validator instance.

getNumFields

public int getNumFields()
Returns the number of sub-fields composing this RuleInputField.

Specified by:
getNumFields in interface ProcessingClient
Returns:
the number of sub-fields

getFieldContents

public String getFieldContents(int index)
                        throws IndexOutOfBoundsException
Returns the contents of the field indicated by index.

Specified by:
getFieldContents in interface ProcessingClient
Parameters:
index - the index of the sub-field from which the contents is requested.
Returns:
the contents of the indicated sub-field.
Throws:
IndexOutOfBoundsException - if the index is out of bounds.

getValidatorParams

public Map getValidatorParams()
Returns the validator parameters, if any. The caller should check for the existence of validator parameters via the hasParams() method prior to invoking this method.

Returns:
a java.util.Map containing the validator parameters.

getText

public String getText()
Returns the field contents, assembled acording to the encryption and separator rules.

Returns:
the field contents

validateContents

public boolean validateContents()
This method validates the field content. Validating is performed through a user supplied service class that provides the validation rules.

Returns:
true if the validation passes or no implementation of a validation rule exists. Otherwise false is returned.

keyTyped

public void keyTyped(KeyEvent event)
This method is invoked when a key has been typed. The event occurs when a key press is followed by a key release.

Specified by:
keyTyped in interface KeyListener
Parameters:
event - the key event forwarded by the system.

keyPressed

public void keyPressed(KeyEvent event)
This method is invoked when a key has been pressed. This method verifies the condition of the input field in focus. Once the column count in the field has reached the specified maximum, the rule specified for the field in question is invoked. In case the test result is positive, focus is set to the next field. If hte test result is negative, the field content is marked and the caret set to the start of the field.

Specified by:
keyPressed in interface KeyListener
Parameters:
event - the key event forwarded by the system.

keyReleased

public void keyReleased(KeyEvent event)
This method is invoked when a key has been released.

Specified by:
keyReleased in interface KeyListener
Parameters:
event - the key event forwarded by the system.

focusGained

public void focusGained(FocusEvent event)
Invoked when a component gains the keyboard focus.

Specified by:
focusGained in interface FocusListener
Parameters:
event - the focus event forwardes by the sytem.

focusLost

public void focusLost(FocusEvent event)
Invoked when a component loses the keyboard focus. This method does nothing, we are only interested in 'focus gained' events.

Specified by:
focusLost in interface FocusListener
Parameters:
event - the focus event forwardes by the sytem.

caretUpdate

public void caretUpdate(CaretEvent event)
Called when the caret position is updated.

Specified by:
caretUpdate in interface CaretListener
Parameters:
event - the caret event received from the text field


Copyright © 2003-2007 Apache Software Foundation. All Rights Reserved.