== What I did this week: == - Some weeks ago I said that Dr. Joaquin Peña suggested me to take an MDA approach with Eclipse technologies, ATL and MofScript for my project. I had on Thursday a meeting with him, and he introduced me to how these technologies work and how I should apply them to the new Property Panels subsystem. I think that this could be a good approach, but I don't feel that I can accomplish it this summer. BTW, thanks to Dr. Joaquin Peña for his commitment and patience showing me those technologies. I should write more about these ideas, but I'll do ASAP in another thread.
So our main approach right now are the XML-based property panels from scratch. Here is what I did with them... - Defined some plain data structures that transport the XML data (Don't want to increase the dependency with XML specific code). - Deep study of how the current Property Panels work. - Defined some factories that create some UI elements: basic text data (name) => label + textfield, combos (namespaces), checkgroups (modifiers), options (visibility). Some of them are very specific and I would want to have some general ones, but that should be done on another iteration. Those uses the current code in property panels. If it's needed, they'll be reimplemented on the next period (I think here about writing UI-agnostic components, that can be plugged in Swing or SWT UIs). - Created XMLs for UmlClass and Interface. They'll will be reworked while the project is alive, so the syntax is not very strong yet, but we can show some progress. == Following steps == - Clean up some code. I had some hurry because of Bob's holidays, and I wanted that he could be able of carrying functional code in his laptop, so maybe some code is ugly. I'll go through the code and clean up things. - Until now, XMLs where flat lists of elements. But with options we need a tree structure (valid modifiers are not the same for Class and Interface). We'll work on the structure needed, and fix the XML parser so it takes account of them. - Working on the Class and Interface panels, adding as elements as we can, as generic as we can. I find three groups: modifiable lists (dependencies), unmodifiable lists (generalization, specialization, association ends and owned elements), rearrangeable lists (attributes and operations). So I think that, if we can generalize, we'll add two boolean attributes: rearrangeable and modifiable. All of these lists need to be navigable (p.e. we can go to an attribute clicking on it). - Start thinking about how we can build the toolbar in the property panels, hopefully with generic code for all of them. -- Cheers, Christian López Espínola <penyaskito>
