[
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();
}
}
}