junit.extensions.jfcunit.tools
Class ComponentBrowser

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byjunit.extensions.jfcunit.tools.ComponentBrowser
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.event.TreeSelectionListener, javax.swing.WindowConstants, java.awt.event.WindowListener

public final class ComponentBrowser
extends javax.swing.JFrame
implements java.awt.event.ActionListener, javax.swing.event.TreeSelectionListener, java.awt.event.WindowListener

Component Browser utility. Displays the components of a Java application in a component tree. When objects are selected, there properties are displayed in the property table.

Author:
Vijay Aravamudhan : ThoughtWorks Inc.
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.JTree m_componentTree
          Component Tree.
private  javax.swing.table.DefaultTableModel m_propTableModel
          Property Table Model.
private  javax.swing.JButton m_refreshButton
          Refresh Button.
protected static java.lang.String TITLE
          Title of the Component Browser 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
ComponentBrowser()
          Default constructor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Invoked when an action occurs.
private  void addProperty(java.awt.Component comp, java.lang.reflect.Method method, java.util.Vector processed)
          Method to create and add rows to the table model to show the various attributes of the current selected component.
private  void componentSelected(java.awt.Component comp)
          The method which does the actual work of "refreshing" the right side of the main frame with the data for the component selected on the JTree.
private  javax.swing.JPanel createLeftPanel()
          Method to create the left pane consisting of the reload button and a JTree.
private  javax.swing.JButton createReloadButton()
          Method to create a default button to reload the JTree.
private  javax.swing.JScrollPane createRightPanel()
          Method to create the right pane consisting of the JTable.
private  void equip(java.awt.Container pane)
          Method to create required widgets/components and populate the content pane with them.
private  java.lang.String getPropertyName(java.lang.String methodName)
          Method to "extract" the property name from the method name following the convention specified for a bean.
private  boolean isAccessibleGetterMethod(java.lang.reflect.Method method)
          Method to check if the method specified on the class is a "getter" for an attribute of that class.
 boolean isComponentSelected()
          Utility method showing whether a component node has been selected or not.
static void main(java.lang.String[] args)
          Just another dumb main method.
 void valueChanged(javax.swing.event.TreeSelectionEvent e)
          Called whenever the value of the selection changes.
 void windowActivated(java.awt.event.WindowEvent e)
          Invoked when the window is set to be the user's active window, which means the window (or one of its subcomponents) will receive keyboard events.
 void windowClosed(java.awt.event.WindowEvent e)
          Invoked when a window has been closed as the result of calling dispose on the window.
 void windowClosing(java.awt.event.WindowEvent e)
          Invoked when the user attempts to close the window from the window's system menu.
 void windowDeactivated(java.awt.event.WindowEvent e)
          Invoked when a window is no longer the user's active window, which means that keyboard events will no longer be delivered to the window or its subcomponents.
 void windowDeiconified(java.awt.event.WindowEvent e)
          Invoked when a window is changed from a minimized to a normal state.
 void windowIconified(java.awt.event.WindowEvent e)
          Invoked when a window is changed from a normal to a minimized state.
 void windowOpened(java.awt.event.WindowEvent e)
          Invoked the first time a window is made visible.
 
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

TITLE

protected static final java.lang.String TITLE
Title of the Component Browser Window.

See Also:
Constant Field Values

m_propTableModel

private javax.swing.table.DefaultTableModel m_propTableModel
Property Table Model.


m_refreshButton

private javax.swing.JButton m_refreshButton
Refresh Button.


m_componentTree

private javax.swing.JTree m_componentTree
Component Tree.

Constructor Detail

ComponentBrowser

public ComponentBrowser()
Default constructor.

Method Detail

main

public static void main(java.lang.String[] args)
Just another dumb main method.

Parameters:
args - Command line arguments.

isComponentSelected

public boolean isComponentSelected()
Utility method showing whether a component node has been selected or not.

Returns:
boolean True if a component is selected in the tree.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Invoked when an action occurs.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - dispatched action event.

valueChanged

public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Called whenever the value of the selection changes.

Specified by:
valueChanged in interface javax.swing.event.TreeSelectionListener
Parameters:
e - the event that characterizes the change.

windowActivated

public void windowActivated(java.awt.event.WindowEvent e)
Invoked when the window is set to be the user's active window, which means the window (or one of its subcomponents) will receive keyboard events.

Specified by:
windowActivated in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowClosed

public void windowClosed(java.awt.event.WindowEvent e)
Invoked when a window has been closed as the result of calling dispose on the window.

Specified by:
windowClosed in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowClosing

public void windowClosing(java.awt.event.WindowEvent e)
Invoked when the user attempts to close the window from the window's system menu. If the program does not explicitly hide or dispose the window while processing this event, the window close operation will be cancelled.

Specified by:
windowClosing in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent e)
Invoked when a window is no longer the user's active window, which means that keyboard events will no longer be delivered to the window or its subcomponents.

Specified by:
windowDeactivated in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent e)
Invoked when a window is changed from a minimized to a normal state.

Specified by:
windowDeiconified in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowIconified

public void windowIconified(java.awt.event.WindowEvent e)
Invoked when a window is changed from a normal to a minimized state. For many platforms, a minimized window is displayed as the icon specified in the window's iconImage property.

Specified by:
windowIconified in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

windowOpened

public void windowOpened(java.awt.event.WindowEvent e)
Invoked the first time a window is made visible.

Specified by:
windowOpened in interface java.awt.event.WindowListener
Parameters:
e - dispatched window event.

isAccessibleGetterMethod

private boolean isAccessibleGetterMethod(java.lang.reflect.Method method)
Method to check if the method specified on the class is a "getter" for an attribute of that class.

Parameters:
method - The method to be tested.
Returns:
true if the method is a "getter".

getPropertyName

private java.lang.String getPropertyName(java.lang.String methodName)
Method to "extract" the property name from the method name following the convention specified for a bean.

Parameters:
methodName - The name of the method.
Returns:
The name of the attribute.

addProperty

private void addProperty(java.awt.Component comp,
                         java.lang.reflect.Method method,
                         java.util.Vector processed)
Method to create and add rows to the table model to show the various attributes of the current selected component.

Parameters:
comp - The component selected on the JTree.
method - The method associated with an attribute.
processed - The list of already processed methods - to take care of methods in the super classes.

componentSelected

private void componentSelected(java.awt.Component comp)
The method which does the actual work of "refreshing" the right side of the main frame with the data for the component selected on the JTree.

Parameters:
comp - The selected component.

createLeftPanel

private javax.swing.JPanel createLeftPanel()
Method to create the left pane consisting of the reload button and a JTree.

Returns:
A JPanel for the left side of the main frame

createReloadButton

private javax.swing.JButton createReloadButton()
Method to create a default button to reload the JTree.

Returns:
A button to reload the data.

createRightPanel

private javax.swing.JScrollPane createRightPanel()
Method to create the right pane consisting of the JTable.

Returns:
A JPanel for the right side of the main frame.

equip

private void equip(java.awt.Container pane)
Method to create required widgets/components and populate the content pane with them.

Parameters:
pane - The content pane to which the created objects have to be added into.


Licensed under: GNU Lesser General Public License, Ver 2.1, February 1999