|
||||||||||
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 net.sourceforge.webcompmath.awt.VariableInput
public class VariableInput
A VariableInput is an input box into which the user can type a real number value, which becomes the value of an associated Variable. The value of the Variable can change only when the VariableInput's checkInput() method is called (usually by a Controller). See the Controller class for more information.
Whenever checkInput is called, an error of type JCMError might be generated. If throwErrors is true, this error is thrown; if it is false, the error is caught, the value of the variable is set to Double.NaN, and no error is thrown. The error message associated with the error can be retrieved by calling getErrorMessage(), if desired. (This value is null if no error occurred the last time checkInput was called.)
A VariableInput is a Value, so it can be used directly where a Value object is needed.
An VariableInput will ordinarily be registered with a Controller in TWO ways: It's added to a Controller with the Controller's add() method. This makes the Controller call the VariableInput's checkInput() method during the Controller's compute() method. Secondly, a Controller is set as the "onUserAction" property. This causes the Controller's compute() method to be called when the user presses return in the VariableInput box. This is optional-- you might, for example, only want the Controller to compute() when a Compute button is pressed. You can also set the VariableInput's onTextChange property to a Controller that you want to compute every time the text in the box changes.
After the VariableInput is created, it is possible to specify the largest and smallest allowed values for the variable. It is also possible to specify what sytle of input is allowed. The style can be to allow any constant expression, constant real numbers only, or integers only. Set these parameters with setMin(), setMax(), and setInputStyle(). For setInputStyle(), the legal parameter values are VariableInput.EXPRESSION, VariableInput.REAL, and VariableInput.INTEGER. The default input style is EXPRESSION.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JTextField |
---|
javax.swing.JTextField.AccessibleJTextField |
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.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 | |
---|---|
protected java.lang.String |
errorMessage
Error message from the most recent time checkInput() as called. |
static int |
EXPRESSION
A constant for use in the setInputStyle() method. |
protected boolean |
hasChanged
This is set to true if the text in the box has been changed since the last time the value of the variable was checked by checkInput(). |
protected int |
inputStyle
One of the constant values EXPRESSION, REAL, or INTEGER, specifying the style of input. |
static int |
INTEGER
A constant for use in the setInputStyle() method. |
protected double |
maxValue
Largest allowable value. |
protected double |
minValue
Smallest allowable value. |
static int |
REAL
A constant for use in the setInputStyle() method. |
protected long |
serialNumber
This serial number is increased each time the value of the variable changes. |
protected boolean |
throwErrors
True if an error should be thrown when checkInput() is calles and the contents do not define a legal number. |
protected net.sourceforge.webcompmath.awt.VariableInput.VI |
variable
The Variable that represents the value of this input box. |
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 |
---|
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 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 | |
---|---|
VariableInput()
Create an unnamed VariableInput with initial contents "0". |
|
VariableInput(java.lang.String name,
java.lang.String initialString)
Construct a VariableInput with the given name and initial String (which can both be null). |
|
VariableInput(java.lang.String name,
java.lang.String initialString,
Parser parser)
Create a VariableInput just as in the constructor VariableInput(String,String). |
Method Summary | |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent evt)
Overridden to call onUserAction.compute() if onUserAction is non-null. |
void |
addTo(Parser p)
A convenience method that registers this VariableInput's variable with Parser p (but only if both p and the name of the variable are non-null). |
void |
changedUpdate(javax.swing.event.DocumentEvent evt)
dummy, required by DocumentListener interface |
void |
checkInput()
Check whether the contents are valid, and change the value of the associated variable if the new contents do not match the current value. |
protected double |
convertInput(java.lang.String num)
Convert a string into a real value. |
java.lang.String |
getErrorMessage()
Get error message from previous call to checkInput(). |
int |
getInputStyle()
Return the input style, which determines what types of things are allowed in the input box. |
double |
getMax()
Return the maximum value that will be accepted in this VariableInput box. |
double |
getMin()
Return the minimum value that will be accepted in this VariableInput box. |
Controller |
getOnTextChange()
Return the Controller, if any, that is notified when the text in this input box changes |
Controller |
getOnUserAction()
Return the Controller, if any, that is notified when the user presses return in this text-input box. |
long |
getSerialNumber()
Return this object's serial number, which increases whenever the value of the associated variable changes. |
boolean |
getThrowErrors()
Return the value of the throwErrors property. |
double |
getVal()
Return the value of the associated variable, which might not reflect the value of the contents of the input box. |
Variable |
getVariable()
Get the associated variable for the VariableInput box. |
void |
insertUpdate(javax.swing.event.DocumentEvent evt)
Overridden to call onTextChange.compute() if onTextChange is non-null. |
void |
notifyControllerOnChange(Controller c)
Method required by InputObject interface; in this class, it simply calls setOnUserAction(c). |
void |
removeUpdate(javax.swing.event.DocumentEvent evt)
Overridden to call onTextChange.compute() if onTextChange is non-null. |
void |
setInputStyle(int style)
Specify what types of things are allowed in the input box. |
void |
setMax(double max)
Specify the largest allowed value for the content of this VariableInput box. |
void |
setMin(double min)
Specify the smallest allowed value for the content of this VariableInput box. |
void |
setName(java.lang.String name)
Set the name of the variable. |
void |
setOnTextChange(Controller c)
If the Controller, cm is non-null, then its compute() method will be called whenever the text in this input box changes. |
void |
setOnUserAction(Controller c)
If the Controller, c, is non-null, then its compute() method will be called whenever the user presses the return key while typing in this text-input box. |
void |
setText(java.lang.String text)
This overrides the setText() method from the TextField class so that it will also force the contents to be checked the next time the checkInput() method is called. |
void |
setThrowErrors(boolean throwErrors)
Set the throwErrors property. |
void |
setVal(double d)
Set the value of the associated variable. |
void |
sync(Tie tie,
Tieable newest)
Synchronize serial number and value with newest, unless this VariableInput is itself newest. |
WcmPanel |
withLabel()
Convenience method for creating a component containing this VariableInput together with a label of the form " |
WcmPanel |
withLabel(java.awt.Color back,
java.awt.Color fore)
Convenience method for creating a component containing this VariableInput together with a label of the form "name = ". |
Methods inherited from class javax.swing.JTextField |
---|
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset |
Methods inherited from class javax.swing.text.JTextComponent |
---|
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, 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, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write |
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, 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, 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, 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, processMouseWheelEvent, 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, 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 |
---|
protected net.sourceforge.webcompmath.awt.VariableInput.VI variable
protected boolean throwErrors
protected java.lang.String errorMessage
protected long serialNumber
protected boolean hasChanged
protected double minValue
protected double maxValue
protected int inputStyle
public static final int EXPRESSION
public static final int REAL
public static final int INTEGER
Constructor Detail |
---|
public VariableInput()
public VariableInput(java.lang.String name, java.lang.String initialString)
name
- the name of the variable inputinitialString
- the initial stringpublic VariableInput(java.lang.String name, java.lang.String initialString, Parser parser)
name
- name of the variable inputinitialString
- the initial stringparser
- the parser to useMethod Detail |
---|
public Variable getVariable()
public WcmPanel withLabel()
public WcmPanel withLabel(java.awt.Color back, java.awt.Color fore)
back
- the background colorfore
- the foreground color
public void setName(java.lang.String name)
setName
in class java.awt.Component
name
- the name of the variablepublic void addTo(Parser p)
p
- the parser to register withpublic void setOnUserAction(Controller c)
c
- the controller to usepublic Controller getOnUserAction()
public void notifyControllerOnChange(Controller c)
notifyControllerOnChange
in interface InputObject
c
- the controller to notifypublic void setOnTextChange(Controller c)
c
- the controller to usepublic Controller getOnTextChange()
public double getVal()
getVal
in interface Value
public void setVal(double d)
d
- the value to set the variable topublic void setThrowErrors(boolean throwErrors)
throwErrors
- true or falsepublic boolean getThrowErrors()
public void setMin(double min)
min
- smallest allowed valuepublic double getMin()
public void setMax(double max)
max
- largest allowed valuepublic double getMax()
public void setInputStyle(int style)
style
- allowable types of inputspublic int getInputStyle()
public java.lang.String getErrorMessage()
public void checkInput()
checkInput
in interface InputObject
public long getSerialNumber()
getSerialNumber
in interface Tieable
public void sync(Tie tie, Tieable newest)
sync
in interface Tieable
tie
- the tie connecting the objectsnewest
- the object to synch withprotected double convertInput(java.lang.String num)
num
- String to be converted
public void setText(java.lang.String text)
setText
in class javax.swing.text.JTextComponent
text
- change text to this.public void insertUpdate(javax.swing.event.DocumentEvent evt)
insertUpdate
in interface javax.swing.event.DocumentListener
evt
- the event created when user inserts a characterpublic void removeUpdate(javax.swing.event.DocumentEvent evt)
removeUpdate
in interface javax.swing.event.DocumentListener
evt
- the event created when user delets a characterpublic void changedUpdate(javax.swing.event.DocumentEvent evt)
changedUpdate
in interface javax.swing.event.DocumentListener
evt
- the eventpublic void actionPerformed(java.awt.event.ActionEvent evt)
actionPerformed
in interface java.awt.event.ActionListener
evt
- event created when user hits return
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |