edu.wpi.cs.dsrg.xmldb.xat.component.gui
Class GUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--edu.wpi.cs.dsrg.xmldb.xat.component.gui.GUI
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
DistributedGUI, NonDistributedGUI

public abstract class GUI
extends javax.swing.JPanel

An abstract class for CAPE GUIs. An overview of GUI features:

Each GUI has a unique name. For example, if this GUI runs on the distribution manager, then the name would be "DISTRIBUTED". The GUI named "DISTRIBUTED" is flagged for the BasicGraphModelMaker to add labels to the operators identifying which machine that specific operator is running on. GUIs running on machines other than the distribution manager may be named "NON_DISTRIBUTED" and lack this machine identifier. All derived classes must implement the init() method.

Author:
Maylene Waltz
See Also:
Serialized Form

Field Summary
protected  java.lang.String _clientName
          The client's name.
protected  SystemObject _systemObject
          The SystemObject is used for gathering system statistics.
protected  XATTree[] _XATTrees
          The algebraic trees representing the query plans.
 
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.Container
 
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
GUI()
          Constructor initializes the GUI.
GUI(XATTree[] trees, java.lang.String clientName)
          Constructor loads the given trees, sets the GUI's client name to the given clientName and initializes the GUI.
GUI(XATTree[] trees, java.lang.String clientName, SystemObject systemObject)
          Constructor loads the given trees, sets the GUI's client name to the given clientName, sets the GUI's system object to the given systemObject and initializes the GUI.
 
Method Summary
 void applyCustomization()
          Applies the user's customization selections to the graph in the selected tab.
 boolean checkFreqFormat(javax.swing.JTextField textField)
          Ensures the update frequency is in milliseconds.
 FramesManager getFramesManager()
          Returns the FramesManager associated with this GUI.
 GraphManager getGraphManager()
          Returns the GraphManager associated with this GUI.
 javax.swing.JMenuBar getJMenuBar()
          Returns the GUI's menu bar.
 BasicGraphModelMaker getModelMaker()
          Returns the BasicGraphModelMaker associated with this GUI.
abstract  java.lang.String getName()
          Returns the name of the GUI.
 OptionsStorage getOptionsStorage()
          Returns the OptionsStorage associated with this GUI.
 PanelMaker getPanelMaker()
          Returns the PanelMaker associated with this GUI.
 javax.swing.JSplitPane getSplitPane()
          Returns the GUI's split pane.
 StatisticStorage getStatisticStorage()
          Returns the StatisticStorage associated with this GUI.
 SystemObject getSystemObject()
          Returns the SystemObject associated with this GUI.
 TableMaker getTableMaker()
          Returns the TableMaker associated with this GUI.
 javax.swing.JToolBar getToolBar()
          Returns the GUI's tool bar.
 TreeStorage getTreeStorage()
          Returns the TreeStorage associated with this GUI.
 javax.swing.Timer getUpdateStatisticTableTimer()
          Returns the timer that updates the statistic table(s) every UPDATE_STATISTICS_MILLISECONDS.
 XATTree getXATTree(int index)
          Returns the loaded tree at the given index.
 int getXATTreeCount()
          Returns the number of loaded trees in the GUI.
protected  void initGUI()
          Initializes the GUI.
protected  java.awt.Component makeToolbar()
          Creates this GUI's toolbar.
protected  javax.swing.Timer makeUpdateNodesTimer()
          Makes the timer to update node status every UPDATE_NODE_COLOR_MILLISECONDS.
protected  javax.swing.Timer makeUpdateQueuesTimer()
          Makes the timer to update the queue sizes every UPDATE_QUEUES_MILLISECONDS.
protected  javax.swing.Timer makeUpdateStatisticTableTimer()
          Makes the timer to update the statistic table(s) every UPDATE_STATISTICS_MILLISECONDS.
protected  void setSplitPane(javax.swing.JSplitPane splitPane)
          Sets this GUI's split pane to the given splitPane.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, 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, 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, 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

_XATTrees

protected XATTree[] _XATTrees
The algebraic trees representing the query plans.


_clientName

protected java.lang.String _clientName
The client's name. For example, "Machine 1".


_systemObject

protected SystemObject _systemObject
The SystemObject is used for gathering system statistics.

Constructor Detail

GUI

public GUI()
Constructor initializes the GUI. Note that no trees have been loaded at this point.


GUI

public GUI(XATTree[] trees,
           java.lang.String clientName)
Constructor loads the given trees, sets the GUI's client name to the given clientName and initializes the GUI.

Parameters:
trees - the trees to be loaded into the GUI
clientName - the name of the client. For example, "Machine 1".

GUI

public GUI(XATTree[] trees,
           java.lang.String clientName,
           SystemObject systemObject)
Constructor loads the given trees, sets the GUI's client name to the given clientName, sets the GUI's system object to the given systemObject and initializes the GUI.

Parameters:
trees - the trees to be loaded into the GUI
clientName - the name of the client. For example, "Machine 1"
systemObject - the object used to gather system statistics
Method Detail

applyCustomization

public void applyCustomization()
Applies the user's customization selections to the graph in the selected tab. The user can specify:

checkFreqFormat

