|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.text.JTextComponent javax.swing.JTextField com.jstatcom.component.IValTextField com.jstatcom.component.NumRangeSelector
public final class NumRangeSelector
This component allows to input a range specified by two komma separated numbers
that is automatically checked according to an overall NumberRange
object.
The overall range to validate against can be specified by constants.
Example text input would be 1, 100
. Only real numbers are allowed,
+/- Infinity or NaN are always invalid. This component always assumes that the
range type of the selected range is CLOSED
, even if a different
range was set via the setNumberRange
method. Therefore
getNumberRange
always returns a CLOSED
range.
The overall range does not have this restriction imposed.
Usage Note:
If the number format type is set to NumberFormatTypes.DEFAULT
, then
the precision set for this selector defines, how displayed numbers are rounded.
Any additional precision is lost, after a number was selected. If, for example,
only int
numbers should be possible, the precision can be set to 0,
which is also the default. The resulting number is then stored as a
double
that is equal to an int
.
If the number format type is set to NumberFormatTypes.SCIENTIFIC
,
then the precision is used only for the display. No rounding is performed and
a precision of 0 does not mean that values are equal to an int
.
This class fires a "numberRange" property change, if a new number range was set.
NumberRange
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent |
---|
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.BaselineResizeBehavior |
Field Summary |
---|
Fields inherited from class javax.swing.JTextField |
---|
notifyAction |
Fields inherited from class javax.swing.text.JTextComponent |
---|
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY |
Fields inherited from class javax.swing.JComponent |
---|
TOOL_TIP_TEXT_KEY, 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 javax.swing.SwingConstants |
---|
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
NumRangeSelector()
Default constructor initializes overall range to (-Infinity,+Infinity) and sets the displayed range to value to 1, 100 . |
Method Summary | |
---|---|
NumberFormatTypes |
getNumberFormatType()
Gets the current number format type. |
NumberRange |
getNumberRange()
Gets the currently displayed number range. |
NumberRange |
getOverallNumberRange()
Gets the overall range that the range input is checked against. |
java.lang.String |
getOverallRangeExpr()
Gets the current overall number range displayed as a string, for example [1,100] or ("lowerBound_p", 20] . |
int |
getPrecision()
Gets the precision for the displayed numbers. |
void |
handleError(java.lang.String msg)
Error handling routine if validation failed. |
void |
setNumberFormatType(NumberFormatTypes newNumberFormatType)
Sets the current number format type. |
void |
setNumberRange(NumberRange newRange)
Sets the currently displayed number range with checking whether it conforms to the specified overall range. |
void |
setOverallNumberRange(NumberRange newNumberRange)
Sets the overall range that the range input is checked against. |
void |
setOverallRangeExpr(java.lang.String expr)
Sets the range to be checked against by specifying a string of the form ["(", "["] lowerBound "," upperBound + ["]", ")"] ,
where lowerbound/upperBound are either a number or a
symbolname, for example
[lowerBound_p, upperBound_p] or (0, upperBound_x] or [1,10] . |
void |
setPrecision(int newPrecision)
Sets number of digits right to decimal point. |
void |
setRangeBounds(java.lang.String expr)
Sets the currently selected range by specifying a string with lower bound and upper bound seperated by a komma, for example 1, 100 . |
java.lang.String |
validateInput()
Validates input against the specified range whenever necessary. |
Methods inherited from class com.jstatcom.component.IValTextField |
---|
addNotify, isEditing, setTextCarefully |
Methods inherited from class javax.swing.JTextField |
---|
addActionListener, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset |
Methods inherited from class javax.swing.text.JTextComponent |
---|
addCaretListener, addInputMethodListener, addKeymap, copy, cut, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, write |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate |
Methods inherited from class java.awt.Component |
---|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public NumRangeSelector()
1, 100
.
Method Detail |
---|
public NumberFormatTypes getNumberFormatType()
public NumberRange getNumberRange()
CLOSED
an can never have +/- Infinity bounds.
public NumberRange getOverallNumberRange()
public java.lang.String getOverallRangeExpr()
[1,100] or ("lowerBound_p", 20]
.
public int getPrecision()
public void handleError(java.lang.String msg)
handleError
in class IValTextField
msg
- an error messagepublic void setNumberFormatType(NumberFormatTypes newNumberFormatType)
newNumberFormatType
- format type to usepublic void setNumberRange(NumberRange newRange)
CLOSED
, even if newRange
has a different type.
This is possible, because any legal range can also be a closed range. Be aware
that +/- Infinity is not allowed for the selected range bounds.
This method fires a "numberRange" property change with the old value and the changed value,
if a new number range was set.
newRange
- the new selected number range
java.lang.IllegalArgumentException
- if newRange
is not enclosed
in overall rangepublic void setOverallNumberRange(NumberRange newNumberRange)
newNumberRange
.
newNumberRange
- the overall number range for validation,
if null
then a range of (-Infinity,+Infinity)
is set.public void setOverallRangeExpr(java.lang.String expr)
["(", "["] lowerBound "," upperBound + ["]", ")"]
,
where lowerbound/upperBound
are either a number or a
symbolname, for example
[lowerBound_p, upperBound_p] or (0, upperBound_x] or [1,10]
.
If the range is specified without symbol names, it is set
immediately. If the range depends on symbols to be loaded from
a symbol table, this is postponed to the next FOCUS_GAINED
event.
In the meantime, the default non-validating (-Infinity,Infinity)
range is used.
expr
- the expression to be parsed
java.lang.IllegalArgumentException
- if expr == null
or if it cannot be parsed to a valid rangepublic void setPrecision(int newPrecision)
newPrecision
- new number precision
java.lang.IllegalArgumentException
- if newPrecision < 0
public void setRangeBounds(java.lang.String expr)
1, 100
.
Symbol names are not allowed for the bounds but have to be
specified separately by the respective accessor methods.
expr
- string containing komma separated bounds
java.lang.IllegalArgumentException
- if bounds are not enclosed
in overall range or expr could not be parsed to a
valid range of type CLOSED
public java.lang.String validateInput()
validateInput
in class IValTextField
null
if ok, an error message otherwise
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |