GUI XML to AspectJ translator project
A Project for 539D in Term 2 of 2006: DuckySherwood, Sebastian, and Sukesh
For this project, we will take an XML representation and some aspects and make a UI
Paper outline
Goal: eliminate crosscutting of widgets; one aspect per widget instance
- Lit review
- Tools review
- Possible approaches to problem
- straight LTW -- wasted a lot of time, not an option => must have wrapper -> must create wrappers, must change all swix code to call the wrappers
- different class for each instance
- different dummy method for each instance
- have pointcuts driven by the arguments
Resources
This section is for putting various resources -- tutorials, reference guides, download pages -- and evaluations.
(Put
AspectJ resources on the
AspectJ page.)
XML language resources
XML GUI resources and evaluations
- Luxor -- XUL toolkit
- looks like it interprets XUL, but XUL might be a good starting point. (Is there a graphical XUL builder?) -- kds
- Good XUL engine. But you have to define actions in your java code. There seems to exist to write some kind of scripts to extend the XML language, but I do not know how it works exactly. -- SE
- jxmlguibuilder
XML to Java: difficult documentation (in German), project looks abandoned
- Java Gui Builder (JGB)
XML to Java --
- minimal documentation, minimal activity, stuff looks abandoned -- kds
- registration of ActionListeners in the XML-file possible but for object like buttons etc. there is a limited number of predefined attributes available. I prefer not to use it.
- SWI XML
- Like XUL but I found no possibility of writing scripts.(Do we need that at all?) Has in my opinion a good documentation but you have to fire your events completely in your javacode.(is that bad?)
- Glade
-- builds XML, but presumes GTK widgets
- jxul very poor documentated but it seems alright. However there is no reason why to prefer it to luxor. -- ss
- thinlet -- similar to swixml, however swing is not requiered (according to their documentation). Since they use an event-model, I’m wondering how it works.
- gui4j - event handling is integrated more into XML than in Luxor, but you still have to fire events in java code, so this feature is a little bit weird and useless to my opinion. The number of attributes for objects is limited so that I do not want to work with it!
- Koala -- seems not to be build on Swing, because they describe javaBeans all the time. So that it won’t work for our project
These might or might not be useful -- some might have some dialect of XML as a output language
Gui builders, might not be useful
- Mitch Stuart, Java GUI Builders, 2005. Retrieved 5 February 2006. http://www.fullspan.com/articles/java-gui-builders.html
- Swing-Designers, Untitled, Retrieved 5 Febrary 2006. http://www.swing-designer.com/
- JFormDesigner, Retrieved 5 February 2006. http://www.jformdesigner.com/
- Computers In Motion, Computers In Motion, Retrieved 5 February 2006. http://www.computersinmotion.com/cgi-bin/homeframeload.pl?formname=products_foam
- NetBeans.org, Welcome to NetBeans, Retrieved 5 February 2006. http://www.netbeans.org/
- Eclipse.org, Visual Editor Project, Retrieved 5 February 2006. http://www.eclipse.org/vep/WebContent/main.php
- Richard S. Hall, Radical – Lightweight rapid application development, Retrieved 5 February 2006. http://radical.sourceforge.net/
- Abacus Open Source Foundation, AbaGuiBuilder, Retrieved 5 February 2006, http://www.openabacus.org/products.abaguibuilder.html
Academic literature
- Hannemann, Jan and Kiczales, Gregor, Design Pattern Implementation in Java and AspectJ, OOPSLA ’02, Nov 4-8, 161-173, 2002, Seattle WA, 2002. http://doi.acm.org/10.1145/1052898.1052899
- Garcia, Sant’Anna, et. Al., Modularizing design patterns with aspects: a quantitative study, Proceedings of the 4th international conference on Aspect-oriented programming, Chicago, IL, 3-14, 2005. http://doi.acm.org/10.1145/1052898.1052899
- Montiero, Miguel and Fernandes, Joao, Towards a catalog of aspect-oriented refactorings, Proceedings of the 4th international conference on Aspect-oriented programming, Chicago, IL, 111-122, 2005. http://doi.acm.org/10.1145/1052898.1052908
- Using Mixins to Build Flexible Widgets
, Adam Brown, Richard Cardone, Sean McDirmid and Calvin Lin, pages 76-85 in AOSD-2002.
- Christian Prehofer. Feature interactions in statechart diagrams or graphical composition of components. In Kand´e et al. Second International Workshop on Aspect-Oriented
Modeling with UML (<
>2002), September 2002.
Bibliography of AOP papers
Other related work
- JAC
-- Java Aspect Components -- uses a GUI-builder that uses UML to create Swing code
- JOTM
-- Java Open Transaction Manager
Schedule
- 26 Feb: Minimal application (e.g. one button) hand-coded in AspectJ; strategy for describing input code with XML settled on
- 5 Mar: Very minimal application translated and working
- 12 Mar: check boxes, radio buttons, combo boxes, text entry, list boxes fully translatable and working
- 19 Mar: trees fully functional, last minute disasters
- 26 Mar: last-minute disasters, project writeup
- 3-5 Apr: Project presentation