Abstract
The automated mapping of program functionality to intuitive user interfaces is a highly challenging task. Nevertheless it is a promising way to significantly improve software quality by simplifying the development process. This paper describes a method for a declarative and fully automated creation of graphical user interfaces from Java objects, i.e. the information accessible via the Java Reflection API. For this purpose we created the Visual Reflection Library (VRL). VRL interfaces are able to represent complex workflows and allow for a certain degree of visual programming. We start by describing an application: the development of an interactive user interface for the simulation system UG. By shortly discussing the requirements for such an interface, we will explain the reasons for creating VRL and the benefits we gained from it. After that we give an overview of our methods and show several applications. We end by summarizing our results and giving a future outlook.
Similar content being viewed by others
Notes
Groovy is a dynamic language for the Java platform (see: [3]).
This is not necessarily the shortest possible implementation.
Annotations are meta-data that can be added to source code without affecting its functionality. See http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html for detailed explanations.
References
Jeuclid. http://jeuclid.sourceforge.net (2010)
ProSTEP iViP Association, D.G.: Integration of simulation and computation in a pdm environment, white paper. (2008).
Codehaus Foundation: Groovy 1.7. http://groovy.codehaus.org (2009)
Eclipse Foundation: Eclipse 3.6.1. http://www.eclipse.org (2010)
Gamma, Erich, Helm, Richard, Johnson, Ralph, Vlissides, John: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)
Halloway, S.D.: Component Development for the Java Platform. Addison-Wesley, Boston (2002)
Hoffer, M.: Methoden zur visuellen programmierung. Master’s thesis, Heidelberg, Univ., Diplomarb. (2009).
IBM: Visualization Data Explorer. http://www.opendx.org (1991)
Kolling, M., Quig, B., Patterson, A., Rosenberg, J.: The BlueJ system and its pedagogy. Journal of Computer Science Education, Special issue on Learning and Teaching Object Technology 13(4), 249–268 (2003). http://www.cs.kent.ac.uk/pubs/2003/2190
Lang, S., Wittum, G.: Large-scale density-driven flow simulations using parallel unstructured grid adaptation and local multigrid methods. Concurrency - Practice and Experience.
Loy, M., Eckstein, R., Wood, D., Elliot, J., Cole, B.: Java Swing, 2nd edn. O’Reilly, California (2002)
Nokia, Qt Development Frameworks: Qt 4.6. http://qt.nokia.com (2009)
Oracle, formally Sun Microsystems: Java. http://www.oracle.com/us/technologies/java/index.html (1996)
Oracle, formally Sun Microsystems: Javafx 1.3. http://javafx.com (2010)
Oracle, formally Sun Microsystems: Netbeans ide 6.9.1. http://www.netbeans.com (2010)
World Wide Web Consortium: MathML. http://www.w3.org/1999/07/REC-MathML-19990707 (1999)
Acknowledgments
We would like to thank Alexander Heusel, Daniel Jungblut and Alfio Grillo for useful discussions during the preparation of this paper.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Randolph E. Bank.
Rights and permissions
About this article
Cite this article
Hoffer, M., Poliwoda, C. & Wittum, G. Visual reflection library: a framework for declarative GUI programming on the Java platform. Comput. Visual Sci. 16, 181–192 (2013). https://doi.org/10.1007/s00791-014-0230-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00791-014-0230-y