org.htmlparser.lexerapplications.thumbelina

Class ThumbelinaFrame

Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, WindowListener

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 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.

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

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
updateMRU(String url)
Updates the user preferences based on the most recently used list.
void
updateMenu()
Adjusts the menu, by inserting the current MRU 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.

Field Details

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 Details

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.

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 Details

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)
            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.

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.

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.

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.

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