[kepler-dev] [Bug 2386] - Customize Documentation in Kepler removes all base documentation

Nandita Mangal nmangal at sdsc.edu
Fri Apr 28 14:37:17 PDT 2006


hi Edward,
Thanks for your input. I have fixed the bug occuring . I wanted to ask 
you about another bug in  Documentation System :)
 http://bugzilla.ecoinformatics.org/show_bug.cgi?id=2425

It occurs in both Ptolemy and Kepler, where if a user adds new ports via 
configure
and then later deletes them. The MOML's DocAttribute still retains the 
old "deleted"ports information.
And these "deleted ports" show up in future  CustomizeDocumentation 
Forms as well.
I guess  MOML change request needs to be called to remove the "deleted" 
ports from MOML's docAttribute property as soon as one deletes ports for 
any actor.

thanks,
nandita.



Edward A. Lee wrote:

>
> Nandita:
>
> The DocViewer class code like the following in several places,
> including _getPortEntries():
>
>             if (doc == null) {
>                 doc = "No port description.";
>                 // See if the next tier has documentation.
>                 DocManager nextTier = manager.getNextTier();
>                 if (nextTier != null) {
>                     String nextDoc = nextTier.getPortDoc(port.getName());
>                     if (nextDoc != null) {
>                         doc = nextDoc;
>                     }
>                 }
>             }
>
> The getNextTier() method of DocManager gets the port documentation
> using code like this:
>
>         if (_isInstanceDoc) {
>             _nextTier = new DocManager(_targetClass);
>         } else {
>             Class superClass = _targetClass.getSuperclass();
>             if (_isNamedObj(superClass)) {
>                 _nextTier = new DocManager(superClass);
>             }
>         }
>
> Hope this helps.
>
> Edward
>
>
> At 11:11 AM 4/28/2006, you wrote:
>
>> Hi Edward,
>> I wanted to ask you a code specific question in 
>> "GetDocumentationAction" from the following scenario
>> when if a docAttribute exists (i.e CustomizeDoc has been called and 
>> docAttribute was added via MOMLChangeRequest).
>>
>> In this case , (correct me if i am wrong) we get the DocAttribute and 
>> display it via the DocTableau. However I am unsure
>> where the javadocs information is called in this process i.e ports n 
>> params information and how that is displayed as well
>> in the DocTableau. I believe in Ptolemy when one customizes 
>> documentation both newly added docAttribute as well as original
>> ports/params information show up. However I am unsure how & where
>> ports/params info (from doc/codeDoc/classname.xml in case of Ptolemy)
>> is made to show here in the DocViewer.
>>
>> I am trying to solve a Kepler bug where CustomizeDocumentation 
>> deletes all previous ports/params information for some reason and only
>> shows the newly added "DocAttribute" information.
>>
>> Another interesting point in this case, is that if i just click on 
>> "CustomizeDoc" and click "cancel"...even then
>> an empty docAttribute is created in the MOML as follows:
>> <property name="DocAttribute" class="ptolemy.vergil.basic.DocAttribute">
>>        </property>
>> The above also shows no actor documentaiton in  DocViewer.
>>
>> "GetDocumentationAction" from the Ptolemy documentation structure is 
>> the only class that i have customized in Kepler.
>> (where i only change location of javadocs from doc/codeDoc to a 
>> Kepler-Docs location)
>>
>> Kindly feel free to correct my understanding of Ptolemy's 
>> documentation structure working if I am wrong.
>> Thanks so much.
>>
>> nandita.
>>
>>
>>
>>
>>
>>
>> //From "GetDocumentationAction.java"
>> DocAttribute docAttribute = (DocAttribute) docAttributes
>>                    .get(docAttributes.size() - 1);
>>            // Need to create an effigy and tableau.
>>            Effigy context = Configuration.findEffigy(target);
>>            if (context == null) {
>>                context = 
>> Configuration.findEffigy(target.getContainer());
>>                if (context == null) {
>>                    MessageHandler.error("Cannot find an effigy for "
>>                            + target.getFullName());
>>                }
>>            }
>>            ComponentEntity effigy = context.getEntity("DocEffigy");
>>            if (effigy == null) {
>>                try {
>>                    effigy = new DocEffigy(context, "DocEffigy");
>>                } catch (KernelException exception) {
>>                    throw new InternalErrorException(exception);
>>                }
>>            }
>>            if (!(effigy instanceof DocEffigy)) {
>>                MessageHandler.error("Found an effigy named DocEffigy 
>> that "
>>                        + "is not an instance of DocEffigy!");
>>            }
>>            ((DocEffigy) effigy).setDocAttribute(docAttribute);
>>            ComponentEntity tableau = ((Effigy) 
>> effigy).getEntity("DocTableau");
>>            if (tableau == null) {
>>                try {
>>                    tableau = new DocTableau((DocEffigy) effigy, 
>> "DocTableau");
>>                    ((DocTableau) tableau).setTitle("Documentation for "
>>                            + target.getFullName());
>>                } catch (KernelException exception) {
>>                    throw new InternalErrorException(exception);
>>                }
>>            }
>>            if (!(tableau instanceof DocTableau)) {
>>                MessageHandler.error("Found a tableau named DocTableau 
>> that "
>>                        + "is not an instance of DocTableau!");
>>            }
>>            ((DocTableau) tableau).show()
>>
>> DocAttribute docAttribute = (DocAttribute) docAttributes
>>                    .get(docAttributes.size() - 1);
>>            // Need to create an effigy and tableau.
>>            Effigy context = Configuration.findEffigy(target);
>>            if (context == null) {
>>                context = 
>> Configuration.findEffigy(target.getContainer());
>>                if (context == null) {
>>                    MessageHandler.error("Cannot find an effigy for "
>>                            + target.getFullName());
>>                }
>>            }
>>            ComponentEntity effigy = context.getEntity("DocEffigy");
>>            if (effigy == null) {
>>                try {
>>                    effigy = new DocEffigy(context, "DocEffigy");
>>                } catch (KernelException exception) {
>>                    throw new InternalErrorException(exception);
>>                }
>>            }
>>            if (!(effigy instanceof DocEffigy)) {
>>                MessageHandler.error("Found an effigy named DocEffigy 
>> that "
>>                        + "is not an instance of DocEffigy!");
>>            }
>>            ((DocEffigy) effigy).setDocAttribute(docAttribute);
>>            ComponentEntity tableau = ((Effigy) 
>> effigy).getEntity("DocTableau");
>>            if (tableau == null) {
>>                try {
>>                    tableau = new DocTableau((DocEffigy) effigy, 
>> "DocTableau");
>>                    ((DocTableau) tableau).setTitle("Documentation for "
>>                            + target.getFullName());
>>                } catch (KernelException exception) {
>>                    throw new InternalErrorException(exception);
>>                }
>>            }
>>            if (!(tableau instanceof DocTableau)) {
>>                MessageHandler.error("Found a tableau named DocTableau 
>> that "
>>                        + "is not an instance of DocTableau!");
>>            }
>>            ((DocTableau) tableau).show();
>>
>>
>>
>> bugzilla-daemon at ecoinformatics.org wrote:
>>
>>> http://bugzilla.ecoinformatics.org/show_bug.cgi?id=2386
>>>
>>>
>>> altintas at sdsc.edu changed:
>>>
>>>           What    |Removed                     |Added
>>> ---------------------------------------------------------------------------- 
>>>
>>>         AssignedTo|altintas at sdsc.edu           |nmangal at sdsc.edu
>>>             Status|ASSIGNED                    |NEW
>>>
>>>
>>>
>
> ------------
> Edward A. Lee
> Professor, Chair of the EE Division, Associate Chair of EECS
> 231 Cory Hall, UC Berkeley, Berkeley, CA 94720-1770
> phone: 510-642-0253 or 510-642-0455, fax: 510-642-2845
> eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal  





More information about the Kepler-dev mailing list