Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dash-dev] Akrogen (describe wizard with XUL and Javascript) & Monkey Eclipse

Hi,

I' have discovered Monkey Eclipse today. Congratulation for your work!
I wrote you because I'm Akrogen Eclipse Plugin developer and perhaps you could be interested
with this Plugin.

With Akrogen you can describe Eclipse wizard with XML/XUL and _javascript_ (to manage logic) and linked to a template (Freemarker, Velocity..) to generate code. Akrogen works with Catalog (Folder wich contains
templates, XML component (XUL of wizard page), scripts...

So I think Monkey+Akrogen could be godd solution to manage Eclipse with scripts.


I wrote a simple (monkey) script to Open a Wizard described with XML/XUL and _javascript_.
To works this script, you must :

1. Install Akrogen. See here for more information.
2. Create Eclipse Project and with contectuel menu "Add Akrogen Capabilities..." See here for more information.
3. Copy/Paste the script Akrogen_OpenComponent.em (the content of the file is at end of this mail)
4. Open Akrogen Vue. See here for more information.
5. Run Script Akrogen_OpenComponent with Shift+W

I hope I don't disturb this mailling list. Don't hesitate to contact me if you have questions
or features about Akrogen.

Regards Angelo

Akrogen_OpenComponent.em file :

/*
 * Use this as a template to open XMl component Akrogen.
 * http://www.aptana.com/docs/index.php/Adding_metadata_to_an_Eclipse_Monkey_script#Key_metadata
 *
 * Note that M1 is Control/Command, M2 is Shift, and M3 is Alt/Option
 *
 * Key: M2+W
 * Menu: Akrogen
 * Kudos: Angelo ZERR (Akrogen).
 * License: GPL
 * DOM:
 */

function main()
{
        // 1. Load Akrogen Bundle
        loadBundle("org.akrogen.eclipse");
       
        // 2. Search selected project into workspace       
        var ResourcesPlugin = Packages.org.eclipse.core.resources.ResourcesPlugin;
        var projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
        var projectSelected = null;
        for (var i = 0; i < projects.length; i++) {
            projectSelected = projects[i];
            if (!projectSelected.isOpen()) {
                projectSelected = null;
            } else
                break;
        }
       
        if (projectSelected != null) {
            // Project is selected, get the Akrogen project (works only if selected project
            // has Akrogen Nature (use contextual menu Add Akrogen Capabilities...)
            var akrogenProject = Packages.org.akrogen.eclipse.project.AkrogenProject.getAkrogenProject(projectSelected);
            if(akrogenProject != null) {
                // It's Akrogen Project
               
                // Get just IFile instance (FIXME : Akrogen API will change to avoid that...)
                var file = projectSelected.getFile('EMPTY');
                // Get the first available catalogs
                var catalog = akrogenProject.getAvailableCatalogs()[0];
                // Get the first component resource of the catalogue               
                catalogResource = catalog.getElementsByTagName('component-ref').item(0);
               
                // Open Catalog resource with OpenCatalogResourceAction Akrogen class.
                var action = "" Packages.org.akrogen.eclipse.actions.catalog.               
                    OpenCatalogResourceAction(akrogenProject, catalogResource, file, null);
                       
                action.run();
            }
        }   
}

Back to the top