[kepler-dev] Copies of Ptolemy classes in Tagging

Christopher Brooks cxh at eecs.berkeley.edu
Tue May 31 15:10:51 PDT 2011


Hi Derik,
Cool, thanks, I missed the bug . . .

_Christopher

On 5/31/11 2:09 PM, Derik Barseghian wrote:
> Hi Christopher,
> There's a bug for this: http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5405
> Also, sensor-view has an override of EntityTreeModel: http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5286
>
> I'll try to look into finding a way to remove these soon...
>
> Derik
>
> On May 31, 2011, at 1:56 PM, Christopher Brooks wrote:
>
>> Hi Derik,
>> I noticed that tagging has a copy of vergil/basic/BasicGraphController.
>>
>> The diffs between the copy in tagging and the ptII head are substantial.
>>
>> I'm concerned that doing the merge will be very difficult.
>>
>> It would be good to get this done sooner rather than later, the amount
>> of effort to a merge can quickly become exponential.
>>
>> Let me know if you want to make changes to BasicGraphController.
>>
>> _Christopher
>>
>> On 5/27/11 5:47 PM, barseghian at ecoinformatics.org wrote:
>>> Author: barseghian
>>> Date: 2011-05-27 17:47:49 -0700 (Fri, 27 May 2011)
>>> New Revision: 27661
>>>
>>> Modified:
>>>     trunk/modules/tagging/src/ptolemy/vergil/basic/BasicGraphController.java
>>> Log:
>>> fix override so workflows can execute again.
>>> we need to remove this override so this doesn't happen again. this means finding an alternate soln for how tagging changes context to 'workflow'
>>>
>>> Modified: trunk/modules/tagging/src/ptolemy/vergil/basic/BasicGraphController.java
>>> ===================================================================
>>> --- trunk/modules/tagging/src/ptolemy/vergil/basic/BasicGraphController.java	2011-05-27 23:41:50 UTC (rev 27660)
>>> +++ trunk/modules/tagging/src/ptolemy/vergil/basic/BasicGraphController.java	2011-05-28 00:47:49 UTC (rev 27661)
>>> @@ -1,30 +1,29 @@
>>> -/*
>>> - * Copyright (c) 1999-2010 The Regents of the University of California.
>>> - * All rights reserved.
>>> - *
>>> - * '$Author$'
>>> - * '$Date$'
>>> - * '$Revision$'
>>> - *
>>> - * Permission is hereby granted, without written agreement and without
>>> - * license or royalty fees, to use, copy, modify, and distribute this
>>> - * software and its documentation for any purpose, provided that the above
>>> - * copyright notice and the following two paragraphs appear in all copies
>>> - * of this software.
>>> - *
>>> - * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
>>> - * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
>>> - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
>>> - * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
>>> - * SUCH DAMAGE.
>>> - *
>>> - * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
>>> - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
>>> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
>>> - * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
>>> - * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
>>> - * ENHANCEMENTS, OR MODIFICATIONS.
>>> - *
>>> +/* (An override of Ptolemy's:) Base class for graph controllers in Ptolemy.
>>> +
>>> + Copyright (c) 1999-2010 The Regents of the University of California.
>>> + All rights reserved.
>>> + Permission is hereby granted, without written agreement and without
>>> + license or royalty fees, to use, copy, modify, and distribute this
>>> + software and its documentation for any purpose, provided that the above
>>> + copyright notice and the following two paragraphs appear in all copies
>>> + of this software.
>>> +
>>> + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
>>> + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
>>> + ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
>>> + THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
>>> + SUCH DAMAGE.
>>> +
>>> + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
>>> + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
>>> + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
>>> + PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
>>> + CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
>>> + ENHANCEMENTS, OR MODIFICATIONS.
>>> +
>>> + PT_COPYRIGHT_VERSION_2
>>> + COPYRIGHTENDKEY
>>> +
>>>    */
>>>
>>>   package ptolemy.vergil.basic;
>>> @@ -35,6 +34,7 @@
>>>   import java.awt.geom.Point2D;
>>>   import java.net.URL;
>>>   import java.util.Iterator;
>>> +import java.util.LinkedList;
>>>   import java.util.List;
>>>
>>>   import javax.swing.AbstractAction;
>>> @@ -51,14 +51,20 @@
>>>   import org.kepler.tagging.gui.TaggingPanel;
>>>
>>>   import ptolemy.actor.CompositeActor;
>>> +import ptolemy.actor.gui.ColorAttribute;
>>>   import ptolemy.actor.gui.Configuration;
>>>   import ptolemy.actor.gui.DialogTableau;
>>>   import ptolemy.data.expr.Parameter;
>>>   import ptolemy.kernel.Entity;
>>>   import ptolemy.kernel.InstantiableNamedObj;
>>> +import ptolemy.kernel.util.Attribute;
>>> +import ptolemy.kernel.util.ChangeRequest;
>>>   import ptolemy.kernel.util.DebugEvent;
>>>   import ptolemy.kernel.util.DebugListener;
>>> +import ptolemy.kernel.util.IllegalActionException;
>>>   import ptolemy.kernel.util.Locatable;
>>> +import ptolemy.kernel.util.NameDuplicationException;
>>> +import ptolemy.kernel.util.Nameable;
>>>   import ptolemy.kernel.util.NamedObj;
>>>   import ptolemy.kernel.util.Settable;
>>>   import ptolemy.kernel.util.ValueListener;
>>> @@ -114,6 +120,31 @@
>>>       ///////////////////////////////////////////////////////////////////
>>>       ////                         public methods                    ////
>>>
>>> +    public void clearAllErrorHighlights() {
>>> +        ChangeRequest request = _getClearAllErrorHighlightsChangeRequest();
>>> +        _frame.getModel().requestChange(request);
>>> +    }
>>> +
>>> +    /** Highlight the specified object and all its containers to
>>> +     *  indicate that it is the source of an error.
>>> +     *  @param culprit The culprit.
>>> +     */
>>> +    public void highlightError(final Nameable culprit) {
>>> +        if (culprit instanceof NamedObj) {
>>> +            ChangeRequest request = new ChangeRequest(this, "Error Highlighter") {
>>> +                protected void _execute() throws Exception {
>>> +                    _addErrorHighlightIfNeeded(culprit);
>>> +                    NamedObj container = culprit.getContainer();
>>> +                    while (container != null) {
>>> +                        _addErrorHighlightIfNeeded(container);
>>> +                        container = container.getContainer();
>>> +                    }
>>> +                }
>>> +            };
>>> +            ((NamedObj) culprit).requestChange(request);
>>> +        }
>>> +    }
>>> +
>>>       /** Add commands to the specified menu and toolbar, as appropriate
>>>        *  for this controller.  In this base class, nothing is added.
>>>        *  @param menu The menu to add to, or null if none.
>>> @@ -420,8 +451,34 @@
>>>        *  will not have been fully constructed by the time this is called.
>>>        */
>>>       protected void _createControllers() {
>>> +    }
>>> +
>>> +    protected boolean _areThereActiveErrorHighlights() {
>>> +        return !_errorHighlights.isEmpty();
>>>       }
>>> +
>>> +    /**
>>> +     *
>>> +     * @return
>>> +     */
>>> +    protected ChangeRequest _getClearAllErrorHighlightsChangeRequest() {
>>> +        ChangeRequest request = new ChangeRequest(this,
>>> +                "Error Highlight Clearer", true) {
>>> +            protected void _execute() throws Exception {
>>> +                for (Attribute highlight : _errorHighlights) {
>>> +                    highlight.setContainer(null);
>>> +                }
>>> +            }
>>> +        };
>>>
>>> +        // Mark the Error Highlight Clearer request as
>>> +        // non-persistant so that we don't mark the model as being
>>> +        // modified.  ptolemy/actor/lib/jni/test/Scale/Scale.xml
>>> +        // required this change.
>>> +        request.setPersistent(false);
>>> +        return request;
>>> +    }
>>> +
>>>       /** Initialize interactions for the specified controller.  This
>>>        *  method is called when a new controller is constructed. This
>>>        *  base class does nothing, but derived classes may attach interactors
>>> @@ -643,6 +700,30 @@
>>>       protected UnitSolverDialogAction _unitSolverDialogAction = new UnitSolverDialogAction();
>>>
>>>       ///////////////////////////////////////////////////////////////////
>>> +    ////                         private methods                   ////
>>> +
>>> +    /** Add an error highlight color to the specified culprit if it is
>>> +     *  not already present.
>>> +     *  @param culprit The culprit to highlight.
>>> +     *  @exception IllegalActionException If the highlight cannot be added.
>>> +     *  @exception NameDuplicationException Should not be thrown.
>>> +     */
>>> +    private void _addErrorHighlightIfNeeded(Nameable culprit)
>>> +            throws IllegalActionException, NameDuplicationException {
>>> +        Attribute highlightColor = ((NamedObj) culprit)
>>> +                .getAttribute("_highlightColor");
>>> +        if (highlightColor == null) {
>>> +            highlightColor = new ColorAttribute((NamedObj) culprit,
>>> +                    "_highlightColor");
>>> +            ((ColorAttribute) highlightColor)
>>> +                    .setExpression("{1.0, 0.0, 0.0, 1.0}");
>>> +            highlightColor.setPersistent(false);
>>> +            ((ColorAttribute) highlightColor).setVisibility(Settable.EXPERT);
>>> +            _errorHighlights.add(highlightColor);
>>> +        }
>>> +    }
>>> +
>>> +    ///////////////////////////////////////////////////////////////////
>>>       ////                         private variables                 ////
>>>
>>>       /** The time to sleep upon animation. */
>>> @@ -658,6 +739,9 @@
>>>        */
>>>       private static ContextMenuFactoryCreator _contextMenuFactoryCreator;
>>>
>>> +    /** List of error highlight attributes we have created. */
>>> +    private List<Attribute>   _errorHighlights = new LinkedList<Attribute>();
>>> +
>>>       // The get documentation action.
>>>       private GetDocumentationAction _getDocumentationAction = new GetDocumentationAction();
>>>
>>>
>>> _______________________________________________
>>> Kepler-cvs mailing list
>>> Kepler-cvs at kepler-project.org
>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-cvs
>>
>> --
>> Christopher Brooks, PMP                       University of California
>> CHESS Executive Director                      US Mail: 337 Cory Hall
>> Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
>> ph: 510.643.9841      	                      (Office: 545Q Cory)
>> home: (F-Tu) 707.665.0131 cell: 707.332.0670
>

-- 
Christopher Brooks, PMP                       University of California
CHESS Executive Director                      US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
ph: 510.643.9841      	                      (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 cell: 707.332.0670


More information about the Kepler-dev mailing list