Package weka.gui

Class 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 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 Description
      SimpleCLIPanel()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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 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
      • 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