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, [email protected] 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 >> [email protected] >> 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 _______________________________________________ Kepler-dev mailing list [email protected] http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
