org.htmlparser.lexerapplications.thumbelina

Class ThumbelinaFrame

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.
Field Summary
protected JMenuItemmAbout
About menu item.
protected JMenuItemmClear
Clear menu item
protected JMenumCommand
Vommand menu.
protected JMenuItemmExit
Exit menu item.
protected JMenuItemmGoogle
Google menu item.
protected JMenumHelp
Help submenu.
protected JCheckBoxMenuItemmHistoryVisible
History list visible menu item.
protected JMenuBarmMenu
Main menu.
protected JMenuItemmOpen
Open menu item.
protected JMenuItemmReset
Reset menu item.
protected JSeparatormSeparator1
MRU list separator #1.
protected JSeparatormSeparator2
MRU list separator #2.
protected JCheckBoxMenuItemmStatusVisible
Status bar visible menu item.
protected JMenumURL
URL submenu.
protected JMenumView
View submenu.
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(URL 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.
Method Summary
voidabout()
Display information about Thumbelina.
voidactionPerformed(ActionEvent actionEvent)
Handles events from the menu.
voidexit()
Exits the application.
protected RectanglefromString(String value)
Convert the given string to a valid rectangle.
ThumbelinagetThumbelina()
Access the Thumbelina object contained in the frame.
voidgooglesearch()
Query google via user specified keywords and queue results.
voidinitSize()
Sets the frame size if no previous preference has been stored.
voidinitState()
Initialize the user preferences.
voiditemStateChanged(ItemEvent event)
Handles selections on the view state checkboxes.
static voidmain(String[] args)
Alternate mainline for Thumbelina.
voidmakeMenu()
Create the menu.
voidopen()
Opens a user specified URL.
voidpropertyChange(PropertyChangeEvent event)
Handle a property change.
voidrestoreSize()
Restores the window size based on stored preferences.
voidsaveState()
Saves the current settings in the user preferences.
protected StringtoString(Rectangle r)
Converts the rectangle to a string.
voidupdateMenu()
Adjusts the menu, by inserting the current MRU list.
voidupdateMRU(String url)
Updates the user preferences based on the most recently used list.
voidwindowActivated(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.
voidwindowClosed(WindowEvent event)
Invoked when a window has been closed as the result of calling dispose on the window.
voidwindowClosing(WindowEvent event)
Handles window closing event.
voidwindowDeactivated(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.
voidwindowDeiconified(WindowEvent event)
Invoked when a window is changed from a minimized to a normal state.
voidwindowIconified(WindowEvent event)
Invoked when a window is changed from a normal to a minimized state.
voidwindowOpened(WindowEvent event)
Invoked the first time a window is made visible.

Field Detail

mAbout

protected JMenuItem mAbout
About menu item.

mClear

protected JMenuItem mClear
Clear menu item

mCommand

protected JMenu mCommand
Vommand menu.

mExit

protected JMenuItem mExit
Exit menu item.

mGoogle

protected JMenuItem mGoogle
Google menu item.

mHelp

protected JMenu mHelp
Help submenu.

mHistoryVisible

protected JCheckBoxMenuItem mHistoryVisible
History list visible menu item.

mMenu

protected JMenuBar mMenu
Main menu.

mOpen

protected JMenuItem mOpen
Open menu item.

mReset

protected JMenuItem mReset
Reset menu item.

mSeparator1

protected JSeparator mSeparator1
MRU list separator #1.

mSeparator2

protected JSeparator mSeparator2
MRU list separator #2.

mStatusVisible

protected JCheckBoxMenuItem mStatusVisible
Status bar visible menu item.

mURL

protected JMenu mURL
URL submenu.

mView

protected JMenu mView
View submenu.

Constructor Detail

ThumbelinaFrame

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

ThumbelinaFrame

public ThumbelinaFrame(String url)
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

about

public void about()
Display information about Thumbelina.

actionPerformed

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

Parameters: actionEvent The event describing the user action.

exit

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

fromString

protected Rectangle fromString(String value)
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.

getThumbelina

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

Returns: The Thumbelina bean.

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=
 

initSize

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

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.

itemStateChanged

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

Parameters: event The event describing the checkbox affected.

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.

makeMenu

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

open

public void open()
Opens a user specified URL.

propertyChange

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

Parameters: event The property old and new values.

restoreSize

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

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.

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.

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.

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.

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.

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.

Parameters: event The window event.

windowClosing

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

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.

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.

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.

Parameters: event The window event.

windowOpened

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

Parameters: event The window event.

HTML Parser is an open source library released under LGPL. SourceForge.net