weka.gui.beans

## Class Sorter

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - weka.gui.beans.Sorter

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.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 javax.swing.JPanel
      implements BeanCommon, Visible, java.io.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: 11132 $
  Author:
    Mark Hall (mhall{[at]}pentaho{[dot]}com)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### 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
    `Sorter()` Constructs a new Sorter

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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(java.beans.EventSetDescriptor esd)` Returns true if, at this time, the object will accept a connection via the named event
    `boolean` | `connectionAllowed(java.lang.String eventName)` Returns true if, at this time, the object will accept a connection via the named event
    `void` | `connectionNotification(java.lang.String eventName, java.lang.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(java.lang.String eventName, java.lang.Object source)` Notify this object that it has been deregistered as a listener with a source for named event.
    `boolean` | `eventGeneratable(java.lang.String eventName)` Returns true if, at the current time, the named event could be generated.
    `java.lang.String` | `getBufferSize()` Get the size of the in-memory buffer
    `Instances` | `getConnectedFormat()` Returns the structure of the incoming instances (if any)
    `java.lang.String` | `getCustomName()` Get the custom (descriptive) name for this bean (if one has been set)
    `java.lang.String` | `getSortDetails()` Get the sort rules to use
    `Instances` | `getStructure(java.lang.String eventName)` Get the structure of the output encapsulated in the named event.
    `java.lang.String` | `getTempDirectory()` Get the directory to use for temporary files during incremental operation
    `BeanVisual` | `getVisual()` Get the visual representation
    `java.lang.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(java.lang.String buffSize)` Set the size of the in-memory buffer
    `void` | `setCustomName(java.lang.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(java.lang.String sortDetails)` Set the sort rules to use
    `void` | `setTempDirectory(java.lang.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, 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

    - #### Sorter

          public Sorter()

      Constructs a new Sorter

  - ### Method Detail

    - #### globalInfo

          public java.lang.String globalInfo()

      Help information suitable for displaying in the GUI.
      Returns:
        a description of this component

    - #### eventGeneratable

          public boolean eventGeneratable(java.lang.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 java.lang.String getBufferSize()

      Get the size of the in-memory buffer
      Returns:
        the size of the in-memory buffer

    - #### setBufferSize

          public void setBufferSize(java.lang.String buffSize)

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

    - #### setTempDirectory

          public void setTempDirectory(java.lang.String tempDir)

      Set the directory to use for temporary files during incremental operation
      Parameters:
        `tempDir` - the temp dir to use

    - #### getTempDirectory

          public java.lang.String getTempDirectory()

      Get the directory to use for temporary files during incremental operation
      Returns:
        the temp dir to use

    - #### setSortDetails

          public void setSortDetails(java.lang.String sortDetails)

      Set the sort rules to use
      Parameters:
        `sortDetails` - the sort rules in internal string representation

    - #### getSortDetails

          public java.lang.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(java.lang.String name)

      Set a custom (descriptive) name for this bean
      Specified by:
        `setCustomName` in interface `BeanCommon`
      Parameters:
        `name` - the name to use

    - #### getCustomName

          public java.lang.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(java.beans.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(java.lang.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(java.lang.String eventName,
                                             java.lang.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(java.lang.String eventName,
                                                java.lang.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(java.lang.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