public class Console
extends java.applet.Applet
implements java.awt.event.KeyListener
Usage: java com.singularsys.jepexamples.consoles.Console [expression]If an argument is passed, it is interpreted as an expression and evaluated. Otherwise, a prompt is printed, and the user can enter expressions to be evaluated.
This class and its subclasses can also be run as a java applet which displays a textarea for interactive input.
This class has been designed to be sub classed to allow different consol applications. The methods
public void initialise() public Object processEquation(Node node) throws Exception public boolean testSpecialCommands(String command) public void printPrompt() public void printIntroText() public void printHelp()can all be overwritten.
Furthermore main should be overwritten. For example
public static void main(String args[]) { Console c = new DJepConsole(); c.run(args); }
The main input loop is approximately
initialise(); printIntroText(); print(getPrompt()); String command; while((command = getCommand()) != null) { if(command.equals("quit") || command.equals("exit")) break; if(!testSpecialCommands(command)) continue; try { Node n = j.parse(command); processEquation(n); } catch(Exception e) {} print(getPrompt()); }
Modifier and Type | Class and Description |
---|---|
protected class |
Console.JepPrintStream |
static class |
Console.SPEC_ACTION
Values returned by @link{testSpecialCommands(String command)}.
|
java.applet.Applet.AccessibleApplet
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
doubleFormat
Format for double output
|
protected java.util.List<java.lang.String> |
history
History
|
protected Jep |
jep
Main Jep object
|
protected boolean |
showHistory |
protected java.awt.TextArea |
ta
Text area for user input in applets.
|
Constructor and Description |
---|
Console()
Constructor
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getAppletInfo() |
protected java.lang.String |
getCommand()
Get a command from the input.
|
java.lang.String |
getPrompt()
Prints the prompt string.
|
boolean |
handleError(java.lang.Exception e)
Handle an error in the parse and evaluate routines.
|
void |
init()
Applet initialisation
|
void |
initialise()
sets up all the needed objects.
|
void |
inputLoop()
The main input loop for interactive operation.
|
void |
keyPressed(java.awt.event.KeyEvent arg0) |
void |
keyReleased(java.awt.event.KeyEvent event)
Handles keyRelease events
|
void |
keyTyped(java.awt.event.KeyEvent arg0) |
static void |
main(java.lang.String[] args)
Creates a new Console object and calls run()
|
void |
print(java.lang.Object o)
Prints a line of text no newline.
|
void |
printFuns()
Prints a list of defined functions.
|
void |
printHelp()
Print help message.
|
void |
printIntroText()
Prints introductory text.
|
void |
println(java.lang.Object o)
Prints a line of text followed by a newline.
|
void |
printOps()
Prints a list of defined operators.
|
void |
printStdHelp()
Prints a standard help message.
|
void |
printVars()
Prints a list of variable.
|
boolean |
processCommand(java.lang.String command)
Process a single command.
|
java.lang.Object |
processEquation(Node node)
Performs the required operation on a node.
|
void |
run(java.lang.String[] args)
The main entry point with command line arguments
|
void |
setAlteredCommand(java.lang.String alt)
Set the command used if @link{SPEC_ACTION.ALTERED} returned.
|
void |
setFormat(java.lang.String format) |
java.lang.String[] |
split(java.lang.String s)
Splits a string on spaces.
|
Console.SPEC_ACTION |
testSpecialCommands(java.lang.String command)
Checks for special commands.
|
java.lang.String |
toString(java.lang.Object o)
Return string representation of object.
|
destroy, getAccessibleContext, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, isValidateRoot, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, 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, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected Jep jep
protected java.awt.TextArea ta
protected java.lang.String doubleFormat
protected java.util.List<java.lang.String> history
protected boolean showHistory
public void init()
init
in class java.applet.Applet
public void initialise()
public static void main(java.lang.String[] args)
public void run(java.lang.String[] args)
public void inputLoop()
public boolean processCommand(java.lang.String command)
testSpecialCommands(String)
processEquation(Node)
handleError(Exception)
in necessarycommand
- The line to be processedpublic java.lang.Object processEquation(Node node) throws JepException
node
- Node representing expressionJepException
- if a Parse or evaluation errorprotected java.lang.String getCommand()
public java.lang.String getPrompt()
public final void printStdHelp()
public void printHelp()
public void printIntroText()
public void printFuns()
public void printOps()
public void printVars()
public Console.SPEC_ACTION testSpecialCommands(java.lang.String command)
verbose onThis method can be used detected this input, perform required actions and skip normal processing by returning true. In general sub classes should call the superclass methods to test for special commands that class implements
command
- split(String)
public void setAlteredCommand(java.lang.String alt)
alt
- public void setFormat(java.lang.String format)
public boolean handleError(java.lang.Exception e)
e
- public java.lang.String[] split(java.lang.String s)
s
- the input stringpublic void print(java.lang.Object o)
public java.lang.String toString(java.lang.Object o)
o
- public void println(java.lang.Object o)
public void keyReleased(java.awt.event.KeyEvent event)
keyReleased
in interface java.awt.event.KeyListener
public void keyPressed(java.awt.event.KeyEvent arg0)
keyPressed
in interface java.awt.event.KeyListener
public void keyTyped(java.awt.event.KeyEvent arg0)
keyTyped
in interface java.awt.event.KeyListener
public java.lang.String getAppletInfo()
getAppletInfo
in class java.applet.Applet
Copyright © 2018 Singular Systems http://www.singularsys.com/jep