weka.gui.explorer

## Class PreprocessPanel

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - weka.gui.AbstractPerspective
          - - weka.gui.explorer.PreprocessPanel

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, Explorer.CapabilitiesFilterChangeListener, Explorer.ExplorerPanel, Explorer.LogHandler, Perspective

      @PerspectiveInfo(ID="weka.gui.explorer.preprocesspanel",
                       title="Preprocess",
                       toolTipText="Preprocess data",
                       iconPath="weka/gui/weka_icon_new_small.png")
      public class PreprocessPanel
      extends AbstractPerspective
      implements Explorer.CapabilitiesFilterChangeListener, Explorer.ExplorerPanel, Explorer.LogHandler

  This panel controls simple preprocessing of instances. Summary information on instances and attributes is shown. Filters may be configured to alter the set of instances. Altered instances may also be saved.
  Version:
    $Revision: 12396 $
  Author:
    Richard Kirkby (rkirkby@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PreprocessPanel.PreprocessDefaults`

    - ### 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, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PreprocessPanel()` Creates the instances panel with no initial instances.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `acceptsInstances()` We can accept instances
    `void` | `addPropertyChangeListener(java.beans.PropertyChangeListener l)` Adds a PropertyChangeListener who will be notified of value changes.
    `void` | `addUndoPoint()` Backs up the current state of the dataset, so the changes can be undone.
    `void` | `capabilitiesFilterChanged(Explorer.CapabilitiesFilterChangeEvent e)` method gets called in case of a change event
    `void` | `edit()` edits the current instances object in the viewer
    `void` | `generateInstances()` sets Instances generated via DataGenerators (pops up a Dialog)
    `Defaults` | `getDefaultSettings()` Get the default settings for this perspective (or null if there are none)
    `Explorer` | `getExplorer()` returns the parent Explorer frame
    `Instances` | `getInstances()` Gets the working set of instances.
    `java.util.List<javax.swing.JMenu>` | `getMenus()` Get an ordered list of menus to appear in the main menu bar.
    `java.lang.String` | `getTabTitle()` Returns the title for the tab in the Explorer
    `java.lang.String` | `getTabTitleToolTip()` Returns the tooltip for the tab in the Explorer
    `void` | `instantiationComplete()` We've been instantiated and now have access to the main application and PerspectiveManager
    `static void` | `main(java.lang.String[] args)` Tests out the instance-preprocessing panel from the command line.
    `void` | `removePropertyChangeListener(java.beans.PropertyChangeListener l)` Removes a PropertyChangeListener.
    `boolean` | `requiresLog()` Whether this perspective requires a graphical log to write to
    `void` | `saveInstancesToFile(AbstractFileSaver saver, Instances inst)` saves the data with the specified saver
    `void` | `saveWorkingInstancesToFileQ()` Queries the user for a file to save instances as, then saves the instances in a background process.
    `void` | `setActive(boolean active)` Set active status of this perspective.
    `void` | `setExplorer(Explorer parent)` Sets the Explorer to use as parent frame (used for sending notifications about changes in the data)
    `void` | `setInstances(Instances inst)` Tells the panel to use a new base set of instances.
    `void` | `setInstancesFromDB(InstanceQuery iq)` Loads instances from a database
    `void` | `setInstancesFromDBQ(java.lang.String url, java.lang.String user, java.lang.String pw, java.lang.String query)` Loads (non-sparse) instances from an SQL query the user provided with the SqlViewerDialog, then loads the instances in a background process.
    `void` | `setInstancesFromDBQ(java.lang.String url, java.lang.String user, java.lang.String pw, java.lang.String query, boolean sparse)` Loads instances from an SQL query the user provided with the SqlViewerDialog, then loads the instances in a background process.
    `void` | `setInstancesFromFile(AbstractFileLoader loader)` Loads results from a set of instances retrieved with the supplied loader.
    `void` | `setInstancesFromFileQ()` Queries the user for a file to load instances from, then loads the instances in a background process.
    `void` | `setInstancesFromURL(java.net.URL u)` Loads instances from a URL.
    `void` | `setInstancesFromURLQ()` Queries the user for a URL to load instances from, then loads the instances in a background process.
    `void` | `setLog(Logger newLog)` Sets the Logger to receive informational messages
    `void` | `settingsChanged()` Called when the user alters settings.
    `void` | `undo()` Reverts to the last backed up version of the dataset.

    - ### Methods inherited from class weka.gui.AbstractPerspective

      `getMainApplication, getPerspectiveIcon, getPerspectiveID, getPerspectiveTipText, getPerspectiveTitle, okToBeActive, setLoaded, setMainApplication, toString`

    - ### 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, 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, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- - ### Constructor Detail

    - #### PreprocessPanel

          public PreprocessPanel()

      Creates the instances panel with no initial instances.

  - ### Method Detail

    - #### acceptsInstances

          public boolean acceptsInstances()

      We can accept instances
      Specified by:
        `acceptsInstances` in interface `Perspective`
      Overrides:
        `acceptsInstances` in class `AbstractPerspective`
      Returns:
        true

    - #### instantiationComplete

          public void instantiationComplete()

      We've been instantiated and now have access to the main application and PerspectiveManager
      Specified by:
        `instantiationComplete` in interface `Perspective`
      Overrides:
        `instantiationComplete` in class `AbstractPerspective`

    - #### setLog

          public void setLog(Logger newLog)

      Sets the Logger to receive informational messages
      Specified by:
        `setLog` in interface `Explorer.LogHandler`
      Specified by:
        `setLog` in interface `Perspective`
      Overrides:
        `setLog` in class `AbstractPerspective`
      Parameters:
        `newLog` - the Logger that will now get info messages

    - #### requiresLog

          public boolean requiresLog()

      Description copied from class: `AbstractPerspective`
      Whether this perspective requires a graphical log to write to
      Specified by:
        `requiresLog` in interface `Perspective`
      Overrides:
        `requiresLog` in class `AbstractPerspective`
      Returns:
        true if a log is needed by this perspective

    - #### setInstances

          public void setInstances(Instances inst)

      Tells the panel to use a new base set of instances.
      Specified by:
        `setInstances` in interface `Explorer.ExplorerPanel`
      Specified by:
        `setInstances` in interface `Perspective`
      Overrides:
        `setInstances` in class `AbstractPerspective`
      Parameters:
        `inst` - a set of Instances

    - #### getInstances

          public Instances getInstances()

      Gets the working set of instances.
      Returns:
        the working instances

    - #### addPropertyChangeListener

          public void addPropertyChangeListener(java.beans.PropertyChangeListener l)

      Adds a PropertyChangeListener who will be notified of value changes.
      Overrides:
        `addPropertyChangeListener` in class `java.awt.Container`
      Parameters:
        `l` - a value of type 'PropertyChangeListener'

    - #### removePropertyChangeListener

          public void removePropertyChangeListener(java.beans.PropertyChangeListener l)

      Removes a PropertyChangeListener.
      Overrides:
        `removePropertyChangeListener` in class `java.awt.Component`
      Parameters:
        `l` - a value of type 'PropertyChangeListener'

    - #### saveWorkingInstancesToFileQ

          public void saveWorkingInstancesToFileQ()

      Queries the user for a file to save instances as, then saves the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.

    - #### saveInstancesToFile

          public void saveInstancesToFile(AbstractFileSaver saver,
                                          Instances inst)

      saves the data with the specified saver
      Parameters:
        `saver` - the saver to use for storing the data
        `inst` - the data to save

    - #### setInstancesFromFileQ

          public void setInstancesFromFileQ()

      Queries the user for a file to load instances from, then loads the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.

    - #### setInstancesFromDBQ

          public void setInstancesFromDBQ(java.lang.String url,
                                          java.lang.String user,
                                          java.lang.String pw,
                                          java.lang.String query)

      Loads (non-sparse) instances from an SQL query the user provided with the SqlViewerDialog, then loads the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.
      Parameters:
        `url` - the database URL
        `user` - the user to connect as
        `pw` - the password of the user
        `query` - the query for retrieving instances from

    - #### setInstancesFromDBQ

          public void setInstancesFromDBQ(java.lang.String url,
                                          java.lang.String user,
                                          java.lang.String pw,
                                          java.lang.String query,
                                          boolean sparse)

      Loads instances from an SQL query the user provided with the SqlViewerDialog, then loads the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.
      Parameters:
        `url` - the database URL
        `user` - the user to connect as
        `pw` - the password of the user
        `query` - the query for retrieving instances from
        `sparse` - whether to create sparse or non-sparse instances

    - #### setInstancesFromURLQ

          public void setInstancesFromURLQ()

      Queries the user for a URL to load instances from, then loads the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.

    - #### generateInstances

          public void generateInstances()

      sets Instances generated via DataGenerators (pops up a Dialog)

    - #### setInstancesFromFile

          public void setInstancesFromFile(AbstractFileLoader loader)

      Loads results from a set of instances retrieved with the supplied loader. This is started in the IO thread, and a dialog is popped up if there's a problem.
      Parameters:
        `loader` - the loader to use

    - #### setInstancesFromDB

          public void setInstancesFromDB(InstanceQuery iq)

      Loads instances from a database
      Parameters:
        `iq` - the InstanceQuery object to load from (this is assumed to have been already connected to a valid database).

    - #### setInstancesFromURL

          public void setInstancesFromURL(java.net.URL u)

      Loads instances from a URL.
      Parameters:
        `u` - the URL to load from.

    - #### addUndoPoint

          public void addUndoPoint()
                            throws java.lang.Exception

      Backs up the current state of the dataset, so the changes can be undone.
      Throws:
        `java.lang.Exception` - if an error occurs

    - #### undo

          public void undo()

      Reverts to the last backed up version of the dataset.

    - #### edit

          public void edit()

      edits the current instances object in the viewer

    - #### setExplorer

          public void setExplorer(Explorer parent)

      Sets the Explorer to use as parent frame (used for sending notifications about changes in the data)
      Specified by:
        `setExplorer` in interface `Explorer.ExplorerPanel`
      Parameters:
        `parent` - the parent frame

    - #### getExplorer

          public Explorer getExplorer()

      returns the parent Explorer frame
      Specified by:
        `getExplorer` in interface `Explorer.ExplorerPanel`
      Returns:
        the parent

    - #### capabilitiesFilterChanged

          public void capabilitiesFilterChanged(Explorer.CapabilitiesFilterChangeEvent e)

      method gets called in case of a change event
      Specified by:
        `capabilitiesFilterChanged` in interface `Explorer.CapabilitiesFilterChangeListener`
      Parameters:
        `e` - the associated change event

    - #### getTabTitle

          public java.lang.String getTabTitle()

      Returns the title for the tab in the Explorer
      Specified by:
        `getTabTitle` in interface `Explorer.ExplorerPanel`
      Returns:
        the title of this tab

    - #### getTabTitleToolTip

          public java.lang.String getTabTitleToolTip()

      Returns the tooltip for the tab in the Explorer
      Specified by:
        `getTabTitleToolTip` in interface `Explorer.ExplorerPanel`
      Returns:
        the tooltip of this tab

    - #### getDefaultSettings

          public Defaults getDefaultSettings()

      Description copied from class: `AbstractPerspective`
      Get the default settings for this perspective (or null if there are none)
      Specified by:
        `getDefaultSettings` in interface `Perspective`
      Overrides:
        `getDefaultSettings` in class `AbstractPerspective`
      Returns:
        the default settings for this perspective, or null if the perspective does not have any settings

    - #### setActive

          public void setActive(boolean active)

      Description copied from class: `AbstractPerspective`
      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`
      Overrides:
        `setActive` in class `AbstractPerspective`
      Parameters:
        `active` - true if this perspective is the active one

    - #### settingsChanged

          public void settingsChanged()

      Description copied from class: `AbstractPerspective`
      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`
      Overrides:
        `settingsChanged` in class `AbstractPerspective`

    - #### getMenus

          public java.util.List<javax.swing.JMenu> getMenus()

      Description copied from class: `AbstractPerspective`
      Get an ordered list of menus to appear in the main menu bar. Return null for no menus
      Specified by:
        `getMenus` in interface `Perspective`
      Overrides:
        `getMenus` in class `AbstractPerspective`
      Returns:
        a list of menus to appear in the main menu bar or null for no menus

    - #### main

          public static void main(java.lang.String[] args)

      Tests out the instance-preprocessing panel from the command line.
      Parameters:
        `args` - ignored