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 of a GUI plus some glue code and convert it to
AspectJ SWING code.
Immediate tasks
Write a new proposal and resubmit it to Eric, preferably by Sunday
- Develop expertise in XML SC
- Choose XML GUI language
-
Find XML dialects and tools SS
-
Evaluate XML dialects and tools, including evaluating how Java/AspectJ gets plugged in and whether or not there is a GUI that will dump that output SS (farming out work to KDS and SC as possible)
-
Present the different dialects/tools and recommend a dialect SS
- Choose a tool/language
- Set up/install tools
-
AspectJ
SC SS KDS
-
Eclipse KDS SS SC
- XML tools -- e.g. parser -- to be determined KDS SS SC
-
Set up CVS repository KDS
- Connect up to electricbagpipes CVS repository.
- Read directions
- Use the servername, username, and password that I sent you earlier; path /home/duckys/cvsroot
- Set up collaboration tools
- Set up Skype SC
- Publish contact information
KDS SS SC
-
Make wiki page KDS
- Get on wiki SS
SC (KDS help)
- Hand-code one small example in AspectJ KDS SS SC -- to be done collectively on Sat 25 Feb
- Do academic literature review
- XML GUIs KDS
- Observer pattern KDS
- Develop schedule (all?)
- come up with tasks
- write up schedule
- Write proposal led by KDS
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. -- ss
- 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