Class HTMLViewer

  • All Implemented Interfaces:
    java.awt.event.WindowFocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.HyperlinkListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants, StatusHandler
    Direct Known Subclasses:
    DocViewer, WelcomeWindow

    public class HTMLViewer
    extends TableauFrame
    implements java.awt.print.Printable, javax.swing.event.HyperlinkListener
    This class is a toplevel frame that can view HTML documents. This class supports hyperlinks, and has a particular feature to force hyperlinks to be opened in a browser. To do that, specify a hyperlink by giving a fragment (also called a reference) as "in_browser". For example, the following URL will be opened in a browser:
     <a href="http://ptolemy.eecs.berkeley.edu#in_browser">
     
    If the URL is about:copyright, then the copyrights will be generated by GenerateCopyrights.generateHTML(Configuration)

    If the URL is about:configuration, then the Ptolemy II configuration will be expanded by and the MoML of the configuration will be returned. This is a good way to test the configuration.

    If the URL starts with ptdoc:, then the Ptolemy documentation is opened. For example

     < a href="ptdoc:ptolemy.actor.gui.HTMLViewer">HTMLViewer</a>
     
    will open the Ptolemy documentation for this class. For details see GetDocumentationAction.

    If the URL starts with $CLASSPATH then the classpath is searched.

    This class supports printing and will save the text to a .html file. The url that is viewed can be changed by calling the setPage method.

    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Steve Neuendorffer and Edward A. Lee
    See Also:
    Serialized Form
    Pt.AcceptedRating:
    Red (johnr)
    Pt.ProposedRating:
    Yellow (eal)
    • 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, java.awt.Window.Type
      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      HTMLViewer()
      Construct a blank viewer.
      HTMLViewer​(Tableau tableau)
      Construct an empty top-level frame managed by the specified tableau and the default status bar.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _addMainPane()
      Add the main content pane (for HTML).
      protected void _setScrollerSize​(int width, int height)
      Set the scroller size.
      protected void _writeFile​(java.io.File file)
      Write the model to the specified file.
      static void getDocumentation​(Configuration configuration, java.lang.String className, Effigy context)
      Give a ptdoc: path, open the PtDoc viewer.
      java.net.URL getPage()
      Get the page displayed by this viewer.
      void hyperlinkUpdate​(javax.swing.event.HyperlinkEvent event)
      React to a hyperlink being clicked on in the rendered HTML.
      int print​(java.awt.Graphics graphics, java.awt.print.PageFormat format, int index)
      Print the documentation to a printer.
      void setBase​(java.net.URL base)
      Set the base URL for relative accesses.
      void setPage​(java.net.URL page)
      Set the page displayed by this viewer to be that given by the specified URL.
      void setSize​(int width, int height)
      Override the base class to set the size of the scroll pane.
      void setText​(java.lang.String text)
      Set the text displayed by this viewer.
      • 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, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, 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, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setType, setVisible, 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 Detail

      • pane

        public javax.swing.JEditorPane pane
        The text pane.
      • _scroller

        protected javax.swing.JScrollPane _scroller
        The main scroll pane.
    • Constructor Detail

      • HTMLViewer

        public HTMLViewer()
        Construct a blank viewer.
      • HTMLViewer

        public HTMLViewer​(Tableau tableau)
        Construct an empty top-level frame managed by the specified tableau and the default status bar. After constructing this, it is necessary to call setVisible(true) to make the frame appear. It may also be desirable to call centerOnScreen().
        Parameters:
        tableau - The managing tableau.
    • Method Detail

      • getDocumentation

        public static void getDocumentation​(Configuration configuration,
                                            java.lang.String className,
                                            Effigy context)
                                     throws IllegalActionException,
                                            java.lang.ClassNotFoundException,
                                            java.lang.NoSuchMethodException,
                                            java.lang.IllegalAccessException,
                                            java.lang.reflect.InvocationTargetException
        Give a ptdoc: path, open the PtDoc viewer.
        Parameters:
        configuration - The Configuration.
        className - The dot separated classname, such as ptolemy.kernel.util.NamedObj.
        context - The controlling Effigy.
        Throws:
        IllegalActionException - If thrown while searching for the _getDocumentationActionClassName attribute in the Configuration.
        java.lang.ClassNotFoundException - If the class named by the _getDocumentationActionClassName attribute or ptolemy.vergil.basic.GetDocumentationAction is not found.
        java.lang.NoSuchMethodException - If the class does not have a getDocumentation(Configuration, String, Effigy) method.
        java.lang.IllegalAccessException - If thrown while calling the getDocumentation() method.
        java.lang.reflect.InvocationTargetException - If thrown while calling the getDocumentation() method.
      • getPage

        public java.net.URL getPage()
        Get the page displayed by this viewer.
        Returns:
        The page displayed by this viewer.
        See Also:
        setPage(URL)
      • hyperlinkUpdate

        public void hyperlinkUpdate​(javax.swing.event.HyperlinkEvent event)
        React to a hyperlink being clicked on in the rendered HTML. This method opens the hyperlink URL in a new window, using the configuration. This means that hyperlinks can reference any file that the configuration can open, including MoML files. It is assumed this is called in the AWT event thread.
        Specified by:
        hyperlinkUpdate in interface javax.swing.event.HyperlinkListener
        Parameters:
        event - The hyperlink event.
      • print

        public int print​(java.awt.Graphics graphics,
                         java.awt.print.PageFormat format,
                         int index)
                  throws java.awt.print.PrinterException
        Print the documentation to a printer. The documentation will be scaled to fit the width of the paper, growing to as many pages as is necessary.
        Specified by:
        print in interface java.awt.print.Printable
        Parameters:
        graphics - The context into which the page is drawn.
        format - The size and orientation of the page being drawn.
        index - The zero based index of the page to be drawn.
        Returns:
        PAGE_EXISTS if the page is rendered successfully, or NO_SUCH_PAGE if pageIndex specifies a non-existent page.
        Throws:
        java.awt.print.PrinterException - If the print job is terminated.
      • setBase

        public void setBase​(java.net.URL base)
        Set the base URL for relative accesses.
        Parameters:
        base - The base for relative hyperlink references.
      • setPage

        public void setPage​(java.net.URL page)
                     throws java.io.IOException
        Set the page displayed by this viewer to be that given by the specified URL.
        Parameters:
        page - The location of the documentation.
        Throws:
        java.io.IOException - If the page cannot be read.
        See Also:
        getPage()
      • setSize

        public void setSize​(int width,
                            int height)
        Override the base class to set the size of the scroll pane. Regrettably, this is necessary because swing packers ignore the specified size of a container. If this is not called in the AWT event thread, then execution is deferred and executed in that thread.
        Overrides:
        setSize in class java.awt.Window
        Parameters:
        width - The width of the scroll pane.
        height - The height of the scroll pane.
      • setText

        public void setText​(java.lang.String text)
        Set the text displayed by this viewer.
        Parameters:
        text - The text to display.
      • _addMainPane

        protected void _addMainPane()
        Add the main content pane (for HTML).
      • _setScrollerSize

        protected void _setScrollerSize​(int width,
                                        int height)
        Set the scroller size.
        Parameters:
        width - The width.
        height - The width.
      • _writeFile

        protected void _writeFile​(java.io.File file)
                           throws java.io.IOException
        Write the model to the specified file. Note that this does not defer to the effigy.
        Overrides:
        _writeFile in class TableauFrame
        Parameters:
        file - The file to write to.
        Throws:
        java.io.IOException - If the write fails.