HTML Parser Home Page

org.htmlparser.lexerapplications.thumbelina
Class ThumbelinaFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.htmlparser.lexerapplications.thumbelina.ThumbelinaFrame
All Implemented Interfaces:
ActionListener, ItemListener, WindowListener, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class ThumbelinaFrame
extends JFrame
implements WindowListener, ActionListener, ItemListener, 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/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JMenuItem mAbout
          About menu item.
protected  JMenuItem mClear
          Clear menu item
protected  JMenu mCommand
          Vommand menu.
protected  JMenuItem mExit
          Exit menu item.
protected  JMenuItem mGoogle
          Google menu item.
protected  JMenu mHelp
          Help submenu.
protected  JCheckBoxMenuItem mHistoryVisible
          History list visible menu item.
protected  JMenuBar mMenu
          Main menu.
protected  JMenuItem mOpen
          Open menu item.
protected  JMenuItem mReset
          Reset menu item.
protected  JSeparator mSeparator1
          MRU list separator #1.
protected  JSeparator mSeparator2
          MRU list separator #2.
protected  JCheckBoxMenuItem mStatusVisible
          Status bar visible menu item.
protected  JMenu mURL
          URL submenu.
protected  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(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(URL url)
          Construct a new Thumbelina frame with a Thumbelina primed with one URL.
 
Method Summary
 void about()
          Display information about Thumbelina.
 void actionPerformed(ActionEvent actionEvent)
          Handles events from the menu.
 void exit()
          Exits the application.
protected  Rectangle fromString(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(ItemEvent event)
          Handles selections on the view state checkboxes.
static void main(String[] args)
          Alternate mainline for Thumbelina.
 void makeMenu()
          Create the menu.
 void open()
          Opens a user specified URL.
 void propertyChange(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  String toString(Rectangle r)
          Converts the rectangle to a string.
 void updateMenu()
          Adjusts the menu, by inserting the current MRU list.
 void updateMRU(String url)
          Updates the user preferences based on the most recently used list.
 void windowActivated(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(WindowEvent event)
          Invoked when a window has been closed as the result of calling dispose on the window.
 void windowClosing(WindowEvent event)
          Handles window closing event.
 void windowDeactivated(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(WindowEvent event)
          Invoked when a window is changed from a minimized to a normal state.
 void windowIconified(WindowEvent event)
          Invoked when a window is changed from a normal to a minimized state.
 void windowOpened(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, setIconImage, 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, 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, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, 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, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, 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, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, 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, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, 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 JMenuBar mMenu
Main menu.


mURL

protected JMenu mURL
URL submenu.


mOpen

protected JMenuItem mOpen
Open menu item.


mGoogle

protected JMenuItem mGoogle
Google menu item.


mSeparator1

protected JSeparator mSeparator1
MRU list separator #1.


mSeparator2

protected JSeparator mSeparator2
MRU list separator #2.


mExit

protected JMenuItem mExit
Exit menu item.


mView

protected JMenu mView
View submenu.


mStatusVisible

protected JCheckBoxMenuItem mStatusVisible
Status bar visible menu item.


mHistoryVisible

protected JCheckBoxMenuItem mHistoryVisible
History list visible menu item.


mCommand

protected JMenu mCommand
Vommand menu.


mReset

protected JMenuItem mReset
Reset menu item.


mClear

protected JMenuItem mClear
Clear menu item


mHelp

protected JMenu mHelp
Help submenu.


mAbout

protected JMenuItem mAbout
About menu item.

Constructor Detail

ThumbelinaFrame

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


ThumbelinaFrame

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

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

ThumbelinaFrame

public ThumbelinaFrame(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 String toString(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 Rectangle fromString(String value)
                        throws 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:
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(WindowEvent event)
Invoked the first time a window is made visible. Not used.

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

windowClosing

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

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

windowClosed

public void windowClosed(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 WindowListener
Parameters:
event - The window event.

windowIconified

public void windowIconified(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 WindowListener
Parameters:
event - The window event.

windowDeiconified

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

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

windowActivated

public void windowActivated(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 WindowListener
Parameters:
event - The window event.

windowDeactivated

public void windowDeactivated(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 WindowListener
Parameters:
event - The window event.

actionPerformed

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

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

itemStateChanged

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

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

propertyChange

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

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

updateMRU

public void updateMRU(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(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.

© 2006 Derrick Oswald
Sep 17, 2006

HTML Parser is an open source library released under Common Public License. SourceForge.net