org.jscience.net
Class JWebBrowser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.jscience.swing.JMainFrame
                          extended by org.jscience.net.JWebBrowser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class JWebBrowser
extends JMainFrame

A very plain Web Browser with minimal functionality; but still cool.

Unfortunately, the caching doesn't work for the main display, yet.

Check out the multiple right-mouse-click options. :-)

At this point, the implementation is completely transient, i.e. nothing is written to disk other than what you explicitly save; so your homepage settings, cache and favorites are reset when you restart the browser.

No support for cookies (that may be the good news ;-), JavaScript, forms, etc. at this point.

There are several other limitations as this implementation is just based on the javax.swing.JEditorPane at this point. However, there are also some features that your average browser does NOT have, such as the display of the server information in the view menu.

To use a customized HTTP Agent when connecting to a web-server, you need to set the system property http.agent accordingly before using this class.

See Also:
JSpider, JEditorPane, 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.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class org.jscience.swing.JMainFrame
hasStatusBar, statusBar, statusLabel, verbose
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JWebBrowser()
          initializes with a blank page
JWebBrowser(java.lang.String urlHomeSpec)
           
JWebBrowser(java.net.URL homeURL)
           
JWebBrowser(URLCache homeURLCache)
           
 
Method Summary
 void back()
          implements the action for the browser's back button
protected  void download(java.net.URL url)
          downloads the given URL with a JDownloader after the GUI asked for the file name
 void forward()
          implements the action for the browser's forward button
 java.util.Map getCache()
          returns a map of URL objects to URLCache objects
 java.net.URL getCurrentURL()
          returns the page currently displayed
 java.net.URL[] getFavorites()
          returns the list of favorites
 java.net.URL getHome()
          returns the page currently set as the home page
static void main(java.lang.String[] args)
          starts the JWebBrowser and makes it visible; you can optionally specify a URL as parameter
 void refresh()
          implements the action for the browser's refresh button
 void setHome(java.net.URL homeURL)
           
 void setPage(java.net.URL url)
          sets the current page for the browser's main window; the call may be ignored if the browser is currently busy loading another page (preventing multiple loads)
 void stopLoading()
          implements the action for the browser's stop button
protected  void validateLinks(URLCache uc)
          shows a window with the broken links in this page
protected  void viewHTML()
          shows a window with the HTML code
protected  void viewImageList()
          shows a window with the embedded images from the current page
protected  void viewLinkList()
          shows a window with the links from the given page (as probably not all links are accessible via hyperlink from the JEditorPane)
protected  void viewTextOnly()
          shows a window with only the text stripped from the HTML
 
Methods inherited from class org.jscience.swing.JMainFrame
complain, getStatusText, hasStatusBar, say, updateStatusText
 
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, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, 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
 

Constructor Detail

JWebBrowser

public JWebBrowser()
initializes with a blank page


JWebBrowser

public JWebBrowser(java.lang.String urlHomeSpec)
            throws java.io.IOException
Throws:
java.io.IOException

JWebBrowser

public JWebBrowser(java.net.URL homeURL)

JWebBrowser

public JWebBrowser(URLCache homeURLCache)
Method Detail

viewTextOnly

protected void viewTextOnly()
shows a window with only the text stripped from the HTML


viewHTML

protected void viewHTML()
shows a window with the HTML code


viewImageList

protected void viewImageList()
shows a window with the embedded images from the current page


viewLinkList

protected void viewLinkList()
shows a window with the links from the given page (as probably not all links are accessible via hyperlink from the JEditorPane)


validateLinks

protected void validateLinks(URLCache uc)
shows a window with the broken links in this page


refresh

public void refresh()
implements the action for the browser's refresh button


setPage

public void setPage(java.net.URL url)
sets the current page for the browser's main window; the call may be ignored if the browser is currently busy loading another page (preventing multiple loads)


stopLoading

public void stopLoading()
implements the action for the browser's stop button


download

protected void download(java.net.URL url)
downloads the given URL with a JDownloader after the GUI asked for the file name

See Also:
JDownloader

back

public void back()
implements the action for the browser's back button


forward

public void forward()
implements the action for the browser's forward button


getHome

public java.net.URL getHome()
returns the page currently set as the home page


getFavorites

public java.net.URL[] getFavorites()
returns the list of favorites


setHome

public void setHome(java.net.URL homeURL)

getCurrentURL

public java.net.URL getCurrentURL()
returns the page currently displayed


getCache

public java.util.Map getCache()
returns a map of URL objects to URLCache objects


main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
starts the JWebBrowser and makes it visible; you can optionally specify a URL as parameter

Throws:
java.lang.Exception