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 and Description
    --- | ---
    `static class` | `SimpleCLIPanel.ClassRunner` A class that handles running the main method of the class in a separate thread.
    `static class` | `SimpleCLIPanel.CommandlineCompletion` A class for commandline completion of classnames.

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.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`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleCLIPanel()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `acceptsInstances()` Returns true if this perspective can do something meaningful with a set of instances
    `void` | `actionPerformed(java.awt.event.ActionEvent e)` Only gets called when return is pressed in the input area, which starts the command running.
    `void` | `doCommandlineCompletion(java.awt.event.KeyEvent e)` performs commandline completion on packages and classnames.
    `void` | `doHistory(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.
    `Defaults` | `getDefaultSettings()` Get the default settings for this perspective (or null if there are none)
    `javax.swing.ImageIcon` | `getIcon()` Returns an icon to be used in a frame.
    `GUIApplication` | `getMainApplication()` Get the main application that this perspective belongs to
    `javax.swing.JMenuBar` | `getMenuBar()` Not supported.
    `java.util.List<javax.swing.JMenu>` | `getMenus()` Get an ordered list of menus to appear in the main menu bar.
    `javax.swing.JTextPane` | `getOutput()` Returns the text area that is used for displaying output on stdout and stderr.
    `javax.swing.JTextPane` | `getOutputArea()` The output area.
    `javax.swing.Icon` | `getPerspectiveIcon()` Get the icon for this perspective
    `java.lang.String` | `getPerspectiveID()` Get the ID of this perspective
    `java.lang.String` | `getPerspectiveTipText()` Get the tool tip text for this perspective
    `java.lang.String` | `getPerspectiveTitle()` Get the title of this perspective
    `java.lang.String` | `getTitle()` Returns the current title for the frame/dialog.
    `java.util.Map<java.lang.String,java.lang.Object>` | `getVariables()` Returns the variables.
    `void` | `instantiationComplete()` Gets called when startup of the application has completed.
    `boolean` | `isBusy()` Checks whether a thread is currently running.
    `static void` | `main(java.lang.String[] args)` Displays the panel in a frame.
    `boolean` | `okToBeActive()` Returns true if this perspective is OK with being an active perspective - i.e.
    `boolean` | `requiresLog()` Whether this perspective requires a graphical log to write to
    `void` | `runCommand(java.lang.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` | `setLog(Logger log)` Set a log to use (if required by the perspective)
    `void` | `setMainApplication(GUIApplication main)` Set the main application.
    `void` | `settingsChanged()` Called when the user alters settings.
    `void` | `startThread(SimpleCLIPanel.ClassRunner runner)` Starts the thread.
    `void` | `stopThread()` Stops the currently running thread, if any.

    - ### Methods inherited from class weka.gui.scripting.ScriptingPanel

      `addTitleUpdatedListener, getDebug, removeTitleUpdatedListener, setDebug, showPanel, showPanel, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleCLIPanel

          public SimpleCLIPanel()

  - ### Method Detail

    - #### 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 interface `Perspective`

    - #### 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 interface `Perspective`
      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 interface `Perspective`
      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 interface `Perspective`
      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: `Perspective`
      Set the main application. Gives other perspectives access to information provided by the main application
      Specified by:
        `setMainApplication` in interface `Perspective`
      Parameters:
        `main` - the main application

    - #### getMainApplication

          public GUIApplication getMainApplication()

      Description copied from interface: `Perspective`
      Get the main application that this perspective belongs to
      Specified by:
        `getMainApplication` in interface `Perspective`
      Returns:
        the main application that this perspective belongs to

    - #### getPerspectiveID

          public java.lang.String getPerspectiveID()

      Description copied from interface: `Perspective`
      Get the ID of this perspective
      Specified by:
        `getPerspectiveID` in interface `Perspective`
      Returns:
        the ID of this perspective

    - #### getPerspectiveTitle

          public java.lang.String getPerspectiveTitle()

      Description copied from interface: `Perspective`
      Get the title of this perspective
      Specified by:
        `getPerspectiveTitle` in interface `Perspective`
      Returns:
        the title of this perspective

    - #### getPerspectiveIcon

          public javax.swing.Icon getPerspectiveIcon()

      Description copied from interface: `Perspective`
      Get the icon for this perspective
      Specified by:
        `getPerspectiveIcon` in interface `Perspective`
      Returns:
        the icon for this perspective

    - #### getPerspectiveTipText

          public java.lang.String getPerspectiveTipText()

      Description copied from interface: `Perspective`
      Get the tool tip text for this perspective
      Specified by:
        `getPerspectiveTipText` in interface `Perspective`
      Returns:
        the tool tip text for this perspective

    - #### getMenus

          public java.util.List<javax.swing.JMenu> 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 interface `Perspective`
      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: `Perspective`
      Get the default settings for this perspective (or null if there are none)
      Specified by:
        `getDefaultSettings` in interface `Perspective`
      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 interface `Perspective`

    - #### 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 interface `Perspective`
      Returns:
        true if this perspective accepts instances

    - #### setInstances

          public void setInstances(Instances instances)

      Description copied from interface: `Perspective`
      Set instances (if this perspective can use them)
      Specified by:
        `setInstances` in interface `Perspective`
      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 interface `Perspective`
      Returns:
        true if a log is needed by this perspective

    - #### setLog

          public void setLog(Logger log)

      Description copied from interface: `Perspective`
      Set a log to use (if required by the perspective)
      Specified by:
        `setLog` in interface `Perspective`
      Parameters:
        `log` - the graphical log to use

    - #### getIcon

          public javax.swing.ImageIcon getIcon()

      Returns an icon to be used in a frame.
      Specified by:
        `getIcon` in class `ScriptingPanel`
      Returns:
        the icon

    - #### getTitle

          public java.lang.String getTitle()

      Returns the current title for the frame/dialog.
      Specified by:
        `getTitle` in class `ScriptingPanel`
      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:
        `getOutput` in class `ScriptingPanel`
      Returns:
        the JTextArea

    - #### getMenuBar

          public javax.swing.JMenuBar getMenuBar()

      Not supported.
      Specified by:
        `getMenuBar` in class `ScriptingPanel`
      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.Exception

      Executes 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:
        `actionPerformed` in interface `java.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