weka.gui.explorer
Class PreprocessPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--weka.gui.explorer.PreprocessPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class PreprocessPanel
extends javax.swing.JPanel

This panel controls simple preprocessing of instances. Attributes may be selected for inclusion/exclusion, summary information on instances and attributes is shown. A sequence of filters may be configured to alter the set of instances. Altered instances may also be saved.

Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
Serialized Form

Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  javax.swing.JButton m_ApplyBut
          Click to apply filters and replace the working dataset
protected  javax.swing.filechooser.FileFilter m_ArffFilter
          Filter to ensure only arff files are selected
protected  AttributeSelectionPanel m_AttPanel
          Panel to let the user toggle attributes
protected  AttributeSummaryPanel m_AttSummaryPanel
          Displays summary stats on the selected attribute
protected  Instances m_BaseInstances
          The unadulterated instances
protected  InstancesSummaryPanel m_BaseInstPanel
          Displays simple stats on the base instances
protected  GenericObjectEditor m_DatabaseQueryEditor
           
protected  javax.swing.JFileChooser m_FileChooser
          The file chooser for selecting arff files
protected  GenericArrayEditor m_Filters
          Lets the user add a series of filters
protected  SerializedObject m_FiltersCopy
          A copy of the most recently applied filters
protected  java.lang.Thread m_IOThread
          A thread to loading/saving instances from a file or URL
protected  java.lang.String m_LastURL
          Stores the last URL that instances were loaded from
protected  Logger m_Log
           
protected  javax.swing.JButton m_OpenDBBut
          Click to load base instances from a Database
protected  javax.swing.JButton m_OpenFileBut
          Click to load base instances from a file
protected  javax.swing.JButton m_OpenURLBut
          Click to load base instances from a URL
protected  javax.swing.JButton m_ReplaceBut
          Click to replace the base dataset with the working dataset
protected  javax.swing.JButton m_SaveBut
          Click to apply filters and save the results
protected  java.lang.String m_SQLQ
          Stores the last sql query executed
protected  java.beans.PropertyChangeSupport m_Support
          Manages sending notifications to people when we change the set of working instances.
protected  Instances m_WorkingInstances
          The working (filtered) copy
protected  InstancesSummaryPanel m_WorkingInstPanel
          Displays simple stats on the working instances
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, 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
PreprocessPanel()
          Creates the instances panel with no initial instances.
 
Method Summary
 void addPropertyChangeListener(java.beans.PropertyChangeListener l)
          Adds a PropertyChangeListener who will be notified of value changes.
protected  Instances filterInstances(Instances instances)
          Passes the supplied instances through all the filters that have been configured for use.
protected  Filter[] getFilters()
          Gets an array of all the filters that have been configured for use.
protected  SerializedObject getMostRecentFilters()
          gets a copy of the most recently applied filters.
 Instances getWorkingInstances()
          Gets the working set of instances.
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.
protected  void saveInstancesToFile(java.io.File f, Instances inst)
          Saves the filtered instances to the supplied file.
 void saveWorkingInstancesToFileQ()
          Queries the user for a file to save instances as, then saves the instances in a background process.
 void setBaseInstances(Instances inst)
          Tells the panel to use a new base set of instances.
 void setBaseInstancesFromDB(InstanceQuery iq)
          Loads instances from a database
 void setBaseInstancesFromDBQ()
          Queries the user for a URL to a database to load instances from, then loads the instances in a background process.
 void setBaseInstancesFromFile(java.io.File f)
          Loads results from a set of instances contained in the supplied file.
 void setBaseInstancesFromFileQ()
          Queries the user for a file to load instances from, then loads the instances in a background process.
 void setBaseInstancesFromURL(java.net.URL u)
          Loads instances from a URL.
 void setBaseInstancesFromURLQ()
          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 setWorkingInstances(Instances inst)
          Tells the panel to use a new working set of instances.
 void setWorkingInstancesFromFilters()
          Applies the current filters and attribute selection settings and sets the result as the working dataset.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_BaseInstPanel

protected InstancesSummaryPanel m_BaseInstPanel
Displays simple stats on the base instances

m_WorkingInstPanel

protected InstancesSummaryPanel m_WorkingInstPanel
Displays simple stats on the working instances

m_OpenFileBut

protected javax.swing.JButton m_OpenFileBut
Click to load base instances from a file

m_OpenURLBut

protected javax.swing.JButton m_OpenURLBut
Click to load base instances from a URL

m_OpenDBBut

