weka.gui
Class SimpleCLI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--weka.gui.SimpleCLI
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class SimpleCLI
extends java.awt.Frame
implements java.awt.event.ActionListener

Creates a very simple command line for invoking the main method of classes. System.out and System.err are redirected to an output area. Features a simple command history -- use up and down arrows to move through previous commmands. This gui uses only AWT (i.e. no Swing).

Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
Serialized Form

Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  java.util.Vector m_CommandHistory
          The history of commands entered interactively
protected  java.lang.Thread m_ErrRedirector
          The thread that sends output from m_POE to the output box
protected  int m_HistoryPos
          The current position in the command history
protected  java.awt.TextField m_Input
          The command input area
protected  java.awt.TextArea m_OutputArea
          The output area canvas added to the frame
protected  java.lang.Thread m_OutRedirector
          The thread that sends output from m_POO to the output box
protected  java.io.PipedOutputStream m_POE
          The new output stream for System.err
protected  java.io.PipedOutputStream m_POO
          The new output stream for System.out
protected  java.lang.Thread m_RunThread
          The thread currently running a class main method
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
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
SimpleCLI()
          Constructor
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Only gets called when return is pressed in the input area, which starts the command running.
 void doHistory(java.awt.event.KeyEvent e)
          Changes the currently displayed command line when certain keys are pressed.
static void main(java.lang.String[] args)
          Method to start up the simple cli
 void runCommand(java.lang.String commands)
          Executes a simple cli command.
protected static java.lang.String[] splitOptions(java.lang.String optionString)
          Split up a string containing options into an array of strings, one for each option.
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getAccessibleContext, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, paramString, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, processWindowEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

m_OutputArea

protected java.awt.TextArea m_OutputArea
The output area canvas added to the frame

m_Input

protected java.awt.TextField m_Input
The command input area

m_CommandHistory

protected java.util.Vector m_CommandHistory
The history of commands entered interactively

m_HistoryPos

protected int m_HistoryPos
The current position in the command history

m_POO

protected java.io.PipedOutputStream m_POO
The new output stream for System.out

m_POE

protected java.io.PipedOutputStream m_POE
The new output stream for System.err

m_OutRedirector

protected java.lang.Thread m_OutRedirector
The thread that sends output from m_POO to the output box

m_ErrRedirector

protected java.lang.Thread m_ErrRedirector
The thread that sends output from m_POE to the output box

m_RunThread

protected java.lang.Thread m_RunThread
The thread currently running a class main method
Constructor Detail

SimpleCLI

public SimpleCLI()
          throws java.lang.Exception
Constructor
Throws:
java.lang.Exception - if an error occurs
Method Detail

runCommand

public void runCommand(java.lang.String commands)
                throws java.lang.Exception
Executes a simple cli command.
Parameters:
commands - the command string
Throws:
java.lang.Exception - if an error occurs

splitOptions

protected static java.lang.String[] splitOptions(java.lang.String optionString)
Split up a string containing options into an array of strings, one for each option.
Parameters:
optionString - the string containing the options
Returns:
the array of options

doHistory

public void doHistory(java.awt.event.KeyEvent e)
Changes the currently displayed command line when certain keys are pressed. The up arrow moves back through history entries and the down arrow moves forward through history entries.
Parameters:
e - a value of type 'KeyEvent'

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Only gets called when return is pressed in the input area, which starts the command running.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - a value of type 'ActionEvent'

main

public static void main(java.lang.String[] args)
Method to start up the simple cli
Parameters:
args - array of command line arguments. Not used.