Overview

Wizards Eclipse are often used into Eclipse plugin to generate code of component. Wizard is composed of several different underlying pages. For instance, "New java class" wizard which can be accessed with File/New/Class menu is composed of wizard page which can generate "Java class" component.

Whe you wish develop your own Eclipse wizard, on other words wizard which is able to generate code of component of your architecture, you must :

  • learn Eclipse plugin architecture which is very powerfull but which is not easy.
  • learn SWT and JFace API.
  • develop template engine to generate code.

Akrogen

Akrogen is code generation Eclipse Plugin (version 3.2.*) oriented components. With Akrogen you can use wizard Eclipse which generate code, without knowing Eclipse plugin architecture, SWT, JFace libraries and without developping template engine to generate code.

Indead, with Akrogen you can describe your Eclipse Wizards pages with XML/XUL which are linked to a template which is able to generate your components (Service, DAO, JSP, HTML...). You can use scripts written with Javascript syntax to define logic of yours Wizard pages.

The code generation of component is the result of the merge of a template (which can be written in Freemarker, Velocity, XSLT) with parameters, XML document, JAVA class model.

With Akrogen you can create easily your own catalog of components to generate. Here the Akrogen concepts :

  • Wizard page/XML component : a component is generated with Eclipse Wizard page which display template parameters. The Wizard page has following characteristics :
    • static XUL : the Wizard page is written in XML/XUL with a XML component. XUL fields define template parameters.
    • Javascript XUL : events (onkeyup, onchange,...) of XUL fields can be linked to Javascript functions to update another XUL fields.

      It's possible to test your Javascript/XUL with Firefox by setting .xul extension into the XML components file.

    • Model : when template use XML document or JAVA class, XML component must define a XML/class JAVA model pour oblige user to select the file before displaying the Wizard page.
    • dynamic XUL : the Wizard page can use the model defined on below to display a XUL which depends on selected XML file/JAVA class.

      With dynamic XUL you can for instance display list of selected JAVA class getters into a tree which contains checkbox (to select getters to use into the template). The Freemarker syntaxe (square bracket) is used in this case.

  • Catalogue : a catalog contains components, templates that you wish generate.

    To open XML component Wizrad page, you can use Catalog view or contextual Akrogen menu (after having selected a file of your Eclipse project).

  • Template engine :
    • Templates : templates can be written in Freemarker, Velocity ou XSLT. It's possible to implement another template with Spring descriptor.
    • Modèle : model which is used into templates are String parameters or XML/class JAVA (before having selected a file).

Guide

Once you have installed Akrogen plugin and have understood how use Akrogen, you can read tutorials which will help to create your own Akrogen catalog.

Akrogen provide following catalogs :

  • Blank catalog to start quickly your catalog. This catalog contains :
    • XML component to generate XML component
    • XML component to generate XML wizard
    • Commons javascript to manage listbox, string/java functions...
  • Struts1.x to generate components of Struts1.x application (Action, ActionForm,...)