jqubePopups
Class ClusterGUI

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byjqubePopups.ClusterGUI
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class ClusterGUI
extends javax.swing.JFrame

Class defines a dialog box wich allows the user to perform all the functionality associated with k-means clustering and statistical value generation

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  javax.swing.JButton connect
          button to initialize and update a connection to the database
private  javax.swing.JButton editVector
          button to allow the user to choose which elements of the vector to select
private  javax.swing.JLabel initialDLabel
          label for the sampled inter-vector distances
private  javax.swing.JTextField initialDText
          the text field for the sampled inter-vector distances
private  javax.swing.JLabel iterationsLabel
          label for the number of iterations the user wishes to run for clustering
private  javax.swing.JTextField iterationsText
          text field to hold the number of max iterations to compute
private  javax.swing.JLabel multiplierLabel
          label for the multiplication factor by which to apply to the sampled distance
private  javax.swing.JTextField multiplierText
          text field to hold the value for the multiplier
private  javax.swing.JButton reCalculateInitialD
          button to recalculate the average inter-vector distances
private  javax.swing.JButton reCalculateStatistics
          button to recalculate the statistics
private  javax.swing.JLabel resultantDLabel
          label for the result of sample distance value times the multiple value
private  javax.swing.JTextField resultantDText
          text field to hold the value of the initial d value multiplied by the factor
private  javax.swing.JButton runClustering
          button to run the clustering algorithm
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ClusterGUI()
          Creates an instance of the panel to allow the user to run the k-means clustering
 
Method Summary
private  void calculateNewD()
           
private  void configureButton(javax.swing.JButton button)
          Standardardizes the look and font of one type of buttons on the front GUI
private  void doClustering()
          Performs the clustering algorithm described in the ClusterDriver class
private  void editTemplateVector()
           
private  void initializeClustering()
          Initializes the system by fetching the statistics vectors, calculating the sample vector distances and preparing for clustering
private  void initializeComponents()
          Create instances of all the class variables and set their initial values
private  void layoutComponents()
          Lay out the componenets on the dialog panel
private  void loadValues()
          Populate the initial inter cluster distance from the database
static void main(java.lang.String[] args)
           
private  void reCalculateD()
          Recalculates the sample vector distance measure if the system is initialized and puts the new value into the sample d text box
private  void reComputeStatistics()
          Recalculates the statistics vectors and updates the database.
private  void registerComponents()
          Associate all relevant objects with listeners to handle all events
private  void setBasicProperties()
          Adjust the size of the dialog box, background color and title
private  boolean testVectorSpace()
          Tests if the vector space has more than 1000 elements.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

initialDLabel

private javax.swing.JLabel initialDLabel
label for the sampled inter-vector distances


multiplierLabel

private javax.swing.JLabel multiplierLabel
label for the multiplication factor by which to apply to the sampled distance


resultantDLabel

private javax.swing.JLabel resultantDLabel
label for the result of sample distance value times the multiple value


iterationsLabel

private javax.swing.JLabel iterationsLabel
label for the number of iterations the user wishes to run for clustering


initialDText

private javax.swing.JTextField initialDText
the text field for the sampled inter-vector distances


multiplierText

private javax.swing.JTextField multiplierText
text field to hold the value for the multiplier


resultantDText

private javax.swing.JTextField resultantDText
text field to hold the value of the initial d value multiplied by the factor


iterationsText

private javax.swing.JTextField iterationsText
text field to hold the number of max iterations to compute


connect

private javax.swing.JButton connect
button to initialize and update a connection to the database


editVector

private javax.swing.JButton editVector
button to allow the user to choose which elements of the vector to select


reCalculateInitialD

private javax.swing.JButton reCalculateInitialD
button to recalculate the average inter-vector distances


reCalculateStatistics

private javax.swing.JButton reCalculateStatistics
button to recalculate the statistics


runClustering

private javax.swing.JButton runClustering
button to run the clustering algorithm

Constructor Detail

ClusterGUI

public ClusterGUI()
Creates an instance of the panel to allow the user to run the k-means clustering

Method Detail

initializeComponents

private void initializeComponents()
Create instances of all the class variables and set their initial values


configureButton

private void configureButton(javax.swing.JButton button)
Standardardizes the look and font of one type of buttons on the front GUI

Parameters:
button - the button to be adjusted

setBasicProperties

private void setBasicProperties()
Adjust the size of the dialog box, background color and title


layoutComponents

private void layoutComponents()
Lay out the componenets on the dialog panel


registerComponents

private void registerComponents()
Associate all relevant objects with listeners to handle all events


loadValues

private void loadValues()
Populate the initial inter cluster distance from the database


initializeClustering

private void initializeClustering()
Initializes the system by fetching the statistics vectors, calculating the sample vector distances and preparing for clustering


reCalculateD

private void reCalculateD()
Recalculates the sample vector distance measure if the system is initialized and puts the new value into the sample d text box


reComputeStatistics

private void reComputeStatistics()
Recalculates the statistics vectors and updates the database.

This is a very time consuming action and should only be used when there are updates to the database and the statistics need to be correspondingly updated / recomputed.


doClustering

private void doClustering()
Performs the clustering algorithm described in the ClusterDriver class


calculateNewD

private void calculateNewD()

editTemplateVector

private void editTemplateVector()

testVectorSpace

private boolean testVectorSpace()
Tests if the vector space has more than 1000 elements.

This is to avoid running into problems with the system when few vectors are present

Returns:
true if more than 1000 vectors exist, false otherwise

main

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