ptolemy.actor.gui
Class HTMLViewerTableau

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.kernel.CompositeEntity
                      extended by ptolemy.actor.gui.Tableau
                          extended by ptolemy.actor.gui.HTMLViewerTableau
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
Direct Known Subclasses:
WelcomeWindowTableau

public class HTMLViewerTableau
extends Tableau

A tableau representing a rendered HTML view in a toplevel window. The URL that is viewed is given by the url parameter, and can be either an absolute URL, a system fileName, or a resource that can be loaded relative to the classpath. For more information about how the URL is specified, see MoMLApplication.specToURL().

The constructor of this class creates the window. The text window itself is an instance of HTMLViewer, and can be accessed using the getFrame() method. As with other tableaux, this is an entity that is contained by an effigy of a model. There can be any number of instances of this class in an effigy.

Since:
Ptolemy II 1.0
Version:
$Id: HTMLViewerTableau.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Steve Neuendorffer and Edward A. Lee
See Also:
Effigy, HTMLViewer, ConfigurationApplication.specToURL(String), Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Yellow (eal)

Nested Class Summary
static class HTMLViewerTableau.Factory
          A factory that creates HTML viewer tableaux for Ptolemy models.
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
 StringAttribute url
          The URL to display.
 
Fields inherited from class ptolemy.actor.gui.Tableau
size
 
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Constructor Summary
HTMLViewerTableau(Effigy container, java.lang.String name)
          Construct a new tableau for the model represented by the given effigy.
 
Method Summary
static java.net.URL _absolutePTIIURLToJarURL(java.lang.String urlName)
          If possible convert an absolute URL that refers to a file inside the $PTII tree to a jar URL.
private static java.net.URL _entryResourceWithoutFragment(java.lang.String urlString)
           
 void attributeChanged(Attribute attribute)
          If the argument is the url parameter, then open the specified URL and display its contents.
 
Methods inherited from class ptolemy.actor.gui.Tableau
clone, close, getFrame, getTitle, isEditable, isMaster, setContainer, setEditable, setFrame, setMaster, setTitle, show
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, connect, connect, containedObjectsIterator, deepEntityList, deepGetEntities, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, isOpaque, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, newRelation, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, statistics, uniqueName
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_addPort, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_removePort, connectedPortList, connectedPorts, connectionsChanged, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, attributeTypeChanged, clone, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getDisplayName, getFullName, getName, getName
 

Field Detail

url

public StringAttribute url
The URL to display.

Constructor Detail

HTMLViewerTableau

public HTMLViewerTableau(Effigy container,
                         java.lang.String name)
                  throws IllegalActionException,
                         NameDuplicationException
Construct a new tableau for the model represented by the given effigy. This creates an instance of HTMLViewer. It does not make the frame visible. To do that, call show().

Parameters:
container - The container.
name - The name.
Throws:
IllegalActionException - If the container does not accept this entity (this should not occur).
NameDuplicationException - If the name coincides with an attribute already in the container.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
If the argument is the url parameter, then open the specified URL and display its contents.

Overrides:
attributeChanged in class Tableau
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the URL cannot be opened, or if the base class throws it.

_absolutePTIIURLToJarURL

public static java.net.URL _absolutePTIIURLToJarURL(java.lang.String urlName)
                                             throws java.net.URISyntaxException,
                                                    java.net.MalformedURLException
If possible convert an absolute URL that refers to a file inside the $PTII tree to a jar URL.

For example, if doc/codeDoc.jar is in the classpath, but the contents of codeDoc/ do not exist as files, then calling this method with: file:/C:/ptII/doc/codeDoc/ptolemy/util/package-summary.html#package_description] will return: jar:file:/C:/cxh/ptII/doc/codeDoc.jar!/doc/codeDoc/ptolemy/kernel/package-summary.html#package_description

Parameters:
urlName - The absolute URL to be converted.
Returns:
The jar url that refers to a file if the file can be found as a resource or null if the file cannot be found.
Throws:
java.net.URISyntaxException - If there are problems creating a URI.
java.net.MalformedURLException - If there are problems creating a URL.

_entryResourceWithoutFragment

private static java.net.URL _entryResourceWithoutFragment(java.lang.String urlString)
                                                   throws java.io.IOException,
                                                          java.net.MalformedURLException
Throws:
java.io.IOException
java.net.MalformedURLException