On 16 May 2010, at 03:48, Tudor Girba wrote:
I took a quick look and it looks interesting.
Thanks :-)
Just a note for discussion. Executing "AspectMapsUI open" installs the traits. One of your trait extension is adding TAMStructuralZoom to FAMIXClass.
Now, when I browse the FAMIXClass, I get this in the browser:
----- FAMIXType subclass: #FAMIXClass uses: TAMStructuralZoom instanceVariableNames: 'isInterface' classVariableNames: '' poolDictionaries: '' category: 'Famix-Core' -----
There are two problems with this:
1. So, now if I just want to edit the base class, I have to take care and delete the Trait before, because the Trait is part of the definition.
This is a limitation of the browser, but we have to pay attention to it.
My philosophy here is to not hide anything from the developer, which is why the Trait is part of the definition. What you see is what you get. Delete the Trait when editing the base class and it goes away. What you see is what you get. So just edit the class as you want to, you can even add new Traits manually. You can always remove the TAMStructuralZoom trait (or any other trait actually) using the traits uninstaller.
2. If you look in Monticello, the base package (FAMIX-Core in this case) is not dirty, but if you explicitly look for Changes, it gets dirty. I do not know how this could be solved. Perhaps we need extension as first class?
OK this should not happen. I tried to be as close to how the browser works when redefining a class (the redefinition even gets recorded in changes) because I want to avoid breaking any magic that is going on. But apparently I did not succeed completely. If any Monticello magicians can tell me what incantation to add I would be most happy to oblige! -- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile