## milk.gui.experiment
Class MISetupPanel

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--javax.swing.JPanel
                              |
                              +--milk.gui.experiment.MISetupPanel

All Implemented Interfaces:
  javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class MISetupPanel
extends javax.swing.JPanel

This panel controls the configuration of an experiment.

See Also:
  Serialized Form

Field Summary
`protected javax.swing.JRadioButton` `m_advanceDataSetFirst` Click to advacne data set before custom generator
`protected javax.swing.JRadioButton` `m_advanceIteratorFirst` Click to advance custom generator before data set
`protected MIDatasetListPanel` `m_DatasetListPanel` The panel for configuring selected datasets
`protected MIDistributeExperimentPanel` `m_DistributeExperimentPanel` The panel for enabling a distributed experiment
`protected MIExperiment` `m_Exp` The experiment being configured
`protected javax.swing.filechooser.FileFilter` `m_ExpFilter` A filter to ensure only experiment files get shown in the chooser
`protected javax.swing.JFileChooser` `m_FileChooser` The file chooser for selecting experiments
`protected MIGeneratorPropertyIteratorPanel` `m_GeneratorPropertyPanel` The panel that configures iteration on custom resultproducer property
`protected javax.swing.JButton` `m_NewBut` Click to create a new experiment with default settings
`protected javax.swing.JTextArea` `m_NotesText` Area for user notes Default of 5 rows
`protected javax.swing.JButton` `m_OpenBut` Click to load an experiment
`protected weka.gui.GenericObjectEditor` `m_RLEditor` The ResultListener editor
`protected weka.gui.PropertyPanel` `m_RLEditorPanel` The panel to contain the ResultListener editor
`protected weka.gui.GenericObjectEditor` `m_RPEditor` The ResultProducer editor
`protected weka.gui.PropertyPanel` `m_RPEditorPanel` The panel to contain the ResultProducer editor
`protected MIRunNumberPanel` `m_RunNumberPanel` The panel for configuring run numbers
`protected javax.swing.JButton` `m_SaveBut` Click to save an experiment
`protected java.beans.PropertyChangeSupport` `m_Support` Manages sending notifications to people when we change the experiment, at this stage, only the resultlistener so the resultpanel can update.

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
`MISetupPanel()` Creates the setup panel with no initial experiment.
`MISetupPanel(MIExperiment exp)` Creates the setup panel with the supplied initial experiment.

Method Summary
`void` `addPropertyChangeListener(java.beans.PropertyChangeListener l)` Adds a PropertyChangeListener who will be notified of value changes.
`MIExperiment` `getExperiment()` Gets the currently configured experiment.
`static void` `main(java.lang.String[] args)` Tests out the experiment setup from the command line.
`void` `removePropertyChangeListener(java.beans.PropertyChangeListener l)` Removes a PropertyChangeListener.
`void` `setExperiment(MIExperiment exp)` Sets the experiment to configure.

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### m_Exp

    protected MIExperiment m_Exp

  The experiment being configured

### m_OpenBut

    protected javax.swing.JButton m_OpenBut

  Click to load an experiment

### m_SaveBut

    protected javax.swing.JButton m_SaveBut

  Click to save an experiment

### m_NewBut

    protected javax.swing.JButton m_NewBut

  Click to create a new experiment with default settings

### m_ExpFilter

    protected javax.swing.filechooser.FileFilter m_ExpFilter

  A filter to ensure only experiment files get shown in the chooser

### m_FileChooser

    protected javax.swing.JFileChooser m_FileChooser

  The file chooser for selecting experiments

### m_RPEditor

    protected weka.gui.GenericObjectEditor m_RPEditor

  The ResultProducer editor

### m_RPEditorPanel

    protected weka.gui.PropertyPanel m_RPEditorPanel

  The panel to contain the ResultProducer editor

### m_RLEditor

    protected weka.gui.GenericObjectEditor m_RLEditor

  The ResultListener editor

### m_RLEditorPanel

    protected weka.gui.PropertyPanel m_RLEditorPanel

  The panel to contain the ResultListener editor

### m_GeneratorPropertyPanel

    protected MIGeneratorPropertyIteratorPanel m_GeneratorPropertyPanel

  The panel that configures iteration on custom resultproducer property

### m_RunNumberPanel

    protected MIRunNumberPanel m_RunNumberPanel

  The panel for configuring run numbers

### m_DistributeExperimentPanel

    protected MIDistributeExperimentPanel m_DistributeExperimentPanel

  The panel for enabling a distributed experiment

### m_DatasetListPanel

    protected MIDatasetListPanel m_DatasetListPanel

  The panel for configuring selected datasets

### m_NotesText

    protected javax.swing.JTextArea m_NotesText

  Area for user notes Default of 5 rows

### m_Support

    protected java.beans.PropertyChangeSupport m_Support

  Manages sending notifications to people when we change the experiment, at this stage, only the resultlistener so the resultpanel can update.

### m_advanceDataSetFirst

    protected javax.swing.JRadioButton m_advanceDataSetFirst

  Click to advacne data set before custom generator

### m_advanceIteratorFirst

    protected javax.swing.JRadioButton m_advanceIteratorFirst

  Click to advance custom generator before data set

Constructor Detail

### MISetupPanel

    public MISetupPanel(MIExperiment exp)

  Creates the setup panel with the supplied initial experiment.

Parameters:
  `exp` - a value of type 'Experiment'

### MISetupPanel

    public MISetupPanel()

  Creates the setup panel with no initial experiment.

Method Detail

### setExperiment

    public void setExperiment(MIExperiment exp)

  Sets the experiment to configure.

  Parameters:
    `exp` - a value of type 'Experiment'

### getExperiment

    public MIExperiment getExperiment()

  Gets the currently configured experiment.

  Returns:
    the currently configured experiment.

### 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'

### main

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

  Tests out the experiment setup from the command line.

  Parameters:
    `args` - arguments to the program.