Package ptolemy.actor.gui
Class HTMLViewer
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- ptolemy.gui.Top
-
- ptolemy.actor.gui.TableauFrame
-
- ptolemy.actor.gui.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 isabout:copyright
, then the copyrights will be generated byGenerateCopyrights.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 seeGetDocumentationAction
.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 ptolemy.actor.gui.TableauFrame
TableauFrame.MenuItemListener
-
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.JScrollPane
_scroller
The main scroll pane.javax.swing.JEditorPane
pane
The text pane.-
Fields inherited from class ptolemy.actor.gui.TableauFrame
_initialSaveAsFileName, _topPack, _viewMenu, aboutFile, helpFile
-
Fields inherited from class ptolemy.gui.Top
_CANCELED, _debugClosing, _directory, _DISCARDED, _exitResult, _EXPORT_MENU_INDEX, _FAILED, _fileFilter, _fileMenu, _fileMenuItems, _filenameFilter, _helpMenu, _helpMenuItems, _IMPORT_MENU_INDEX, _menubar, _NEW_MENU_INDEX, _SAVED, _statusBar, MAXIMUM_STATUS_MESSAGE_TIME
-
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 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 ptolemy.actor.gui.TableauFrame
_about, _addMenus, _close, _confirmFile, _exit, _getDefaultIconImage, _getName, _help, _read, _save, _saveAs, _saveAs, _saveAsHelper, dispose, getAlternateTopPack, getConfiguration, getDirectory, getEffigy, getEffigy, getTableau, isModified, pack, printPDF, setModified, setTableau
-
Methods inherited from class ptolemy.gui.Top
_clear, _createFileMenuItems, _getCurrentDirectory, _open, _openURL, _populateHistory, _print, _printCrossPlatform, _printNative, _printPDF, _queryForSave, _saveAsFileDialog, _saveAsFileDialogComponent, _saveAsJFileChooserComponent, _updateHistory, about, centerOnScreen, close, deferIfNecessary, exit, getCentering, getContentSize, hideMenuBar, isDisposed, isMenuPopulated, report, report, report, setBackground, setCentering, setDirectory, show, status, windowGainedFocus, windowLostFocus
-
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
-
-
-
-
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 interfacejavax.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 interfacejava.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 classjava.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 classTableauFrame
- Parameters:
file
- The file to write to.- Throws:
java.io.IOException
- If the write fails.
-
-