public boolean checkFreqFormat(javax.swing.JTextField textField)
Ensures the update frequency is in milliseconds. The update frequency is the user-specified amount of time to plot a new point in the statistic plot(s).

Returns:
true if the frequency is in milliseconds; false, otherwise

getFramesManager

public FramesManager getFramesManager()
Returns the FramesManager associated with this GUI. The FramesManager manages all of the open frames and the making of new frames to display.

Returns:
the FramesManager that manages all open frames and the making of new frames to display

getGraphManager

public GraphManager getGraphManager()
Returns the GraphManager associated with this GUI. The GraphManager manages open graphs and the drawing of the graphs to the tabbed pane.

Returns:
the GraphManager that manages open graphs and the drawing of the graphs to the tabbed pane

getJMenuBar

public javax.swing.JMenuBar getJMenuBar()
Returns the GUI's menu bar.

Returns:
the GUI's menu bar

getModelMaker

public BasicGraphModelMaker getModelMaker()
Returns the BasicGraphModelMaker associated with this GUI. The BasicGraphModelMaker makes the diva.graph.basic.BasicGraphModels for each of the GUI's loaded trees.

Returns:
the BasicGraphModelMaker that makes the graph model for each of the GUI's loaded trees

getName

public abstract java.lang.String getName()
Returns the name of the GUI. For example, if this GUI runs on the distribution manager, then the name would be "DISTRIBUTED". The GUI named "DISTRIBUTED" is flagged for the BasicGraphModelMaker to add labels to the operators identifying which machine that specific operator is running on. GUIs running on machines other than the distribution manager may be named "NON_DISTRIBUTED" and lack this machine identifier.

Overrides:
getName in class java.awt.Component
Returns:
the name of the GUI

getOptionsStorage

public OptionsStorage getOptionsStorage()
Returns the OptionsStorage associated with this GUI. The OptionsStorage stores all of the user's selected/deselected options. Examples of options are:

Returns:
the OptionsStorage where all user selected/deselected options are stored

getPanelMaker

public PanelMaker getPanelMaker()
Returns the PanelMaker associated with this GUI. The PanelMaker makes all of the GUI's panels.

Returns:
the PanelMaker that makes all of the GUI's panels

getSplitPane

public javax.swing.JSplitPane getSplitPane()
Returns the GUI's split pane. The top holds a tabbed pane of tree graphs and the bottom holds a tabbed pane of statistic table(s).

Returns:
the GUI's split pane. The top holds a tabbed pane of tree graphs and the bottom holds a tabbed pane of statistic table(s).

getStatisticStorage

public StatisticStorage getStatisticStorage()
Returns the StatisticStorage associated with this GUI. The StatisticStorage stores all statistics for the tree(s), queue(s), operator(s) and system.

Returns:
the StatisticStorage that stores all statistics for the tree(s), queue(s), operator(s) and system

getSystemObject

public SystemObject getSystemObject()
Returns the SystemObject associated with this GUI. The SystemObject is used to gather system statistics.

Returns:
the system object of this GUI

getTableMaker

public TableMaker getTableMaker()
Returns the TableMaker associated with this GUI. The TableMaker handles making all of the tables. Table properties such as column width and auto-resize mode are set here. The table is placed in a scroll pane and these properties are set here as well.

Returns:
the TableMaker that handles making all tables

getToolBar

public javax.swing.JToolBar getToolBar()
Returns the GUI's tool bar.

Returns:
this GUI's tool bar

getTreeStorage

public TreeStorage getTreeStorage()
Returns the TreeStorage associated with this GUI. The TreeStorage stores all of the operator(s) and queue(s) of all loaded trees.

Returns:
the TreeStorage that stores all loaded trees

getUpdateStatisticTableTimer

public javax.swing.Timer getUpdateStatisticTableTimer()
Returns the timer that updates the statistic table(s) every UPDATE_STATISTICS_MILLISECONDS.

Returns:
the timer that updates the statistic table(s)

getXATTree

public XATTree getXATTree(int index)
Returns the loaded tree at the given index.

Returns:
the loaded tree at the given index

getXATTreeCount

public int getXATTreeCount()
Returns the number of loaded trees in the GUI.

Returns:
the number of loaded trees

makeUpdateQueuesTimer

protected javax.swing.Timer makeUpdateQueuesTimer()
Makes the timer to update the queue sizes every UPDATE_QUEUES_MILLISECONDS.

Returns:
the timer to update the queue sizes

makeUpdateNodesTimer

protected javax.swing.Timer makeUpdateNodesTimer()
Makes the timer to update node status every UPDATE_NODE_COLOR_MILLISECONDS.

Returns:
the timer to update node status

makeUpdateStatisticTableTimer

protected javax.swing.Timer makeUpdateStatisticTableTimer()
Makes the timer to update the statistic table(s) every UPDATE_STATISTICS_MILLISECONDS.

Returns:
the timer to update the statistic table(s)

setSplitPane

protected void setSplitPane(javax.swing.JSplitPane splitPane)
Sets this GUI's split pane to the given splitPane.


makeToolbar

protected java.awt.Component makeToolbar()
Creates this GUI's toolbar.

Returns:
the toolbar specific to this GUI

initGUI

protected void initGUI()
Initializes the GUI.