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:
  • Field Details

    • mURL

      protected JMenu mURL
      URL submenu.
    • mOpen

      protected JMenuItem mOpen
      Open menu item.
    • mGoogle

      protected JMenuItem mGoogle
      Google menu item.
    • mSeparator1

      protected JSeparator mSeparator1
      MRU list separator #1.
    • mSeparator2

      protected JSeparator mSeparator2
      MRU list separator #2.
    • mExit

      protected JMenuItem mExit
      Exit menu item.
    • mView

      protected JMenu mView
      View submenu.
    • mStatusVisible

      protected JCheckBoxMenuItem mStatusVisible
      Status bar visible menu item.
    • mHistoryVisible

      protected JCheckBoxMenuItem mHistoryVisible
      History list visible menu item.
    • mCommand

      protected JMenu mCommand
      Vommand menu.
    • mReset

      protected JMenuItem mReset
      Reset menu item.
    • mClear

      protected JMenuItem mClear
      Clear menu item
    • mHelp

      protected JMenu mHelp
      Help submenu.
    • mAbout

      protected JMenuItem mAbout
      About menu item.
  • 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.
      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 Details

    • 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 but BORDERPERCENT margins.
    • restoreSize

      public void restoreSize()
      Restores the window size based on stored preferences. If no preferences exist, it calls initSize().
    • 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.
    • 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.
      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

      public void windowOpened(WindowEvent event)
      Invoked the first time a window is made visible. Not used.
      Specified by:
      windowOpened in interface WindowListener
      Parameters:
      event - The window event.
    • windowClosing

      public void windowClosing(WindowEvent event)
      Handles window closing event. Performs function exitApplication().
      Specified by:
      windowClosing in interface WindowListener
      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.
      Specified by:
      windowClosed in interface WindowListener
      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.
      Specified by:
      windowIconified in interface WindowListener
      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.
      Specified by:
      windowDeiconified in interface WindowListener
      Parameters:
      event - The window event.
    • 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.
      Specified by:
      windowActivated in interface WindowListener
      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.
      Specified by:
      windowDeactivated in interface WindowListener
      Parameters:
      event - The window event.
    • actionPerformed

      public void actionPerformed(ActionEvent actionEvent)
      Handles events from the menu. Based on the action of the event, executes the necessary subroutine.
      Specified by:
      actionPerformed in interface ActionListener
      Parameters:
      actionEvent - The event describing the user action.
    • itemStateChanged

      public void itemStateChanged(ItemEvent event)
      Handles selections on the view state checkboxes.
      Specified by:
      itemStateChanged in interface ItemListener
      Parameters:
      event - The event describing the checkbox affected.
    • propertyChange

      public void propertyChange(PropertyChangeEvent event)
      Handle a property change.
      Specified by:
      propertyChange in interface PropertyChangeListener
      Parameters:
      event - The property old and new values.
    • 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.
    • 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:
       
       
       • invalid input: '<'a href=/advanced_search?hl=en>Advanced Search
       • invalid input: '<'a href=/preferences?hl=en>Preferences
       • invalid input: '<'a href=/language_tools?hl=en>Language Tools
      Search:
      Creates a query of the 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

      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.