[kepler-dev] Copies of Ptolemy classes in Tagging

Christopher Brooks cxh at eecs.berkeley.edu
Tue May 31 13:56:39 PDT 2011


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


More information about the Kepler-dev mailing list