All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.mihosoft.vrl.doc.mainpage Maven / Gradle / Ivy

/* 
 * mainpage.java
 * 
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 2007–2018 by Michael Hoffer,
 * Copyright (c) 2015–2018 G-CSC, Uni Frankfurt,
 * Copyright (c) 2009–2015 Steinbeis Forschungszentrum (STZ Ölbronn)
 * 
 * This file is part of Visual Reflection Library (VRL).
 *
 * VRL is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.
 * 
 * see: http://opensource.org/licenses/LGPL-3.0
 *      file://path/to/VRL/src/eu/mihosoft/vrl/resources/license/lgplv3.txt
 *
 * VRL is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * This version of VRL includes copyright notice and attribution requirements.
 * According to the LGPL this information must be displayed even if you modify
 * the source code of VRL. Neither the VRL Canvas attribution icon nor any
 * copyright statement/attribution may be removed.
 *
 * Attribution Requirements:
 *
 * If you create derived work you must do three things regarding copyright
 * notice and author attribution.
 *
 * First, the following text must be displayed on the Canvas:
 * "based on VRL source code". In this case the VRL canvas icon must be removed.
 * 
 * Second, the copyright notice must remain. It must be reproduced in any
 * program that uses VRL.
 *
 * Third, add an additional notice, stating that you modified VRL. A suitable
 * notice might read
 * "VRL source code modified by YourName 2012".
 * 
 * Note, that these requirements are in full accordance with the LGPL v3
 * (see 7. Additional Terms, b).
 *
 * Please cite the publication(s) listed below.
 *
 * Publications:
 *
 * M. Hoffer, C. Poliwoda, & G. Wittum. (2013). Visual reflection library:
 * a framework for declarative GUI programming on the Java platform.
 * Computing and Visualization in Science, 2013, 16(4),
 * 181–192. http://doi.org/10.1007/s00791-014-0230-y
 */

package eu.mihosoft.vrl.doc;

/** \mainpage VRL: Visual Reflection Library
 * \author Michael Hoffer ([email protected])
 * \date 2009
 *
 * \section intro_sec Introduction
 * 

* VRL is a flexible Swing based library for automatic and interactive object * visualization. * * The project was started as a job for student assistants at * IWR, University of Heidelberg * (supervision: A. Heusel).
*

* \subsection why_sec Why VRL? *

* The Simulation in Technology Center of Prof. Wittum needs a plattform * independent client for their simulation system * UG that provides an interactive * graphical user interface as extension to the already existing shell * environment. *

*

* In addition to that VRL is a visual development environment for the Java * platform. *

*

* The aims of VRL are: *

    *
  • flexibility and plattform independence *
  • automated and interactive visualization of Java objects *
  • visual programming interface (with Groovy support) *
  • visual meta programming *
  • application deployment *
*

* * \subsection dev_status Development status *

* In its current state VRL is able to generate user interfaces from any local * Java object. The VRL-Studio application attempts to give easy access to most * of the features. *

* \subsection ug_support UG Support *

* Christian Poliwoda is working on the UG visualization support. The * visualization support is available as VRL extension and can be integrated to * the VRL-Studio. *

*

* As the XML based network interface for UG by Leo Reich is still in * development only future version will have network transparent UG support. *

* * \section use_sec Using VRL *

* Using VRL is straightforward. In combination with a modern IDE such as * Netbeans 6.5 or higher the following example can be implemented very easily. *

* \subsection req_sec Requirements *

* For the examples you need at least: *

    *
  • Java 6 *
  • Java3D 1.5.2 *
  • Netbeans 6.5 (with Groovy and Grails) *
  • VRL 0.3 *
*

* You can get the VRL and example projects from * * www.mihosoft.de/software-projects/vrl.html *

* \subsection tut_seq Basic Example *

* After downloading and unpacking VRL start NetBeans and create a new * Project (VRLExample): *

* @image html netbeans_create_project_01.png * @image latex netbeans_create_project_01.eps "Create New Project" width=10cm *

* Make sure "Create Main Class" is unselected: *

* @image html netbeans_create_project_02.png * @image latex netbeans_create_project_02.eps "Project Properties" width=10cm *

* Add the VRL-0.3.jar * library file to the project by right-clicking on the "Libraries" folder * of your project and clicking "Add JAR/Folder". *

* * @image html netbeans_add_libs_01.png * @image latex netbeans_add_libs_01.eps "Add Libraries (1)" width=6cm *

* After selecting the file click "Open". *

* @image html netbeans_add_libs_02.png * @image latex netbeans_add_libs_02.eps "Add Libraries (2)" width=10cm *

* Do the same for the Java 3D Jar files and Groovy. For Groovy choose * "Add Library" instead of "Add Jar/Folder". Select Groovy 1.5.5 from the list. * If Groovy does not appear the Groovy and Grails plugin is not installed. This * can be done with the Netbeans plugin manager. Please make sure that Java 3D * is installed on your system. The example will only run if you have * installed Java 3D properly. *

*

* Add a new JFrame form: *

* @image html netbeans_new_jframe_01.png * @image latex netbeans_new_jframe_01.eps "Add new JFrame (1)" width=10cm *

* and call it "MainFrame": *

* @image html netbeans_new_jframe_02.png * @image latex netbeans_new_jframe_02.eps "Add new JFrame (2)" width=10cm *

* In the Swing palette right-click and select "Create New Category"; call it VRL. *

* @image html netbeans_add_beans_01.png * @image latex netbeans_add_beans_01.eps "Add New Palette Category" width=8cm *

* Now right-click again, select "Palette Manager" and click on "Add from JAR". *

* @image html netbeans_add_beans_02.png * @image latex netbeans_add_beans_02.eps "Add New Beans to Palette (1)" width=8cm *

* There you have to load the VRL library file * VRL-0.3.jar by clicking on "Add from JAR". * After clicking "Next" you can choose which components to add. Select * "ObjectTree" and "VisualCanvas". *

* @image html netbeans_add_beans_03.png * @image latex netbeans_add_beans_03.eps "Add New Palette Category (2)" width=10cm *

* Then click "Next" and select the "VRL" category before clicking "Finish". *

*

* After following the previous steps you should see "VisualCavas" and * "ObjectTree" in the Swing Palette. Drag them to the MainFrame. You can also * use other Swing containers such as SplitPane and * ScrollPane to create a custom layout. *

* @image html netbeans_add_beans_04.png * @image latex netbeans_add_beans_04.eps "Add Components to JFrame" width=10cm *

* Now comes the interesting part. You have to write the classes you want to * display. In our case it will be the following: *

* \code * class SimpleClass { * public Integer add(Integer a, Integer b) { * return a + b; * } * } * \endcode *

* Go to the MainFrame class and add the following to the constructor: *

* \code * objectTree1.addObject(new SimpleClass()); * objectTree1.addObject(new SimpleClass()); * * objectTree1.expandRow(0); * \endcode *

* That's it. Now you can run the application. Drag the two objects from the * tree to the canvas. You can connect the objects and invoke there methods. *

* @image html netbeans_app_01.png * @image latex netbeans_app_01.eps "Run the Example" width=10cm * * \subsection concl_seq Conclusion * This first example shows the basic concept of VRL GUI design. Very important * is the strict separation between functionality and design. The objects who * contain the code are completely independent of their visual appearance. On * the other hand a very essential feature is the possibility to manually * specify the visual appearance of more complicated parameter types. Please * read the \ref tr_page for further information. */




© 2015 - 2025 Weber Informatics LLC | Privacy Policy