public class ExpressionInput extends TextField implements InputObject, Value
An ExpressionInput 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 Contrller call the ExpressionInput's checkInput() method during the Controller's compute() method. Secondly, the Controller is set as the "onUserAction" property. This causes the Controller's compute() method to be called when the user presses return in the ExpressionInput 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 ExpressionInput's onTextChange property to a Controller if you want it to compute every time the text in the box changes.
Use the function getFunction() if you want to use an ExpressionInput as a way of inputting a function.
Modifier and Type | Class and Description |
---|---|
protected class |
ExpressionInput.EI
The expression associated with an ExpressionInput belongs to this class.
|
TextField.AccessibleAWTTextField
TextComponent.AccessibleAWTTextComponent
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
protected String |
errorMessage
Error message from the most recent
time the input was checked by a
call to checkInput().
|
protected ExpressionInput.EI |
expr
The Expression associate with this input box.
|
protected Parser |
parser
A parser for parsing the user's input
expression.
|
protected String |
previousContents |
protected boolean |
throwErrors
True if an error should be thrown
when checkInput() is called,
but the content of the box is not
a legal expression.
|
textListener
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
ExpressionInput()
Create a new ExpressionFunction with no associated parser.
|
ExpressionInput(String initialValue,
Parser p)
Create an ExpressionInputBox with initial contents given by initialValue.
|
Modifier and Type | Method and Description |
---|---|
void |
checkInput()
Get the expression from the box, maybe throw a JBCError
if a ParseError occurs.
|
String |
getErrorMessage()
Get error message from previous call to checkInput().
|
Expression |
getExpression()
Get the Expression associated with this ExpressionInput.
|
Function |
getFunction(Variable v)
Get a function of one variable whose value at a real number
x is computed by assigning x to the variable v and then
returning the value of the expression associated with this
ExpressionInput.
|
Function |
getFunction(Variable[] v)
Get a function of one or more variables whose value at arguments
x1, x2, ...
|
Controller |
getOnTextChange()
Return the Controller, if any, that is notified whenever 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.
|
boolean |
getThrowErrors()
Return the value of the throwErrors property, which determines whether errors
can be thrown when checkInput() is called.
|
double |
getVal()
Return the current value of the expression associated with
this ExpressionInput.
|
void |
notifyControllerOnChange(Controller c)
Method required by InputObject interface; in this class, it simply calls
setOnUserAction(c).
|
void |
processActionEvent(ActionEvent evt)
Overridden to call onUserAction.compute() if onUserAction is non-null.
|
void |
processTextEvent(TextEvent evt)
Overridden to call onUserAction.compute() if onUserAction is non-null.
|
void |
setOnTextChange(Controller c)
If the parameter, c, is non-null, then its compute method will be called whenever
the text in this input box changes.
|
void |
setOnUserAction(Controller c)
If the parameter 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 |
setParser(Parser p)
Set the parser that is used to parse the user's input strings.
|
void |
setText(String str)
Set the text displayed in this input box.
|
void |
setThrowErrors(boolean throwErrors)
Set the throwErrors property.
|
addActionListener, addNotify, echoCharIsSet, getAccessibleContext, getActionListeners, getColumns, getEchoChar, getListeners, getMinimumSize, getMinimumSize, getPreferredSize, getPreferredSize, minimumSize, minimumSize, paramString, preferredSize, preferredSize, processEvent, removeActionListener, setColumns, setEchoChar, setEchoCharacter
addTextListener, enableInputMethods, getBackground, getCaretPosition, getInputMethodRequests, getSelectedText, getSelectionEnd, getSelectionStart, getText, getTextListeners, isEditable, removeNotify, removeTextListener, select, selectAll, setBackground, setCaretPosition, setEditable, setSelectionEnd, setSelectionStart
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, postEvent, prepareImage, prepareImage, print, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
protected ExpressionInput.EI expr
protected Parser parser
protected String previousContents
protected boolean throwErrors
protected String errorMessage
public ExpressionInput()
public ExpressionInput(String initialValue, Parser p)
initialValue
- initial contents of ExpressionInputBox.p
- if non-null, this parser will be used to parse contents of the ExpressionInputBox.public void setParser(Parser p)
p
- parser to register with user's input strings.public Expression getExpression()
public Function getFunction(Variable v)
v
- The function that is returned in a function of this variable.public Function getFunction(Variable[] v)
v
- The function that is returned is a function of the variables in this array.public double getVal()
public void setOnUserAction(Controller c)
public Controller getOnUserAction()
public void notifyControllerOnChange(Controller c)
notifyControllerOnChange
in interface InputObject
public void setOnTextChange(Controller c)
public Controller getOnTextChange()
public void setThrowErrors(boolean throwErrors)
public boolean getThrowErrors()
public String getErrorMessage()
public void checkInput()
checkInput
in interface InputObject
public void setText(String str)
public void processActionEvent(ActionEvent evt)
processActionEvent
in class TextField
public void processTextEvent(TextEvent evt)
processTextEvent
in class TextComponent