org.htmlparser.lexerapplications.thumbelina
Class ThumbelinaFrame

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byorg.htmlparser.lexerapplications.thumbelina.ThumbelinaFrame
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.MenuContainer, java.beans.PropertyChangeListener, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants, java.awt.event.WindowListener

public class ThumbelinaFrame
extends javax.swing.JFrame
implements java.awt.event.WindowListener, java.awt.event.ActionListener, java.awt.event.ItemListener, java.beans.PropertyChangeListener

Encapsulate a Thumbelina bean and add menu and preferences support. Provides a JFrame base in which to place a Thumbelina bean, and adds a menu system with MRU (Most Recently Used) list. Also provides a Google search capability. Will eventually provide Javahelp too.

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
protected  javax.swing.JMenuItem mAbout
          About menu item.
protected  javax.swing.JMenuItem mClear
          Clear menu item
protected  javax.swing.JMenu mCommand
          Vommand menu.
protected  javax.swing.JMenuItem mExit
          Exit menu item.
protected  javax.swing.JMenuItem mGoogle
          Google menu item.
protected  javax.swing.JMenu mHelp
          Help submenu.
protected  javax.swing.JCheckBoxMenuItem mHistoryVisible
          History list visible menu item.
protected  javax.swing.JMenuBar mMenu
          Main menu.
protected  javax.swing.JMenuItem mOpen
          Open menu item.
protected  javax.swing.JMenuItem mReset
          Reset menu item.
protected  javax.swing.JSeparator mSeparator1
          MRU list separator #1.
protected  javax.swing.JSeparator mSeparator2
          MRU list separator #2.
protected  javax.swing.JCheckBoxMenuItem mStatusVisible
          Status bar visible menu item.
protected  javax.swing.JMenu mURL
          URL submenu.
protected  javax.swing.JMenu mView
          View submenu.
 
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.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
ThumbelinaFrame()
          Construct a new Thumbelina frame with an idle Thumbelina.
ThumbelinaFrame(java.lang.String url)
          Construct a new Thumbelina frame with a Thumbelina primed with one URL.
ThumbelinaFrame(Thumbelina thumbelina)
          Construct a new Thumbelina frame with a given Thumbelina.
ThumbelinaFrame(java.net.URL url)
          Construct a new Thumbelina frame with a Thumbelina primed with one URL.
 
Method Summary
 void about()
          Display information about Thumbelina.
 void actionPerformed(java.awt.event.ActionEvent actionEvent)
          Handles events from the menu.
 void exit()
          Exits the application.
protected  java.awt.Rectangle fromString(java.lang.String value)
          Convert the given string to a valid rectangle.
 Thumbelina getThumbelina()
          Access the Thumbelina object contained in the frame.
 void googlesearch()
          Query google via user specified keywords and queue results.
 void initSize()
          Sets the frame size if no previous preference has been stored.
 void initState()
          Initialize the user preferences.
 void itemStateChanged(java.awt.event.ItemEvent event)
          Handles selections on the view state checkboxes.
static void main(java.lang.String[] args)
          Alternate mainline for Thumbelina.
 void makeMenu()
          Create the menu.
 void open()
          Opens a user specified URL.
 void propertyChange(java.beans.PropertyChangeEvent event)
          Handle a property change.
 void restoreSize()
          Restores the window size based on stored preferences.
 void saveState()
          Saves the current settings in the user preferences.
protected  java.lang.String toString(java.awt.Rectangle r)
          Converts the rectangle to a string.
 void updateMenu()
          Adjusts the menu, by inserting the current MRU list.
 void updateMRU(java.lang.String url)
          Updates the user preferences based on the most recently used list.
 void windowActivated(java.awt.event.WindowEvent event)
          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 event)
          Invoked when a window has been closed as the result of calling dispose on the window.
 void windowClosing(java.awt.event.WindowEvent event)
          Handles window closing event.
 void windowDeactivated(java.awt.event.WindowEvent event)
          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 event)
          Invoked when a window is changed from a minimized to a normal state.
 void windowIconified(java.awt.event.WindowEvent event)
          Invoked when a window is changed from a normal to a minimized state.
 void windowOpened(java.awt.event.WindowEvent event)
          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

mMenu

protected javax.swing.JMenuBar mMenu
Main menu.


mURL

protected javax.swing.JMenu mURL
URL submenu.


mOpen

protected javax.swing.JMenuItem mOpen
Open menu item.


mGoogle

protected javax.swing.JMenuItem mGoogle
Google menu item.


mSeparator1

protected javax.swing.JSeparator mSeparator1
MRU list separator #1.


mSeparator2

protected javax.swing.JSeparator mSeparator2
MRU list separator #2.


mExit

protected javax.swing.JMenuItem mExit
Exit menu item.


mView

protected javax.swing.JMenu mView
View submenu.


mStatusVisible

