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.PropertyChangeListenerEncapsulate 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.JMenuItemmAboutAbout menu item.protected javax.swing.JMenuItemmClearClear menu itemprotected javax.swing.JMenumCommandVommand menu.protected javax.swing.JMenuItemmExitExit menu item.protected javax.swing.JMenuItemmGoogleGoogle menu item.protected javax.swing.JMenumHelpHelp submenu.protected javax.swing.JCheckBoxMenuItemmHistoryVisibleHistory list visible menu item.protected javax.swing.JMenuBarmMenuMain menu.protected javax.swing.JMenuItemmOpenOpen menu item.protected javax.swing.JMenuItemmResetReset menu item.protected javax.swing.JSeparatormSeparator1MRU list separator #1.protected javax.swing.JSeparatormSeparator2MRU list separator #2.protected javax.swing.JCheckBoxMenuItemmStatusVisibleStatus bar visible menu item.protected javax.swing.JMenumURLURL submenu.protected javax.swing.JMenumViewView 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 voidabout()Display information about Thumbelina.voidactionPerformed(java.awt.event.ActionEvent actionEvent)Handles events from the menu.voidexit()Exits the application.protected java.awt.RectanglefromString(java.lang.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(java.awt.event.ItemEvent event)Handles selections on the view state checkboxes.static voidmain(java.lang.String[] args)Alternate mainline for Thumbelina.voidmakeMenu()Create the menu.voidopen()Opens a user specified URL.voidpropertyChange(java.beans.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 java.lang.StringtoString(java.awt.Rectangle r)Converts the rectangle to a string.voidupdateMenu()Adjusts the menu, by inserting the current MRU list.voidupdateMRU(java.lang.String url)Updates the user preferences based on the most recently used list.voidwindowActivated(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.voidwindowClosed(java.awt.event.WindowEvent event)Invoked when a window has been closed as the result of calling dispose on the window.voidwindowClosing(java.awt.event.WindowEvent event)Handles window closing event.voidwindowDeactivated(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.voidwindowDeiconified(java.awt.event.WindowEvent event)Invoked when a window is changed from a minimized to a normal state.voidwindowIconified(java.awt.event.WindowEvent event)Invoked when a window is changed from a normal to a minimized state.voidwindowOpened(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.MalformedURLExceptionConstruct 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 butBORDERPERCENTmargins.
-
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.IllegalArgumentExceptionConvert 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:
windowOpenedin 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:
windowClosingin 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:
windowClosedin 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:
windowIconifiedin 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:
windowDeiconifiedin 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:
windowActivatedin 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:
windowDeactivatedin 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:
actionPerformedin 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:
itemStateChangedin 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:
propertyChangein 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:
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(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.
-
-