uk.org.ogsadai.client.databrowser.sql
Class DBSchemaView

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--uk.org.ogsadai.client.databrowser.sql.DBSchemaView
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.util.Observer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class DBSchemaView
extends javax.swing.JFrame
implements java.util.Observer

GUI displaying a database schema. View in MVC pattern, observes the model and displays the query results when updated. A new instance should be created for every new findServiceDataquery. Once a query is completed it removes itself from observing the model so that it is not affected by future queries.

Author:
Paul J Graham, EPCC, The OGSA-DAI Project Team
See Also:
Serialized Form

Nested Class Summary
protected  class DBSchemaView.SchemaTableModel
           
 
Field Summary
private static java.lang.String COPYRIGHT_NOTICE
          Copyright statement
private  java.util.Observable mObservable
          Implementation of Observable allowing to monitor this object
private  javax.swing.JTabbedPane mTableTabs
          Tabs displaying the table schemas
private static java.lang.String TITLE
          Title of this window
 
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
DBSchemaView(java.util.Observable model, javax.swing.JFrame parent)
          Constructs a GUI to display the results of a query in table format.
 
Method Summary
protected  void buildTables(DatabaseSchemaMetaData schema)
          Constructs the tabbed pane displaying the database schema and initialises the DatabaseSchemaMetaData object.
protected  void displayResults()
          Display the results of the query in a table in the GUI.
private  void displayResults(DatabaseSchemaMetaData schema)
          Parse the database schema element into a table.
 void exit()
          Close this window (queries the user if data has not been saved).
protected  javax.swing.JTable makeKeyTable(KeyMetaData[] keys)
          Builds the table for imported or exported keys.
protected  void showTables(DatabaseSchemaMetaData schema)
          Sorts the database schema information into a tables.
 void stopObserving()
          Stops this view observing the model.
 void update(java.util.Observable observable, java.lang.Object updatedObject)
           
 
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

COPYRIGHT_NOTICE

private static final java.lang.String COPYRIGHT_NOTICE
Copyright statement

See Also:
Constant Field Values

TITLE

private static final java.lang.String TITLE
Title of this window

See Also:
Constant Field Values

mTableTabs

private javax.swing.JTabbedPane mTableTabs
Tabs displaying the table schemas


mObservable

private java.util.Observable mObservable
Implementation of Observable allowing to monitor this object

Constructor Detail

DBSchemaView

public DBSchemaView(java.util.Observable model,
                    javax.swing.JFrame parent)
Constructs a GUI to display the results of a query in table format.

Parameters:
model - The data model to observe
parent - The parent window of this frame
Method Detail

update

public void update(java.util.Observable observable,
                   java.lang.Object updatedObject)
Specified by:
update in interface java.util.Observer

displayResults

private void displayResults(DatabaseSchemaMetaData schema)
Parse the database schema element into a table. Run as a GUIThread so the GUI remains responsive (for the progress monitor).

Parameters:
schema - database schema

stopObserving

public void stopObserving()
Stops this view observing the model. Useful if there is an error elsewhere and we don't want this view to continue monitoring.


buildTables

protected void buildTables(DatabaseSchemaMetaData schema)
                    throws java.lang.Exception
Constructs the tabbed pane displaying the database schema and initialises the DatabaseSchemaMetaData object.

Parameters:
schema - database schema
Throws:
java.lang.Exception

showTables

protected void showTables(DatabaseSchemaMetaData schema)
Sorts the database schema information into a tables. Metadata for each database table is displayed on a tab. There is one table containing column names, types and primary keys and a table each for imported and exported keys.

Parameters:
schema - the database schema

makeKeyTable

protected javax.swing.JTable makeKeyTable(KeyMetaData[] keys)
Builds the table for imported or exported keys.

Parameters:
keys -
Returns:
JTable

displayResults

protected void displayResults()
Display the results of the query in a table in the GUI.


exit

public void exit()
Close this window (queries the user if data has not been saved).