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:
java.awt.event.ActionListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.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 java.awt.event.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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSimpleCLIPanel.ClassRunnerA class that handles running the main method of the class in a separate thread.static classSimpleCLIPanel.CommandlineCompletionA class for commandline completion of classnames.
-
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
-
-
Constructor Summary
Constructors Constructor Description SimpleCLIPanel()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacceptsInstances()Returns true if this perspective can do something meaningful with a set of instancesvoidactionPerformed(java.awt.event.ActionEvent e)Only gets called when return is pressed in the input area, which starts the command running.voiddoCommandlineCompletion(java.awt.event.KeyEvent e)performs commandline completion on packages and classnames.voiddoHistory(java.awt.event.KeyEvent e)Changes the currently displayed command line when certain keys are pressed.java.util.List<java.lang.String>getCommandHistory()Returns the command history.DefaultsgetDefaultSettings()Get the default settings for this perspective (or null if there are none)javax.swing.ImageIcongetIcon()Returns an icon to be used in a frame.GUIApplicationgetMainApplication()Get the main application that this perspective belongs tojavax.swing.JMenuBargetMenuBar()Not supported.java.util.List<javax.swing.JMenu>getMenus()Get an ordered list of menus to appear in the main menu bar.javax.swing.JTextPanegetOutput()Returns the text area that is used for displaying output on stdout and stderr.javax.swing.JTextPanegetOutputArea()The output area.javax.swing.IcongetPerspectiveIcon()Get the icon for this perspectivejava.lang.StringgetPerspectiveID()Get the ID of this perspectivejava.lang.StringgetPerspectiveTipText()Get the tool tip text for this perspectivejava.lang.StringgetPerspectiveTitle()Get the title of this perspectivejava.lang.StringgetTitle()Returns the current title for the frame/dialog.java.util.Map<java.lang.String,java.lang.Object>getVariables()Returns the variables.voidinstantiationComplete()Gets called when startup of the application has completed.booleanisBusy()Checks whether a thread is currently running.static voidmain(java.lang.String[] args)Displays the panel in a frame.booleanokToBeActive()Returns true if this perspective is OK with being an active perspective - i.e.booleanrequiresLog()Whether this perspective requires a graphical log to write tovoidrunCommand(java.lang.String command)Executes a simple cli command.voidsetActive(boolean active)Set active status of this perspective.voidsetInstances(Instances instances)Set instances (if this perspective can use them)voidsetLoaded(boolean loaded)Set whether this perspective is "loaded" - i.e.voidsetLog(Logger log)Set a log to use (if required by the perspective)voidsetMainApplication(GUIApplication main)Set the main application.voidsettingsChanged()Called when the user alters settings.voidstartThread(SimpleCLIPanel.ClassRunner runner)Starts the thread.voidstopThread()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
-
-
-
-
Method Detail
-
instantiationComplete
public void instantiationComplete()
Description copied from interface:PerspectiveGets 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:
instantiationCompletein interfacePerspective
-
okToBeActive
public boolean okToBeActive()
Description copied from interface:PerspectiveReturns 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:
okToBeActivein interfacePerspective- Returns:
- true if this perspective can be active at the current time
-
setActive
public void setActive(boolean active)
Description copied from interface:PerspectiveSet active status of this perspective. True indicates that this perspective is the visible active perspective in the application- Specified by:
setActivein interfacePerspective- Parameters:
active- true if this perspective is the active one
-
setLoaded
public void setLoaded(boolean loaded)
Description copied from interface:PerspectiveSet 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:
setLoadedin interfacePerspective- Parameters:
loaded- true if the perspective is available in the perspective toolbar of the KnowledgeFlow
-
setMainApplication
public void setMainApplication(GUIApplication main)
Description copied from interface:PerspectiveSet the main application. Gives other perspectives access to information provided by the main application- Specified by:
setMainApplicationin interfacePerspective- Parameters:
main- the main application
-
getMainApplication
public GUIApplication getMainApplication()
Description copied from interface:PerspectiveGet the main application that this perspective belongs to- Specified by:
getMainApplicationin interfacePerspective- Returns:
- the main application that this perspective belongs to
-
getPerspectiveID
public java.lang.String getPerspectiveID()
Description copied from interface:PerspectiveGet the ID of this perspective- Specified by:
getPerspectiveIDin interfacePerspective- Returns:
- the ID of this perspective
-
getPerspectiveTitle
public java.lang.String getPerspectiveTitle()
Description copied from interface:PerspectiveGet the title of this perspective- Specified by:
getPerspectiveTitlein interfacePerspective- Returns:
- the title of this perspective
-
getPerspectiveIcon
public javax.swing.Icon getPerspectiveIcon()
Description copied from interface:PerspectiveGet the icon for this perspective- Specified by:
getPerspectiveIconin interfacePerspective- Returns:
- the icon for this perspective
-
getPerspectiveTipText
public java.lang.String getPerspectiveTipText()
Description copied from interface:PerspectiveGet the tool tip text for this perspective- Specified by:
getPerspectiveTipTextin interfacePerspective- Returns:
- the tool tip text for this perspective
-
getMenus
public java.util.List<javax.swing.JMenu> getMenus()
Description copied from interface:PerspectiveGet an ordered list of menus to appear in the main menu bar. Return null for no menus- Specified by:
getMenusin interfacePerspective- Returns:
- a list of menus to appear in the main menu bar or null for no menus
-
getDefaultSettings
public Defaults getDefaultSettings()
Description copied from interface:PerspectiveGet the default settings for this perspective (or null if there are none)- Specified by:
getDefaultSettingsin 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:PerspectiveCalled when the user alters settings. The settings altered by the user are not necessarily ones related to this perspective- Specified by:
settingsChangedin interfacePerspective
-
acceptsInstances
public boolean acceptsInstances()
Description copied from interface:PerspectiveReturns true if this perspective can do something meaningful with a set of instances- Specified by:
acceptsInstancesin interfacePerspective- Returns:
- true if this perspective accepts instances
-
setInstances
public void setInstances(Instances instances)
Description copied from interface:PerspectiveSet instances (if this perspective can use them)- Specified by:
setInstancesin interfacePerspective- Parameters:
instances- the instances
-
requiresLog
public boolean requiresLog()
Description copied from interface:PerspectiveWhether this perspective requires a graphical log to write to- Specified by:
requiresLogin interfacePerspective- Returns:
- true if a log is needed by this perspective
-
setLog
public void setLog(Logger log)
Description copied from interface:PerspectiveSet a log to use (if required by the perspective)- Specified by:
setLogin interfacePerspective- Parameters:
log- the graphical log to use
-
getIcon
public javax.swing.ImageIcon getIcon()
Returns an icon to be used in a frame.- Specified by:
getIconin classScriptingPanel- Returns:
- the icon
-
getTitle
public java.lang.String getTitle()
Returns the current title for the frame/dialog.- Specified by:
getTitlein classScriptingPanel- Returns:
- the title
-
getOutput
public javax.swing.JTextPane getOutput()
Returns the text area that is used for displaying output on stdout and stderr.- Specified by:
getOutputin classScriptingPanel- Returns:
- the JTextArea
-
getMenuBar
public javax.swing.JMenuBar getMenuBar()
Not supported.- Specified by:
getMenuBarin classScriptingPanel- Returns:
- always null
-
isBusy
public boolean isBusy()
Checks whether a thread is currently running.- Returns:
- true if thread active
-
startThread
public void startThread(SimpleCLIPanel.ClassRunner runner)
Starts the thread.- Parameters:
runner- the thread to start
-
stopThread
public void stopThread()
Stops the currently running thread, if any.
-
getVariables
public java.util.Map<java.lang.String,java.lang.Object> getVariables()
Returns the variables.- Returns:
- the variables
-
getOutputArea
public javax.swing.JTextPane getOutputArea()
The output area.- Returns:
- the output area
-
getCommandHistory
public java.util.List<java.lang.String> getCommandHistory()
Returns the command history.- Returns:
- the history
-
runCommand
public void runCommand(java.lang.String command) throws java.lang.ExceptionExecutes a simple cli command.- Parameters:
command- the command string- Throws:
java.lang.Exception- if an error occurs
-
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'
-
doCommandlineCompletion
public void doCommandlineCompletion(java.awt.event.KeyEvent e)
performs commandline completion on packages and classnames.- 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:
actionPerformedin interfacejava.awt.event.ActionListener- Parameters:
e- a value of type 'ActionEvent'
-
main
public static void main(java.lang.String[] args)
Displays the panel in a frame.- Parameters:
args- ignored
-
-