Class ThumbelinaFrame
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- org.htmlparser.lexerapplications.thumbelina.ThumbelinaFrame
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.event.ItemListener
,java.awt.event.WindowListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
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/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.JMenuItem
mAbout
About menu item.protected javax.swing.JMenuItem
mClear
Clear menu itemprotected 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 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
-
-
Constructor Summary
Constructors Constructor Description 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(java.net.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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
-
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, 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, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
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 butBORDERPERCENT
margins.
-
restoreSize
public void restoreSize()
Restores the window size based on stored preferences. If no preferences exist, it callsinitSize()
.
-
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 bygetBounds()
.- 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 interfacejava.awt.event.WindowListener
- Parameters:
event
- The window event.
-
windowClosing
public void windowClosing(java.awt.event.WindowEvent event)
Handles window closing event. Performs functionexitApplication()
.- Specified by:
windowClosing
in interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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 interfacejava.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: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.
-
-