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 variants SS
- Evaluate XML variants, including evaluating how Java/AspectJ gets plugged in and whether or not there is a GUI that will dump that output SS
- Present the different tools and recommend one SS
- Set up/install tools
- AspectJ
SC SS KDS
- Eclipse
KDS SS SC
- XML tools 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
- Figure out what is blocking sound on KDS home computer so Skype will work KDS
- 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
- 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
- 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
- SWI XML
- Glade
-- builds XML, but presumes GTK widgets
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.
Other related work
- JAC
-- Java Aspect Components -- uses a GUI-builder that uses UML to create Swing code
- JOTM
-- Java Open Transaction Manager
Schedule
(This is tentative -- kds.)
- 20 Feb: Tools set up, XML dialect chosen, new proposal handed in (including 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