[kepler-dev] Problem with excess documentation being included in xml files?

Dan Higgins higgins at nceas.ucsb.edu
Wed Mar 12 22:50:13 PDT 2008


Christopher,
    I think this is only a Kepler 'feature'. I raised the issue of 
including the documentation in every workflow when that change was made 
in Kepler, but no one seemed to be concerned at the time. I agree that 
the result will be huge xml files.

Dan

Christopher Brooks wrote:
> I just glanced through the demo Dan checked in and if you look at the
> XML, it seems like it is copying the contents of the parent class
> documentation into the xml file.   Is this right?
>
> It seems wrong because the xml files will be huge and will be out of
> date if the parent class changes.
>
> I'm not sure if it is a Kepler-only problem or a Ptolemy problem.
>
> _Christopher
>
> --------
>
>     higgins     08/03/12 20:22:47
>     
>       Added:       demos/Python PythonFileLineCounter.xml
>       Log:
>       Example of a PythonScript actor that opens a text file and then counts th
>    e number of lines in the file. This example just illustrates how to access t
>    he file system using Python. Many script based actions are thus possible usi
>    ng Python/Jython that otherwise would require Java programmng.
>       
>       Revision  Changes    Path
>       1.1                  kepler/demos/Python/PythonFileLineCounter.xml
>       
>       Index: PythonFileLineCounter.xml
>       ===================================================================
>       <?xml version="1.0" standalone="no"?>
>       <!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
>           "http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
>       <entity name="PythonFileLineCount" class="ptolemy.actor.TypedCompositeAct
>    or">
>           <property name="_createdBy" class="ptolemy.kernel.attributes.VersionA
>    ttribute" value="7.0.beta">
>           </property>
>           <property name="SDF Director" class="ptolemy.domains.sdf.kernel.SDFDi
>    rector">
>               <property name="iterations" class="ptolemy.data.expr.Parameter" v
>    alue="1">
>               </property>
>               <property name="vectorizationFactor" class="ptolemy.data.expr.Par
>    ameter" value="1">
>               </property>
>               <property name="allowDisconnectedGraphs" class="ptolemy.data.expr
>    .Parameter" value="false">
>               </property>
>               <property name="allowRateChanges" class="ptolemy.data.expr.Parame
>    ter" value="false">
>               </property>
>               <property name="constrainBufferSizes" class="ptolemy.data.expr.Pa
>    rameter" value="true">
>               </property>
>               <property name="period" class="ptolemy.data.expr.Parameter" value
>    ="0.0">
>               </property>
>               <property name="synchronizeToRealTime" class="ptolemy.data.expr.P
>    arameter" value="false">
>               </property>
>               <property name="timeResolution" class="ptolemy.moml.SharedParamet
>    er" value="1E-10">
>               </property>
>               <property name="Scheduler" class="ptolemy.domains.sdf.kernel.SDFS
>    cheduler">
>                   <property name="constrainBufferSizes" class="ptolemy.data.exp
>    r.Parameter" value="constrainBufferSizes">
>                   </property>
>               </property>
>       <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
>    cumentationAttribute">
>       <property name="description" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>null</configure></property>
>       <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
>    ><configure>Steve Neuendorffer</configure></property>
>       <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
>    "><configure>null</configure></property>
>       <property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
>    urableAttribute"><configure>
>       <p>The SDF Director is often used to oversee fairly simple, sequential wo
>    rkflows in which the director can determine the order of actor invocation fr
>    om the workflow. Types of workflows that would run well under an SDF Directo
>    r include processing and reformatting tabular data, converting one data type
>     to another, and reading and plotting a series of data points. A workflow in
>     which an image is read, processed (rotated, scaled, clipped, filtered, etc.
>    ), and then displayed, is also an example of a sequential workflow that requ
>    ires a director simply to ensure that each actor fires in the proper order (
>    i.e., that each actor executes only after it receives its required inputs).<
>    /p>
>       
>       <p>The SDF Director is very efficient and will not tax system resources w
>    ith overhead. However, this efficiency requires that certain conditions be m
>    et, namely that the data consumption and production rate of each actor in an
>     SDF workflow be constant and declared. If an actor reads one piece of data 
>    and calculates and outputs a single result, it must always read and output a
>     single token of data. This data rate cannot change during workflow executio
>    n and, in general, workflows that require dynamic scheduling and/or flow con
>    trol cannot use this director. Additionally, the SDF Director has no underst
>    anding of passing time (at least by default), and actors that depend on a no
>    tion of time may not work as expected. For example, a TimedPlotter actor wil
>    l plot all values at time zero when used in SDF. </p>
>       
>       <p>By default, the SDF Director requires that all actors in its workflow 
>    be connected. Otherwise, the director cannot account for concurrency between
>     disconnected workflow parts. Usually, a PN Director should be used for work
>    flows that contain disconnected actors; however, the SDF Director's allowDis
>    connectedGraphs parameter may also be set to true. The SDF Director will the
>    n schedule each disconnected "island" independently. The director cannot inf
>    er the sequential relationship between disconnected actors (i.e., nothing fo
>    rces the director to finish executing all actors on one island before firing
>     actors on another). However, the order of execution within each island shou
>    ld be correct. Usually, disconnected graphs in an SDF model indicate an erro
>    r.</p>
>        
>       <p>Because SDF Directors schedule actors to fire only after they receive 
>    their inputs, workflows that require loops (feeding an actor's output back i
>    nto its input port for further processing) can cause "deadlock" errors. The 
>    deadlock errors occur because the actor depends on its own output value as a
>    n initial input. To fix this problem, use a SampleDelay actor to generate an
>    d inject an initial input value into the workflow.</p>
>       
>       <p>The SDF Director determines the order in which actors execute and how 
>    many times each actor needs to be fired to complete a single iteration of th
>    e workflow. This schedule is calculated BEFORE the director begins to iterat
>    e the workflow. Because the SDF Director calculates a schedule in advance, i
>    t is quite efficient. However, SDF workflows must be static. In other words,
>     the same number of tokens must be consumed/produced at every iteration of t
>    he workflow. Workflows that require dynamic control structures, such as a Bo
>    oleanSwitch actor that sends output on one of two ports depending on the val
>    ue of a 'control', cannot be used with an SDF Director because the number of
>     tokens on each output can change for each execution.</p>
>       
>       <p>Unless otherwise specified, the SDF Director assumes that each actor c
>    onsumes and produces exactly one token per channel on each firing. Actors th
>    at do not follow the one-token-per-channel firing convention (e.g., Repeat o
>    r Ramp) must declare the number of tokens they produce or consume via the ap
>    propriate parameters. </p>
>       
>       <p>The number of times a workflow is iterated is controlled by the direct
>    or's iterations parameter. By default, this parameter is set to "0". Note th
>    at "0" does not mean "no iterations." Rather, "0" means that the workflow wi
>    ll iterate forever. Values greater than zero specify the actual number of ti
>    mes the director should execute the entire workflow. A value of 1, meaning t
>    hat the director will run the workflow once, is often the best setting when 
>    building an SDF workflow. </p>
>       
>       <p>The amount of data processed by an SDF workflow is a function of both 
>    the number of times the workflow iterates and the value of the director's ve
>    ctorizationFactor parameter. The vectorizationFactor is used to increase the
>     efficiency of a workflow by increasing the number of times actors fire each
>     time the workflow iterates. If the parameter is set to a positive integer (
>    other than 1), the director will fire each actor the specified number of tim
>    es more than normal. The default is 1, indicating that no vectorization shou
>    ld be performed. Keep in mind that changing the vectorizationFactor paramete
>    r changes the meaning of a nested SDF workflow and may cause deadlock in a w
>    orkflow that uses it. </p>
>       
>       <p>The SDF Director has several advanced parameters that are generally on
>    ly relevant when an SDF workflow contains composite components. In most case
>    s the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeR
>    esolution, and constrainBufferSizes parameters can be left at their default 
>    values.</p>
>       
>       <p>For more information about the SDF Director, see the Ptolemy documenta
>    tion (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdes
>    ign3-domains.pdf).</p>
>       
>       </configure></property>
>       <property name="prop:allowDisconnectedGraphs" class="ptolemy.kernel.util.
>    ConfigurableAttribute"><configure>Specify whether to allow disconnected acto
>    rs in the workflow (by default, all actors are required to be connected). If
>     disconnected actors are permitted, the SDF Director will schedule each disc
>    onnected 'island' independently. Nothing "forces" the director to finish exe
>    cuting all actors on one island before firing actors on another. However, th
>    e order of execution within each island should be correct. Usually, disconne
>    cted graphs in an SDF workflow indicate an error.</configure></property>
>       <property name="prop:allowRateChanges" class="ptolemy.kernel.util.Configu
>    rableAttribute"><configure>Specify whether dynamic rate changes are permitte
>    d or not. By default, rate changes are not permitted, and the director will 
>    perform a check to disallow such workflows. If the parameter is selected, th
>    en workflows that require rate parameters to be modified during execution ar
>    e valid, and the SDF Director will dynamically compute a new schedule at run
>    time. This is an advanced parameter that can usually be left at its default 
>    value.</configure></property>
>       <property name="prop:timeResolution" class="ptolemy.kernel.util.Configura
>    bleAttribute"><configure>The time precision used by this director. All time 
>    values are rounded to the nearest multiple of this number. The value is a do
>    uble that defaults to "1E-10" (which is 10-10). This is an advanced paramete
>    r that can usually be left at its default value.</configure></property>
>       <property name="prop:constrainBufferSizes" class="ptolemy.kernel.util.Con
>    figurableAttribute"><configure>Specify whether buffer sizes are fixed. By de
>    fault, buffers are fixed, and attempts to write to the buffer that cause the
>     buffer to exceed its scheduled size result in an error. This is an advanced
>     parameter that can usually be left at its default value.</configure></prope
>    rty>
>       <property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableA
>    ttribute"><configure>Specify the number of times a workflow is iterated. By 
>    default, this parameter is set to "0". Note that "0" does not mean "no itera
>    tions." Rather, "0" means that the workflow will iterate forever. Values gre
>    ater than zero specify the actual number of times the director should execut
>    e the entire workflow. A value of 1, meaning that the director will run the 
>    workflow once, is often the best setting when building an SDF workflow. </co
>    nfigure></property>
>       <property name="prop:vectorizationFactor" class="ptolemy.kernel.util.Conf
>    igurableAttribute"><configure>The vectorizationFactor is used to increase th
>    e efficiency of a workflow by increasing the number of times actors fire eac
>    h time the workflow iterates. If the parameter is set to a positive integer 
>    (other than 1), the director will fire each actor the specified number of ti
>    mes more than normal. The default is 1, indicating that no vectorization sho
>    uld be performed. Keep in mind that changing the vectorizationFactor paramet
>    er changes the meaning of a nested SDF workflow and may cause deadlock in a 
>    workflow that uses it. </configure></property>
>       <property name="prop:synchronizeToRealTime" class="ptolemy.kernel.util.Co
>    nfigurableAttribute"><configure>Specify whether the execution should synchro
>    nize to real time or not. By default, the director does not synchronize to r
>    eal time. If synchronize is selected, the director will only process the wor
>    kflow when elapsed real time matches the product of the period parameter and
>     the iteration count. Note: if the period parameter has a value of 0.0 (the 
>    default), then selecting this parameter has no effect. This is an advanced p
>    arameter that can usually be left at its default value.</configure></propert
>    y>
>       <property name="prop:period" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>The time period of each iteration. The value is a double th
>    at defaults to 0.0, which means that the director does not increment workflo
>    w time. If the value greater than 0.0, the actor will increment workflow tim
>    e each time it fires. This is an advanced parameter that can usually be left
>     at its default value. </configure></property>
>       </property>        <property name="entityId" class="org.kepler.moml.Named
>    ObjId" value="urn:lsid:kepler-project.org:director:1:1">
>               </property>
>               <property name="class" class="ptolemy.kernel.util.StringAttribute
>    " value="ptolemy.domains.sdf.kernel.SDFDirector">
>                   <property name="id" class="ptolemy.kernel.util.StringAttribut
>    e" value="urn:lsid:kepler-project.org:directorclass:1:1">
>                   </property>
>               </property>
>               <property name="semanticType00" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:1:1#Director">
>               </property>
>               <property name="semanticType11" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:2:1#Director">
>               </property>
>               <property name="_location" class="ptolemy.kernel.util.Location" v
>    alue="{45, 35}">
>               </property>
>           </property>
>           <property name="_windowProperties" class="ptolemy.actor.gui.WindowPro
>    pertiesAttribute" value="{bounds={278, 49, 883, 802}, maximized=false}">
>           </property>
>           <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" 
>    value="[600, 681]">
>           </property>
>           <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertPar
>    ameter" value="1.0">
>           </property>
>           <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParamet
>    er" value="{300.0, 340.5}">
>           </property>
>           <property name="Annotation" class="ptolemy.vergil.kernel.attributes.T
>    extAttribute">
>               <property name="_hideName" class="ptolemy.data.expr.SingletonPara
>    meter" value="true">
>               </property>
>               <property name="_hideAllParameters" class="ptolemy.data.expr.Para
>    meter" value="true">
>               </property>
>               <property name="textSize" class="ptolemy.data.expr.Parameter" val
>    ue="14">
>               </property>
>               <property name="textColor" class="ptolemy.actor.gui.ColorAttribut
>    e" value="{0.0, 0.0, 1.0, 1.0}">
>               </property>
>               <property name="fontFamily" class="ptolemy.data.expr.StringParame
>    ter" value="SansSerif">
>               </property>
>               <property name="bold" class="ptolemy.data.expr.Parameter" value="
>    false">
>               </property>
>               <property name="italic" class="ptolemy.data.expr.Parameter" value
>    ="false">
>               </property>
>               <property name="text" class="ptolemy.kernel.util.StringAttribute"
>     value="This is an example of how the PythonScript actor can be used to exam
>    ine a&#10;file. In this case a file is simply opened and the number of line 
>    in the text&#10;file are counted and displayed. In this case the entire file
>     is read into &#10;memory, which may cause a proble for very large text file
>    s.&#10;&#10;Dan Higgins&#10;March, 2008">
>                   <property name="_style" class="ptolemy.actor.gui.style.TextSt
>    yle">
>                       <property name="height" class="ptolemy.data.expr.Paramete
>    r" value="20">
>                       </property>
>                       <property name="width" class="ptolemy.data.expr.Parameter
>    " value="80">
>                       </property>
>                   </property>
>               </property>
>       <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
>    cumentationAttribute">
>       <property name="description" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>null</configure></property>
>       <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
>    ><configure>Edward A. Lee</configure></property>
>       <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
>    "><configure>null</configure></property>
>       <property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
>    urableAttribute"><configure>Use the Annotation attribute to annotate a workf
>    low. Double-click the attribute to customize the content, font size, color, 
>    and basic formatting (bold and italics).</configure></property>
>       <property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableA
>    ttribute"><configure>The font face. Select a font from the drop-down menu. T
>    he default is "SansSerif".</configure></property>
>       <property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>Select to indicate that the type should be italics. By defa
>    ult, type will not be italicized.</configure></property>
>       <property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribu
>    te"><configure>Select to indicate that the type should be bold. By default, 
>    type will not be bold.</configure></property>
>       <property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAt
>    tribute"><configure>The font color. Specify a string representing an array o
>    f four elements: red, green, blue, and alpha, where alpha is transparency. T
>    he default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
>       <property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAtt
>    ribute"><configure>The font size. Select an integer from the drop-down menu 
>    or specify a new size by typing it directly into the value field.  The defau
>    lt is 14.</configure></property>
>       <property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribu
>    te"><configure>The text of the annotation.</configure></property>
>       </property>        <property name="entityId" class="org.kepler.moml.Named
>    ObjId" value="urn:lsid:kepler-project.org:actor:436:1">
>               </property>
>               <property name="class" class="ptolemy.kernel.util.StringAttribute
>    " value="ptolemy.vergil.kernel.attributes.TextAttribute">
>                   <property name="id" class="ptolemy.kernel.util.StringAttribut
>    e" value="urn:lsid:kepler-project.org:class:1199:1">
>                   </property>
>               </property>
>               <property name="semanticType00" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
>               </property>
>               <property name="semanticType11" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
>               </property>
>               <property name="_location" class="ptolemy.kernel.util.Location" v
>    alue="[35.0, 240.0]">
>               </property>
>           </property>
>           <entity name="PythonScript" class="ptolemy.actor.lib.python.PythonScr
>    ipt">
>               <property name="script" class="ptolemy.kernel.util.StringAttribut
>    e" value="import os&#10;from ptolemy.data import IntToken&#10;class Main :&#
>    10;  &quot;Number of lines&quot;&#10;  def fire(self) :&#10;    if not self.
>    input.hasToken(0) :&#10;      return&#10;    t = self.input.get(0)&#10;    f
>    s = t.toString()&#10;    # Note the fs includes quotes at both ends that mus
>    t be removed !&#10;    print 'File: '+fs[1:len(fs)-1] # will print to the te
>    rminal if open&#10;    file = open(fs[1:len(fs)-1],'r')&#10;    lines = file
>    .readlines();&#10;    cnt = len(lines) &#10;    cwd = os.getcwd()  # not use
>    d except in the next line; irrelevent to the workflow&#10;    print 'current
>     working directory: ' + cwd  # will print to the terminal if open&#10;    st
>     = IntToken(cnt)&#10;    self.output.broadcast(st)&#10;">
>               </property>
>               <property name="entityId" class="org.kepler.moml.NamedObjId" valu
>    e="urn:lsid:localhost:entity:1:1">
>               </property>
>               <property name="class" class="ptolemy.kernel.util.StringAttribute
>    " value="ptolemy.actor.lib.python.PythonScript">
>                   <property name="id" class="ptolemy.kernel.util.StringAttribut
>    e" value="null">
>                   </property>
>               </property>
>               <property name="semanticType0" class="org.kepler.sms.SemanticType
>    " value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>               </property>
>               <property name="_editorFactory" class="ptolemy.vergil.toolbox.Tex
>    tEditorConfigureFactory">
>                   <property name="attributeName" class="ptolemy.kernel.util.Str
>    ingAttribute" value="script">
>                   </property>
>               </property>
>               <property name="_location" class="ptolemy.kernel.util.Location" v
>    alue="{320.0, 145.0}">
>               </property>
>               <port name="input" class="ptolemy.actor.TypedIOPort">
>                   <property name="input"/>
>               </port>
>               <port name="output" class="ptolemy.actor.TypedIOPort">
>                   <property name="output"/>
>               </port>
>           </entity>
>           <entity name="Constant" class="ptolemy.actor.lib.Const">
>               <property name="firingCountLimit" class="ptolemy.data.expr.Parame
>    ter" value="NONE">
>               </property>
>               <property name="NONE" class="ptolemy.data.expr.Parameter" value="
>    0">
>               </property>
>               <property name="value" class="ptolemy.data.expr.Parameter" value=
>    "property(&quot;KEPLER&quot;)+&quot;/build.xml&quot;">
>               </property>
>       <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
>    cumentationAttribute">
>       <property name="description" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>null</configure></property>
>       <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
>    ><configure>null</configure></property>
>       <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
>    "><configure>null</configure></property>
>       <property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
>    urableAttribute"><configure><p>The Constant actor outputs a constant, which 
>    is specified by the value parameter. By default, the actor outputs the integ
>    er 1.</p>
>       
>       <p>The actor can be used to output other types of values, e.g., a string 
>    (such as "Hello") or a double (such as 1.2). The actor'
>       s output type matches the type of the specified value.</p>
>       
>       <p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is ofte
>    n set to a finite integer (e.g. '1') so that the workflow will terminate. </
>    p>
>       </configure></property>
>       <property name="port:output" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>An output port that broadcasts the specified constant. By d
>    efault, the output is 1.</configure></property>
>       <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttr
>    ibute"><configure>A multiport that has no declared type (in other words, the
>     port can accept any data type: double, int, array, etc.) If the port is con
>    nected, the actor will not fire until the trigger port receives an input tok
>    en. Connecting the port is optional, but useful when scheduling the actor to
>     perform at a certain time.</configure></property>
>       <property name="prop:firingCountLimit" class="ptolemy.kernel.util.Configu
>    rableAttribute"><configure>The limit on the number of times the actor will f
>    ire. The default value is 'NONE', meaning there is no limit on the number of
>     time the constant will be provided to the output port. Any integer can be p
>    rovided as a value for this parameter.</configure></property>
>       <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttrib
>    ute"><configure>The value produced by the Constant actor. By default, the va
>    lue is the integer token 1. The value can be set to another type, e.g., a st
>    ring (such as "Hello") or a double (such as 1.2). The  output type matches t
>    he type of the value specified here.</configure></property>
>       </property>        <property name="entityId" class="org.kepler.moml.Named
>    ObjId" value="urn:lsid:kepler-project.org:actor:1:1">
>               </property>
>               <property name="class" class="ptolemy.kernel.util.StringAttribute
>    " value="ptolemy.actor.lib.Const">
>                   <property name="id" class="ptolemy.kernel.util.StringAttribut
>    e" value="urn:lsid:kepler-project.org:class:877:1">
>                   </property>
>               </property>
>               <property name="semanticType00" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:1:1#ConstantActor">
>               </property>
>               <property name="semanticType11" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:2:1#Constant">
>               </property>
>               <property name="kar" class="ptolemy.kernel.util.StringAttribute" 
>    value="urn:lsid:kepler-project.org:kar:57:1">
>               </property>
>               <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon"
>    >
>                   <property name="attributeName" class="ptolemy.kernel.util.Str
>    ingAttribute" value="value">
>                   </property>
>                   <property name="displayWidth" class="ptolemy.data.expr.Parame
>    ter" value="40">
>                   </property>
>               </property>
>               <property name="_location" class="ptolemy.kernel.util.Location" v
>    alue="[155.0, 140.0]">
>               </property>
>           </entity>
>           <entity name="Display" class="ptolemy.actor.lib.gui.Display">
>               <property name="_windowProperties" class="ptolemy.actor.gui.Windo
>    wPropertiesAttribute" value="{bounds={772, 542, 484, 208}, maximized=false}"
>    >
>               </property>
>               <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute
>    " value="[484, 164]">
>               </property>
>               <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter
>    " value="10">
>               </property>
>               <property name="columnsDisplayed" class="ptolemy.data.expr.Parame
>    ter" value="40">
>               </property>
>               <property name="suppressBlankLines" class="ptolemy.data.expr.Para
>    meter" value="false">
>               </property>
>       <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
>    cumentationAttribute">
>       <property name="description" class="ptolemy.kernel.util.ConfigurableAttri
>    bute"><configure>null</configure></property>
>       <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
>    ><configure>Yuhong Xiong, Edward A. Lee</configure></property>
>       <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
>    "><configure>null</configure></property>
>       <property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
>    urableAttribute"><configure><p>The Display actor reads tokens of any type vi
>    a its input multiport, and displays each token on a separate line in a text 
>    display window.</p>
>       
>       <p>Specify the size of the text display window with the rowsDisplayed and
>     columnsDisplayed parameters. Simply resizing the window onscreen does not p
>    ersistently change the size when the workflow is saved, closed, and then re-
>    opened. </p>
>       
>       <p>If the input is a string token, then the actor strips the surrounding 
>    quotation marks before displaying the value.</p> 
>       
>       <p>Select the suppressBlankLines parameter to specify that the actor not 
>    add blank lines to the display. By default, the actor will add blank lines.<
>    /p>
>       
>       <p>Note: this actor can consume large amounts of memory. It is not advisa
>    ble to use it to display large output streams.</p></configure></property>
>       <property name="port:input" class="ptolemy.kernel.util.ConfigurableAttrib
>    ute"><configure>A multiport that accepts tokens of any type.</configure></pr
>    operty>
>       <property name="prop:suppressBlankLines" class="ptolemy.kernel.util.Confi
>    gurableAttribute"><configure>Specify whether the actor should display blank 
>    lines (the default) or suppress them.</configure></property>
>       <property name="prop:rowsDisplayed" class="ptolemy.kernel.util.Configurab
>    leAttribute"><configure>The vertical size of the display, in rows. The value
>     is an integer that defaults to 10.</configure></property>
>       <property name="prop:columnsDisplayed" class="ptolemy.kernel.util.Configu
>    rableAttribute"><configure>The horizontal size of the display, in columns. T
>    he value is an integer that defaults to 40.</configure></property>
>       <property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttrib
>    ute"><configure>The title of the text display window. If specified, the valu
>    e will appear in the title bar of the text display window.</configure></prop
>    erty>
>       </property>        <property name="entityId" class="org.kepler.moml.Named
>    ObjId" value="urn:lsid:kepler-project.org:actor:7:1">
>               </property>
>               <property name="class" class="ptolemy.kernel.util.StringAttribute
>    " value="ptolemy.actor.lib.gui.Display">
>                   <property name="id" class="ptolemy.kernel.util.StringAttribut
>    e" value="urn:lsid:kepler-project.org:class:883:1">
>                   </property>
>               </property>
>               <property name="semanticType00" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
>               </property>
>               <property name="semanticType11" class="org.kepler.sms.SemanticTyp
>    e" value="urn:lsid:localhost:onto:2:1#TextualOutput">
>               </property>
>               <property name="_location" class="ptolemy.kernel.util.Location" v
>    alue="[435.0, 180.0]">
>               </property>
>           </entity>
>           <relation name="relation" class="ptolemy.actor.TypedIORelation">
>               <property name="width" class="ptolemy.data.expr.Parameter" value=
>    "1">
>               </property>
>           </relation>
>           <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>               <property name="width" class="ptolemy.data.expr.Parameter" value=
>    "1">
>               </property>
>           </relation>
>           <link port="PythonScript.input" relation="relation"/>
>           <link port="PythonScript.output" relation="relation2"/>
>           <link port="Constant.output" relation="relation"/>
>           <link port="Display.input" relation="relation2"/>
>       </entity>
>       
>       
>       
>     _______________________________________________
>     Kepler-cvs mailing list
>     Kepler-cvs at ecoinformatics.org
>     http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-cvs
> --------
> _______________________________________________
> Kepler-dev mailing list
> Kepler-dev at ecoinformatics.org
> http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
>   



More information about the Kepler-dev mailing list