Package weka.gui
Class SimpleCLIPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
weka.gui.scripting.ScriptingPanel
weka.gui.SimpleCLIPanel
- All Implemented Interfaces:
ActionListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,Perspective
,TitleUpdatedListener
@PerspectiveInfo(ID="simplecli",
title="Simple CLI",
toolTipText="Simple CLI for Weka",
iconPath="weka/gui/weka_icon_new_small.png")
public class SimpleCLIPanel
extends ScriptingPanel
implements ActionListener, Perspective
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), FracPete (fracpete at waikato dot ac dot nz)
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A class that handles running the main method of the class in a separate thread.static class
A class for commandline completion of classnames.Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns true if this perspective can do something meaningful with a set of instancesvoid
Only gets called when return is pressed in the input area, which starts the command running.void
performs commandline completion on packages and classnames.void
Changes the currently displayed command line when certain keys are pressed.Returns the command history.Get the default settings for this perspective (or null if there are none)getIcon()
Returns an icon to be used in a frame.Get the main application that this perspective belongs toNot supported.getMenus()
Get an ordered list of menus to appear in the main menu bar.Returns the text area that is used for displaying output on stdout and stderr.The output area.Get the icon for this perspectiveGet the ID of this perspectiveGet the tool tip text for this perspectiveGet the title of this perspectivegetTitle()
Returns the current title for the frame/dialog.Returns the variables.void
Gets called when startup of the application has completed.boolean
isBusy()
Checks whether a thread is currently running.static void
Displays the panel in a frame.boolean
Returns true if this perspective is OK with being an active perspective - i.e.boolean
Whether this perspective requires a graphical log to write tovoid
runCommand
(String command) Executes a simple cli command.void
setActive
(boolean active) Set active status of this perspective.void
setInstances
(Instances instances) Set instances (if this perspective can use them)void
setLoaded
(boolean loaded) Set whether this perspective is "loaded" - i.e.void
Set a log to use (if required by the perspective)void
Set the main application.void
Called when the user alters settings.void
Starts the thread.void
Stops the currently running thread, if any.Methods inherited from class weka.gui.scripting.ScriptingPanel
addTitleUpdatedListener, getDebug, removeTitleUpdatedListener, setDebug, showPanel, showPanel, terminate, titleUpdated
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, 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, transferFocusDownCycle, validate
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, 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, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
SimpleCLIPanel
public SimpleCLIPanel()
-
-
Method Details
-
instantiationComplete
public void instantiationComplete()Description copied from interface:Perspective
Gets called when startup of the application has completed. At this point, and only at this point, is it guaranteed that a perspective has access to its hosting application and the PerspectiveManager. Implementations can use this method to complete their initialization in this method if this requires access to information from the main application and/or the PerspectiveManager (i.e. knowledge about what other perspectives are available).- Specified by:
instantiationComplete
in interfacePerspective
-
okToBeActive
public boolean okToBeActive()Description copied from interface:Perspective
Returns true if this perspective is OK with being an active perspective - i.e. the user can click on this perspective at this time in the perspective toolbar. For example, a Perspective might return false from this method if it needs a set of instances to operate but none have been supplied yet.- Specified by:
okToBeActive
in interfacePerspective
- Returns:
- true if this perspective can be active at the current time
-
setActive
public void setActive(boolean active) Description copied from interface:Perspective
Set active status of this perspective. True indicates that this perspective is the visible active perspective in the application- Specified by:
setActive
in interfacePerspective
- Parameters:
active
- true if this perspective is the active one
-
setLoaded
public void setLoaded(boolean loaded) Description copied from interface:Perspective
Set whether this perspective is "loaded" - i.e. whether or not the user has opted to have it available in the perspective toolbar. The perspective can make the decision as to allocating or freeing resources on the basis of this. Note that the main application and perspective manager instances are not available to the perspective until the instantiationComplete() method has been called.- Specified by:
setLoaded
in interfacePerspective
- Parameters:
loaded
- true if the perspective is available in the perspective toolbar of the KnowledgeFlow
-
setMainApplication
Description copied from interface:Perspective
Set the main application. Gives other perspectives access to information provided by the main application- Specified by:
setMainApplication
in interfacePerspective
- Parameters:
main
- the main application
-
getMainApplication
Description copied from interface:Perspective
Get the main application that this perspective belongs to- Specified by:
getMainApplication
in interfacePerspective
- Returns:
- the main application that this perspective belongs to
-
getPerspectiveID
Description copied from interface:Perspective
Get the ID of this perspective- Specified by:
getPerspectiveID
in interfacePerspective
- Returns:
- the ID of this perspective
-
getPerspectiveTitle
Description copied from interface:Perspective
Get the title of this perspective- Specified by:
getPerspectiveTitle
in interfacePerspective
- Returns:
- the title of this perspective
-
getPerspectiveIcon
Description copied from interface:Perspective
Get the icon for this perspective- Specified by:
getPerspectiveIcon
in interfacePerspective
- Returns:
- the icon for this perspective
-
getPerspectiveTipText
Description copied from interface:Perspective
Get the tool tip text for this perspective- Specified by:
getPerspectiveTipText
in interfacePerspective
- Returns:
- the tool tip text for this perspective
-
getMenus
Description copied from interface:Perspective
Get an ordered list of menus to appear in the main menu bar. Return null for no menus- Specified by:
getMenus
in interfacePerspective
- Returns:
- a list of menus to appear in the main menu bar or null for no menus
-
getDefaultSettings
Description copied from interface:Perspective
Get the default settings for this perspective (or null if there are none)- Specified by:
getDefaultSettings
in interfacePerspective
- Returns:
- the default settings for this perspective, or null if the perspective does not have any settings
-
settingsChanged
public void settingsChanged()Description copied from interface:Perspective
Called when the user alters settings. The settings altered by the user are not necessarily ones related to this perspective- Specified by:
settingsChanged
in interfacePerspective
-
acceptsInstances
public boolean acceptsInstances()Description copied from interface:Perspective
Returns true if this perspective can do something meaningful with a set of instances- Specified by:
acceptsInstances
in interfacePerspective
- Returns:
- true if this perspective accepts instances
-
setInstances
Description copied from interface:Perspective
Set instances (if this perspective can use them)- Specified by:
setInstances
in interfacePerspective
- Parameters:
instances
- the instances
-
requiresLog
public boolean requiresLog()Description copied from interface:Perspective
Whether this perspective requires a graphical log to write to- Specified by:
requiresLog
in interfacePerspective
- Returns:
- true if a log is needed by this perspective
-
setLog
Description copied from interface:Perspective
Set a log to use (if required by the perspective)- Specified by:
setLog
in interfacePerspective
- Parameters:
log
- the graphical log to use
-
getIcon
Returns an icon to be used in a frame.- Specified by:
getIcon
in classScriptingPanel
- Returns:
- the icon
-
getTitle
Returns the current title for the frame/dialog.- Specified by:
getTitle
in classScriptingPanel
- Returns:
- the title
-
getOutput
Returns the text area that is used for displaying output on stdout and stderr.- Specified by:
getOutput
in classScriptingPanel
- Returns:
- the JTextArea
-
getMenuBar
Not supported.- Specified by:
getMenuBar
in classScriptingPanel
- Returns:
- always null
-
isBusy
public boolean isBusy()Checks whether a thread is currently running.- Returns:
- true if thread active
-
startThread
Starts the thread.- Parameters:
runner
- the thread to start
-
stopThread
public void stopThread()Stops the currently running thread, if any. -
getVariables
Returns the variables.- Returns:
- the variables
-
getOutputArea
The output area.- Returns:
- the output area
-
getCommandHistory
Returns the command history.- Returns:
- the history
-
runCommand
Executes a simple cli command.- Parameters:
command
- the command string- Throws:
Exception
- if an error occurs
-
doHistory
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'
-
doCommandlineCompletion
performs commandline completion on packages and classnames.- Parameters:
e
- a value of type 'KeyEvent'
-
actionPerformed
Only gets called when return is pressed in the input area, which starts the command running.- Specified by:
actionPerformed
in interfaceActionListener
- Parameters:
e
- a value of type 'ActionEvent'
-
main
Displays the panel in a frame.- Parameters:
args
- ignored
-