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:
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:
-
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, Window.Type
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JMenuItem
About menu item.protected JMenuItem
Clear menu itemprotected JMenu
Vommand menu.protected JMenuItem
Exit menu item.protected JMenuItem
Google menu item.protected JMenu
Help submenu.protected JCheckBoxMenuItem
History list visible menu item.protected JMenuBar
Main menu.protected JMenuItem
Open menu item.protected JMenuItem
Reset menu item.protected JSeparator
MRU list separator #1.protected JSeparator
MRU list separator #2.protected JCheckBoxMenuItem
Status bar visible menu item.protected JMenu
URL submenu.protected JMenu
View submenu.Fields inherited from class javax.swing.JFrame
accessibleContext, 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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct 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
Modifier and TypeMethodDescriptionvoid
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.Access the Thumbelina object contained in the frame.void
Query google via user specified keywords and queue results.void
initSize()
Sets the frame size if no previous preference has been stored.void
Initialize the user preferences.void
itemStateChanged
(ItemEvent event) Handles selections on the view state checkboxes.static void
Alternate mainline for Thumbelina.void
makeMenu()
Create the menu.void
open()
Opens a user specified URL.void
Handle a property change.void
Restores the window size based on stored preferences.void
Saves the current settings in the user preferences.protected String
Converts the rectangle to a string.void
Adjusts the menu, by inserting the current MRU list.void
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, 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
mMenu
Main menu. -
mURL
URL submenu. -
mOpen
Open menu item. -
mGoogle
Google menu item. -
mSeparator1
MRU list separator #1. -
mSeparator2
MRU list separator #2. -
mExit
Exit menu item. -
mView
View submenu. -
mStatusVisible
Status bar visible menu item. -
mHistoryVisible
History list visible menu item. -
mCommand
Vommand menu. -
mReset
Reset menu item. -
mClear
Clear menu item -
mHelp
Help submenu. -
mAbout
About menu item.
-
-
Constructor Details
-
ThumbelinaFrame
public ThumbelinaFrame()Construct a new Thumbelina frame with an idle Thumbelina. -
ThumbelinaFrame
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
Construct a new Thumbelina frame with a Thumbelina primed with one URL.- Parameters:
url
- The URL to prime the Thumbelina with.
-
ThumbelinaFrame
Construct a new Thumbelina frame with a given Thumbelina.- Parameters:
thumbelina
- The Thumbelina to encapsulate.
-
-
Method Details
-
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
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
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
Invoked the first time a window is made visible. Not used.- Specified by:
windowOpened
in interfaceWindowListener
- Parameters:
event
- The window event.
-
windowClosing
Handles window closing event. Performs functionexitApplication()
.- Specified by:
windowClosing
in interfaceWindowListener
- Parameters:
event
- The window event.
-
windowClosed
Invoked when a window has been closed as the result of calling dispose on the window. Not used.- Specified by:
windowClosed
in interfaceWindowListener
- Parameters:
event
- The window event.
-
windowIconified
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 interfaceWindowListener
- Parameters:
event
- The window event.
-
windowDeiconified
Invoked when a window is changed from a minimized to a normal state. Not used.- Specified by:
windowDeiconified
in interfaceWindowListener
- Parameters:
event
- The window event.
-
windowActivated
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 interfaceWindowListener
- Parameters:
event
- The window event.
-
windowDeactivated
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 interfaceWindowListener
- Parameters:
event
- The window event.
-
actionPerformed
Handles events from the menu. Based on the action of the event, executes the necessary subroutine.- Specified by:
actionPerformed
in interfaceActionListener
- Parameters:
actionEvent
- The event describing the user action.
-
itemStateChanged
Handles selections on the view state checkboxes.- Specified by:
itemStateChanged
in interfaceItemListener
- Parameters:
event
- The event describing the checkbox affected.
-
propertyChange
Handle a property change.- Specified by:
propertyChange
in interfacePropertyChangeListener
- Parameters:
event
- The property old and new values.
-
updateMRU
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=eninvalid input: '&ie'=UTF-8invalid input: '&oe'=UTF-8invalid input: '&q'=thumbsinvalid input: '&btnG'=Google+Searchinvalid input: '&meta'=
-
about
public void about()Display information about Thumbelina. -
exit
public void exit()Exits the application. Saves user preferences before exiting. -
main
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.
-