weka.gui.beans
Class Sorter

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by weka.gui.beans.Sorter
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, EnvironmentHandler, BeanCommon, DataSource, DataSourceListener, EventConstraints, InstanceListener, StructureProducer, TestSetListener, TrainingSetListener, Visible

@KFStep(category="Tools",
        toolTipText="Sort instances in ascending or descending order")
public class Sorter
extends JPanel
implements BeanCommon, Visible, Serializable, DataSource, DataSourceListener, TrainingSetListener, TestSetListener, InstanceListener, EventConstraints, StructureProducer, EnvironmentHandler

Sorts incoming instances in ascending or descending order according to the values of user specified attributes. Instances can be sorted according to multiple attributes (defined in order). Handles data sets larger than can be fit into main memory via instance connections and specifying the in-memory buffer size. Implements a merge-sort by writing the sorted in-memory buffer to a file when full and then interleaving instances from the disk based file(s) when the incoming stream has finished.

Version:
$Revision: 8051 $
Author:
Mark Hall (mhall{[at]}pentaho{[dot]}com)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
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
Sorter()
          Constructs a new Sorter
 
Method Summary
 void acceptDataSet(DataSetEvent e)
          Accept and process a data set event
 void acceptInstance(InstanceEvent e)
          Accept and process an instance event
 void acceptTestSet(TestSetEvent e)
          Accept and process a test set event
 void acceptTrainingSet(TrainingSetEvent e)
          Accept and process a training set event
 void addDataSourceListener(DataSourceListener dsl)
          Add a datasource listener
 void addInstanceListener(InstanceListener dsl)
          Add an instance listener
 boolean connectionAllowed(EventSetDescriptor esd)
          Returns true if, at this time, the object will accept a connection via the named event
 boolean connectionAllowed(String eventName)
          Returns true if, at this time, the object will accept a connection via the named event
 void connectionNotification(String eventName, Object source)
          Notify this object that it has been registered as a listener with a source for receiving events described by the named event This object is responsible for recording this fact.
 void disconnectionNotification(String eventName, Object source)
          Notify this object that it has been deregistered as a listener with a source for named event.
 boolean eventGeneratable(String eventName)
          Returns true if, at the current time, the named event could be generated.
 String getBufferSize()
          Get the size of the in-memory buffer
 Instances getConnectedFormat()
          Returns the structure of the incoming instances (if any)
 String getCustomName()
          Get the custom (descriptive) name for this bean (if one has been set)
 String getSortDetails()
          Get the sort rules to use
 Instances getStructure(String eventName)
          Get the structure of the output encapsulated in the named event.
 String getTempDirectory()
          Get the directory to use for temporary files during incremental operation
 BeanVisual getVisual()
          Get the visual representation
 String globalInfo()
          Help information suitable for displaying in the GUI.
 boolean isBusy()
          Returns true if.
 void removeDataSourceListener(DataSourceListener dsl)
          Remove a datasource listener
 void removeInstanceListener(InstanceListener dsl)
          Remove an instance listener
 void setBufferSize(String buffSize)
          Set the size of the in-memory buffer
 void setCustomName(String name)
          Set a custom (descriptive) name for this bean
 void setEnvironment(Environment env)
          Set environment variables to use
 void setLog(Logger logger)
          Set a logger
 void setSortDetails(String sortDetails)
          Set the sort rules to use
 void setTempDirectory(String tempDir)
          Set the directory to use for temporary files during incremental operation
 void setVisual(BeanVisual newVisual)
          Set a new visual representation
 void stop()
          Stop any processing that the bean might be doing.
 void useDefaultVisual()
          Use the default visual representation
 
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, 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, transferFocusBackward, 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, hide, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Sorter

public Sorter()
Constructs a new Sorter

Method Detail

globalInfo

public String globalInfo()
Help information suitable for displaying in the GUI.

Returns:
a description of this component

eventGeneratable

public boolean eventGeneratable(String eventName)
Returns true if, at the current time, the named event could be generated.

Specified by:
eventGeneratable in interface EventConstraints
Parameters:
eventName - the name of the event in question
Returns:
true if the named event could be generated

acceptInstance

public void acceptInstance(InstanceEvent e)
Accept and process an instance event

Specified by:
acceptInstance in interface InstanceListener
Parameters:
e - an InstanceEvent value

acceptTestSet

public void acceptTestSet(TestSetEvent e)
Accept and process a test set event

Specified by:
acceptTestSet in interface TestSetListener
Parameters:
e - a TestSetEvent value

acceptTrainingSet

public void acceptTrainingSet(TrainingSetEvent e)
Accept and process a training set event

Specified by:
acceptTrainingSet in interface TrainingSetListener
Parameters:
e - a TrainingSetEvent value

getBufferSize

public String getBufferSize()
Get the size of the in-memory buffer

Returns:
the size of the in-memory buffer

setBufferSize

public void setBufferSize(String buffSize)
Set the size of the in-memory buffer

