Hi Kevin,
I don't think Vergil supports creating custom configuration panes.
It probably should, but it does not.

If I understand you correctly, then it looks like you are creating an
actor and then when you click on the actor, you would be able to edit
some parameters in the parent container.

The way I would do this is to have the actor have parameters that
are set to composite actor (aka toplevel) parameters in the container.

Usually, one would then right click on the background of the
composite actor to edit the parameters.

You could try using ptolemy.moml.SharedParameter:

"This parameter is shared throughout a model. Changing the expression
of any one instance of the parameter will result in all instances that
are shared being changed to the same expression. An instance elsewhere
in the model (within the same top level) is shared if it has the same
name and its container is of the class specified in the constructor
(or of the container class, if no class is specified in the constructor)."


Some of the early Ptolemy models don't use vergil and instead have
their own UI.  See the CSP Dining Philosophers example and
the CSP Bus Contention example.  You could do something similar, but
that would mean you would not be using Vergil.

_Christopher

Christopher Brooks (cxh at eecs berkeley edu) University of California
Programmer/Analyst Chess/Ptolemy/Trust        US Mail: 558 Cory Hall #1770
ph: 510.643.9841 fax:510.642.2739             Berkeley, CA 94720-1770
home: (F-Tu) 707.665.0131 (W-F) 510.655.5480  (office: 400A Cory)



--------

    
    Hi all,
    
    I'm a Ptolemy rookie so please point me to FAQ or other documentation if
    available.
    
    I have written a TypedAtomicActor which has a few StringParameters to
    control its behavour.  Also, I've written an EditorPaneFactory for this
    actor which presents some custom configuration panes.  The factory
    returns an object which derives from JPanel and uses code roughly like this
   :
    
    public HelloWorldEditorPane( NamedObj container ) {
      super();
      parent = (HelloWorld) container;
    
      PtolemyQuery hostQuery = new PtolemyQuery( container );
      hostQuery.setTextWidth( 40 );
      hostQuery.addStyledEntry( parent.url );
      hostQuery.addStyledEntry( parent.user );
      hostQuery.addStyledEntry( parent.pass );
    
      this.add( hostQuery );
    
    }
    
    This code using the PtolemyQuery has been cribbed from the
    ptolemy.actor.gui.EditorPaneFactory.createEditorPane() method.
    
    The problem that I see, is the addStyledEntry() method (through the
    PtolemyQuery.attachParameter() method ) ends up adding this to the
    ValueListener list of the StringParameters such as parent.url.  Since
    this list is implemented as a standard LinkedList, the StringParameter
    hold on tightly to the PtolemyQuery object and that object is never
    freed.  In order to remove this from the value listeners, I'd have to call
    
    parent.url.removeValueListener( hostQuery )
    
    when the hostQuery object is no longer needed (such as when the
    configure window is closed).  But I don't think the Panel that I created
    ever receives notification that the configure dialog has been closed.
    
    Is there some way to work around this issue?  Is there some actor in
    there which does this properly.
    
    Thanks for the advice.
    
    Kevin Ruland
    University of Kansas.
    
    
    ---------------------------------------------------------------------------
   -
    Posted to the ptolemy-hackers mailing list.  Please send administrative
    mail for this list to: [EMAIL PROTECTED]
--------

----------------------------------------------------------------------------
Posted to the ptolemy-hackers mailing list.  Please send administrative
mail for this list to: [EMAIL PROTECTED]

Reply via email to