protected javax.swing.JCheckBoxMenuItem mStatusVisible
Status bar visible menu item.


mHistoryVisible

protected javax.swing.JCheckBoxMenuItem mHistoryVisible
History list visible menu item.


mCommand

protected javax.swing.JMenu mCommand
Vommand menu.


mReset

protected javax.swing.JMenuItem mReset
Reset menu item.


mClear

protected javax.swing.JMenuItem mClear
Clear menu item


mHelp

protected javax.swing.JMenu mHelp
Help submenu.


mAbout

protected javax.swing.JMenuItem mAbout
About menu item.

Constructor Detail

ThumbelinaFrame

public ThumbelinaFrame()
Construct a new Thumbelina frame with an idle Thumbelina.


ThumbelinaFrame

public ThumbelinaFrame(java.lang.String url)
                throws java.net.MalformedURLException
Construct a new Thumbelina frame with a Thumbelina primed with one URL.

Parameters:
url - The URL to prime the Thumbelina with.
Throws:
java.net.MalformedURLException - If the given string doesn't represent a valid url.

ThumbelinaFrame

public ThumbelinaFrame(java.net.URL url)
Construct a new Thumbelina frame with a Thumbelina primed with one URL.

Parameters:
url - The URL to prime the Thumbelina with.

ThumbelinaFrame

public ThumbelinaFrame(Thumbelina thumbelina)
Construct a new Thumbelina frame with a given Thumbelina.

Parameters:
thumbelina - The Thumbelina to encapsulate.
Method Detail

getThumbelina

public Thumbelina getThumbelina()
Access the Thumbelina object contained in the frame.

Returns:
The Thumbelina bean.

initState

public void initState()
Initialize the user preferences. Reads from the existing user preferences, or initializes values from the bean directly if they don't exist. Sets the state of the view checkboxes to match.


saveState

public void saveState()
Saves the current settings in the user preferences. By default this writes to the thumbelina subdirectory under .java in the users home directory.


initSize

public void initSize()
Sets the frame size if no previous preference has been stored. It creates a window covering all but BORDERPERCENT margins.


restoreSize

public void restoreSize()
Restores the window size based on stored preferences. If no preferences exist, it calls initSize().


toString

protected java.lang.String toString(java.awt.Rectangle r)
Converts the rectangle to a string. The rectangle is converted into a string that is of the form
 [x,y,width,height].
 

Parameters:
r - The rectangle containing the window position and size, as returned by getBounds().
Returns:
The string equivalent of the rectangle.

fromString

protected java.awt.Rectangle fromString(java.lang.String value)
                                 throws java.lang.IllegalArgumentException
Convert the given string to a valid rectangle. The string is converted to a Rectangle.

Parameters:
value - The value to parse.
Returns:
Returns the rectangle extracted from the string.
Throws:
java.lang.IllegalArgumentException - if the format does not match the form "[x,y,width,height]" with all values integers.

makeMenu

public void makeMenu()
Create the menu. Initializes the menu and adds it to the frame.


updateMenu

public void updateMenu()
Adjusts the menu, by inserting the current MRU list. Removes the old MRU (Most Recently Used) items and inserts new ones betweeen the two separators.


windowOpened

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

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

windowClosing

public void windowClosing(java.awt.event.WindowEvent event)
Handles window closing event. Performs function exitApplication().

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

windowClosed

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

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

windowIconified

public void windowIconified(java.awt.event.WindowEvent event)
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. Not used.

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

windowDeiconified

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

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

windowActivated

public void windowActivated(java.awt.event.WindowEvent event)
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. Not used.

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

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent event)
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. Not used.

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

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent actionEvent)
Handles events from the menu. Based on the action of the event, executes the necessary subroutine.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
actionEvent - The event describing the user action.

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent event)
Handles selections on the view state checkboxes.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Parameters:
event - The event describing the checkbox affected.

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
Handle a property change.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
event - The property old and new values.

updateMRU

public void updateMRU(java.lang.String url)
Updates the user preferences based on the most recently used list.

Parameters:
url - The URL that is to be placed at the top of the MRU list.

open

public void open()
Opens a user specified URL.


googlesearch

public void googlesearch()
Query google via user specified keywords and queue results. Asks the user for keywords, and then submits them as input to the usual google form:
 
 
 • Advanced Search
 • Preferences
 • Language Tools
Search:
Creates a query of the form:
 http://www.google.ca/search?hl=en&ie=UTF-8&oe=UTF-8&q=thumbs&btnG=Google+Search&meta=
 


about

public void about()
Display information about Thumbelina.


exit

public void exit()
Exits the application. Saves user preferences before exiting.


main

public static void main(java.lang.String[] args)
Alternate mainline for Thumbelina. Similar code exists in the Thumbelina class, but this version doesn't worry about java version.

Parameters:
args - The command line arguments. Optionally, arg[0] can be the URL to preload the Thumeblina bean with.