Last week, I blogged about some work that I’m doing with Eclipse Monkey. I finally found a few minutes to wrap it all up into an RCP application. In doing so, I did have to refactor the Eclipse Monkey code a bit. These changes are focused primarily on extracting the runtime elements of Eclipse Monkey from the ide parts (my RCP application doesn’t need a “Monkey” menu, for example). I’m wrapping up the refactoring so that I can contribute the changes back.
The scripting part is pretty easy, but leans heavily on having a good set of DOMs to actually do the heavy lifting. Fortunately, building good DOMs has thus far been pretty easy; I’m not sure that I’m ready to start building an enterprise-scale application with the technology (though, I’m not aware of anything in the technology that is limiting), but it seems to be pretty powerful for quickly cobbling together an RCP-based mashup. This will only get easier as more and more useful DOMs are created.
To build the RCP application, I created a new plug-in to represent the application. I modified the perspective to include placeholders for the views (thereby indicating where each of the views should be positioned), and added a postUpdate() method to the WorkbenchAdvisor that invokes the script. Here’s the result:
I still have lots of work to do before this is really useful. I need to, for example, build a DOM that provides a decent way of prompting the user for information (the flickr browser so far hard-codes the search pattern in the JavaScript). I thought of using a view for this, but it feels “clunky”; I’ll probably just create a “common dialogs” DOM that includes a text prompter (or something like that). I’m also going to generalize the “image view” DOM to support multiple instances and more arbitrary image sources.