protected javax.swing.JButton m_OpenDBBut
Click to load base instances from a Database

m_DatabaseQueryEditor

protected GenericObjectEditor m_DatabaseQueryEditor

m_ApplyBut

protected javax.swing.JButton m_ApplyBut
Click to apply filters and replace the working dataset

m_ReplaceBut

protected javax.swing.JButton m_ReplaceBut
Click to replace the base dataset with the working dataset

m_SaveBut

protected javax.swing.JButton m_SaveBut
Click to apply filters and save the results

m_AttPanel

protected AttributeSelectionPanel m_AttPanel
Panel to let the user toggle attributes

m_Filters

protected GenericArrayEditor m_Filters
Lets the user add a series of filters

m_AttSummaryPanel

protected AttributeSummaryPanel m_AttSummaryPanel
Displays summary stats on the selected attribute

m_ArffFilter

protected javax.swing.filechooser.FileFilter m_ArffFilter
Filter to ensure only arff files are selected

m_FileChooser

protected javax.swing.JFileChooser m_FileChooser
The file chooser for selecting arff files

m_LastURL

protected java.lang.String m_LastURL
Stores the last URL that instances were loaded from

m_SQLQ

protected java.lang.String m_SQLQ
Stores the last sql query executed

m_BaseInstances

protected Instances m_BaseInstances
The unadulterated instances

m_WorkingInstances

protected Instances m_WorkingInstances
The working (filtered) copy

m_Support

protected java.beans.PropertyChangeSupport m_Support
Manages sending notifications to people when we change the set of working instances.

m_IOThread

protected java.lang.Thread m_IOThread
A thread to loading/saving instances from a file or URL

m_Log

protected Logger m_Log

m_FiltersCopy

protected SerializedObject m_FiltersCopy
A copy of the most recently applied filters
Constructor Detail

PreprocessPanel

public PreprocessPanel()
Creates the instances panel with no initial instances.
Method Detail

getMostRecentFilters

protected SerializedObject getMostRecentFilters()
gets a copy of the most recently applied filters.
Returns:
a serialized array of the most recently applied filters

setLog

public void setLog(Logger newLog)
Sets the Logger to receive informational messages
Parameters:
newLog - the Logger that will now get info messages

setBaseInstances

public void setBaseInstances(Instances inst)
Tells the panel to use a new base set of instances.
Parameters:
inst - a set of Instances

setWorkingInstances

public void setWorkingInstances(Instances inst)
Tells the panel to use a new working set of instances.
Parameters:
inst - a set of Instances

getWorkingInstances

public Instances getWorkingInstances()
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 javax.swing.JComponent
Parameters:
l - a value of type 'PropertyChangeListener'

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
Removes a PropertyChangeListener.
Overrides:
removePropertyChangeListener in class javax.swing.JComponent
Parameters:
l - a value of type 'PropertyChangeListener'

getFilters

protected Filter[] getFilters()
Gets an array of all the filters that have been configured for use.
Returns:
an array containing all the filters

filterInstances

protected Instances filterInstances(Instances instances)
Passes the supplied instances through all the filters that have been configured for use.
Parameters:
instances - the input instances
Returns:
the filtered instances

setWorkingInstancesFromFilters

public void setWorkingInstancesFromFilters()
Applies the current filters and attribute selection settings and sets the result as the working dataset. This is done in the IO thread, and an error message is popped up if the IO thread is busy.

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.

setBaseInstancesFromFileQ

public void setBaseInstancesFromFileQ()
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.

setBaseInstancesFromDBQ

public void setBaseInstancesFromDBQ()
Queries the user for a URL to a database 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.

setBaseInstancesFromURLQ

public void setBaseInstancesFromURLQ()
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.

saveInstancesToFile

protected void saveInstancesToFile(java.io.File f,
                                   Instances inst)
Saves the filtered instances to the supplied file.
Parameters:
f - a value of type 'File'
inst - the instances to save

setBaseInstancesFromFile

public void setBaseInstancesFromFile(java.io.File f)
Loads results from a set of instances contained in the supplied file. This is started in the IO thread, and a dialog is popped up if there's a problem.
Parameters:
f - a value of type 'File'

setBaseInstancesFromDB

public void setBaseInstancesFromDB(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).

setBaseInstancesFromURL

public void setBaseInstancesFromURL(java.net.URL u)
Loads instances from a URL.
Parameters:
u - the URL to load from.

main

public static void main(java.lang.String[] args)
Tests out the instance-preprocessing panel from the command line.
Parameters:
args - ignored