Parameters:
buffSize - the size of the in-memory buffer

setTempDirectory

public void setTempDirectory(String tempDir)
Set the directory to use for temporary files during incremental operation

Parameters:
tempDir - the temp dir to use

getTempDirectory

public String getTempDirectory()
Get the directory to use for temporary files during incremental operation

Returns:
the temp dir to use

setSortDetails

public void setSortDetails(String sortDetails)
Set the sort rules to use

Parameters:
sortDetails - the sort rules in internal string representation

getSortDetails

public String getSortDetails()
Get the sort rules to use

Returns:
the sort rules in internal string representation

acceptDataSet

public void acceptDataSet(DataSetEvent e)
Accept and process a data set event

Specified by:
acceptDataSet in interface DataSourceListener
Parameters:
e - a DataSetEvent value

addDataSourceListener

public void addDataSourceListener(DataSourceListener dsl)
Add a datasource listener

Specified by:
addDataSourceListener in interface DataSource
Parameters:
dsl - the datasource listener to add

removeDataSourceListener

public void removeDataSourceListener(DataSourceListener dsl)
Remove a datasource listener

Specified by:
removeDataSourceListener in interface DataSource
Parameters:
dsl - the datasource listener to remove

addInstanceListener

public void addInstanceListener(InstanceListener dsl)
Add an instance listener

Specified by:
addInstanceListener in interface DataSource
Parameters:
dsl - the instance listener to add

removeInstanceListener

public void removeInstanceListener(InstanceListener dsl)
Remove an instance listener

Specified by:
removeInstanceListener in interface DataSource
Parameters:
dsl - the instance listener to remove

useDefaultVisual

public void useDefaultVisual()
Use the default visual representation

Specified by:
useDefaultVisual in interface Visible

setVisual

public void setVisual(BeanVisual newVisual)
Set a new visual representation

Specified by:
setVisual in interface Visible
Parameters:
newVisual - a BeanVisual value

getVisual

public BeanVisual getVisual()
Get the visual representation

Specified by:
getVisual in interface Visible
Returns:
a BeanVisual value

setCustomName

public void setCustomName(String name)
Set a custom (descriptive) name for this bean

Specified by:
setCustomName in interface BeanCommon
Parameters:
name - the name to use

getCustomName

public String getCustomName()
Get the custom (descriptive) name for this bean (if one has been set)

Specified by:
getCustomName in interface BeanCommon
Returns:
the custom name (or the default name)

stop

public void stop()
Stop any processing that the bean might be doing.

Specified by:
stop in interface BeanCommon

isBusy

public boolean isBusy()
Returns true if. at this time, the bean is busy with some (i.e. perhaps a worker thread is performing some calculation).

Specified by:
isBusy in interface BeanCommon
Returns:
true if the bean is busy.

setLog

public void setLog(Logger logger)
Set a logger

Specified by:
setLog in interface BeanCommon
Parameters:
logger - a weka.gui.Logger value

connectionAllowed

public boolean connectionAllowed(EventSetDescriptor esd)
Returns true if, at this time, the object will accept a connection via the named event

Specified by:
connectionAllowed in interface BeanCommon
Parameters:
esd - the EventSetDescriptor for the event in question
Returns:
true if the object will accept a connection

connectionAllowed

public boolean connectionAllowed(String eventName)
Returns true if, at this time, the object will accept a connection via the named event

Specified by:
connectionAllowed in interface BeanCommon
Parameters:
eventName - the name of the event
Returns:
true if the object will accept a connection

connectionNotification

public void connectionNotification(String eventName,
                                   Object source)
Notify this object that it has been registered as a listener with a source for receiving events described by the named event This object is responsible for recording this fact.

Specified by:
connectionNotification in interface BeanCommon
Parameters:
eventName - the event
source - the source with which this object has been registered as a listener

disconnectionNotification

public void disconnectionNotification(String eventName,
                                      Object source)
Notify this object that it has been deregistered as a listener with a source for named event. This object is responsible for recording this fact.

Specified by:
disconnectionNotification in interface BeanCommon
Parameters:
eventName - the event
source - the source with which this object has been registered as a listener

getStructure

public Instances getStructure(String eventName)
Get the structure of the output encapsulated in the named event. If the structure can't be determined in advance of seeing input, or this StructureProducer does not generate the named event, null should be returned.

Specified by:
getStructure in interface StructureProducer
Parameters:
eventName - the name of the output event that encapsulates the requested output.
Returns:
the structure of the output encapsulated in the named event or null if it can't be determined in advance of seeing input or the named event is not generated by this StructureProducer.

getConnectedFormat

public Instances getConnectedFormat()
Returns the structure of the incoming instances (if any)

Returns:
an Instances value

setEnvironment

public void setEnvironment(Environment env)
Set environment variables to use

Specified by:
setEnvironment in interface EnvironmentHandler
Parameters:
env - the environment variables to use


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.