public class BoundaryPanel
extends javax.swing.JPanel
JPanel,
Serialized Form| Modifier and Type | Class and Description |
|---|---|
protected class |
BoundaryPanel.PlotThread |
javax.swing.JPanel.AccessibleJPaneljavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
static java.awt.Color[] |
DEFAULT_COLORS
default colours for classes
|
protected Classifier |
m_classifier
distribution classifier to use
|
protected java.util.ArrayList<java.awt.Color> |
m_Colors |
protected DataGenerator |
m_dataGenerator
data generator to use
|
protected double |
m_maxX |
protected double |
m_maxY |
protected double |
m_minX |
protected double |
m_minY |
protected int |
m_numOfSamplesPerGenerator |
protected int |
m_numOfSamplesPerRegion |
protected java.awt.Image |
m_osi
used for offscreen drawing
|
protected int |
m_panelHeight |
protected int |
m_panelWidth |
protected double |
m_pixHeight |
protected double |
m_pixWidth |
protected boolean |
m_plotTrainingData
plot the training data
|
protected double[][][] |
m_probabilityCache
cache of probabilities for fast replotting
|
protected double |
m_samplesBase |
protected boolean |
m_stopPlotting
Stop the plotting thread
|
protected boolean |
m_stopReplotting
Stop any replotting threads
|
protected Instances |
m_trainingData
training data
|
protected int |
m_xAttribute |
protected int |
m_yAttribute |
static double |
REMOVE_POINT_RADIUS
The distance we can click away from a point in the GUI and still remove it.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
BoundaryPanel(int panelWidth,
int panelHeight)
Creates a new
BoundaryPanel instance. |
| Modifier and Type | Method and Description |
|---|---|
void |
addActionListener(java.awt.event.ActionListener newListener)
Register a listener to be notified when plotting completes
|
void |
addMouseListener(java.awt.event.MouseListener l)
Adds a mouse listener.
|
void |
addTrainingInstance(Instance instance)
Adds a training instance to the visualization dataset.
|
void |
addTrainingInstanceFromMouseLocation(int mouseX,
int mouseY,
int classAttIndex,
double classValue)
Adds a training instance to our dataset, based on the coordinates of the
mouse on the panel.
|
void |
computeMinMaxAtts()
Set up the bounds of our graphic based by finding the smallest reasonable
area in the instance space to surround our data points.
|
java.util.ArrayList<java.awt.Color> |
getColors()
Get the current vector of Color objects used for the classes
|
double |
getGeneratorSamplesBase()
Get the base used for computing the number of samples to obtain from each
generator
|
double |
getMaxXBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse
coordinates).
|
double |
getMaxYBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse
coordinates).
|
double |
getMinXBound()
Gets the minimum x-coordinate bound, in training-instance units (not mouse
coordinates).
|
double |
getMinYBound()
Gets the minimum y-coordinate bound, in training-instance units (not mouse
coordinates).
|
int |
getNumSamplesPerRegion()
Get the number of points to sample from a region (fixed dimensions).
|
boolean |
getPlotTrainingData()
Returns true if training data is to be superimposed
|
protected void |
initialize()
Set up the off screen bitmap for rendering to
|
static void |
main(java.lang.String[] args)
Main method for testing this class
|
protected void |
plotPoint(int x,
int y,
double[] probs,
boolean update)
Plot a point in our visualization on-screen.
|
void |
plotTrainingData()
Render the training points on-screen.
|
void |
removeActionListener(java.awt.event.ActionListener removeListener)
Remove a listener
|
void |
removeAllInstances()
Deletes all training instances from our dataset.
|
void |
removeTrainingInstanceFromMouseLocation(int mouseX,
int mouseY)
Removes a single training instance from our dataset, if there is one that
is close enough to the specified mouse location.
|
void |
replot()
Quickly replot the display using cached probability estimates
|
protected void |
saveImage(java.lang.String fileName) |
void |
setClassifier(Classifier classifier)
Set the classifier to use.
|
void |
setColors(java.util.ArrayList<java.awt.Color> colors)
Set a vector of Color objects for the classes
|
void |
setDataGenerator(DataGenerator dataGenerator)
Set the data generator to use for generating new instances
|
void |
setGeneratorSamplesBase(double ksb)
Set the base for computing the number of samples to obtain from each
generator. number of samples = base ^ (# non fixed dimensions)
|
void |
setNumSamplesPerRegion(int num)
Set the number of points to uniformly sample from a region (fixed
dimensions).
|
void |
setPlotTrainingData(boolean pg)
Set whether to superimpose the training data plot
|
void |
setTrainingData(Instances trainingData)
Set the training data to use
|
void |
setXAttribute(int xatt)
Set the x attribute index
|
void |
setYAttribute(int yatt)
Set the y attribute index
|
void |
start()
Start the plotting thread
|
void |
startPlotThread()
Starts the plotting thread.
|
void |
stopPlotting()
Stop the plotting thread
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, 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, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, 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, transferFocusUpCyclepublic static final java.awt.Color[] DEFAULT_COLORS
public static final double REMOVE_POINT_RADIUS
protected java.util.ArrayList<java.awt.Color> m_Colors
protected Instances m_trainingData
protected Classifier m_classifier
protected DataGenerator m_dataGenerator
protected int m_xAttribute
protected int m_yAttribute
protected double m_minX
protected double m_minY
protected double m_maxX
protected double m_maxY
protected double m_pixHeight
protected double m_pixWidth
protected java.awt.Image m_osi
protected int m_panelWidth
protected int m_panelHeight
protected int m_numOfSamplesPerRegion
protected int m_numOfSamplesPerGenerator
protected double m_samplesBase
protected boolean m_stopPlotting
protected boolean m_stopReplotting
protected double[][][] m_probabilityCache
protected boolean m_plotTrainingData
public BoundaryPanel(int panelWidth,
int panelHeight)
BoundaryPanel instance.panelWidth - the width in pixels of the panelpanelHeight - the height in pixels of the panelpublic void setNumSamplesPerRegion(int num)
num - an int valuepublic int getNumSamplesPerRegion()
int valuepublic void setGeneratorSamplesBase(double ksb)
ksb - a double valuepublic double getGeneratorSamplesBase()
double valueprotected void initialize()
public void stopPlotting()
public void computeMinMaxAtts()
public void start()
throws java.lang.Exception
java.lang.Exception - if an error occurspublic void plotTrainingData()
protected void plotPoint(int x,
int y,
double[] probs,
boolean update)
public void setTrainingData(Instances trainingData) throws java.lang.Exception
trainingData - the training datajava.lang.Exception - if an error occurspublic void addTrainingInstance(Instance instance)
public void addActionListener(java.awt.event.ActionListener newListener)
newListener - the listener to addpublic void removeActionListener(java.awt.event.ActionListener removeListener)
removeListener - the listener to removepublic void setClassifier(Classifier classifier)
classifier - the classifier to usepublic void setDataGenerator(DataGenerator dataGenerator)
dataGenerator - the data generator to usepublic void setXAttribute(int xatt)
throws java.lang.Exception
xatt - index of the attribute to use on the x axisjava.lang.Exception - if an error occurspublic void setYAttribute(int yatt)
throws java.lang.Exception
yatt - index of the attribute to use on the y axisjava.lang.Exception - if an error occurspublic void setColors(java.util.ArrayList<java.awt.Color> colors)
colors - a FastVector valuepublic void setPlotTrainingData(boolean pg)
pg - a boolean valuepublic boolean getPlotTrainingData()
boolean valuepublic java.util.ArrayList<java.awt.Color> getColors()
FastVector valuepublic void replot()
protected void saveImage(java.lang.String fileName)
public void addTrainingInstanceFromMouseLocation(int mouseX,
int mouseY,
int classAttIndex,
double classValue)
mouseX - the x coordinate of the mouse, in pixels.mouseY - the y coordinate of the mouse, in pixels.classAttIndex - the index of the attribute that is currently selected
as the class attribute.classValue - the value to set the class to in our new point.public void removeAllInstances()
public void removeTrainingInstanceFromMouseLocation(int mouseX,
int mouseY)
public void startPlotThread()
public void addMouseListener(java.awt.event.MouseListener l)
addMouseListener in class java.awt.Componentpublic double getMinXBound()
public double getMinYBound()
public double getMaxXBound()
public double getMaxYBound()
public static void main(java.lang.String[] args)
args - a String[] value