Eclipse Yoxos Services Downloads Blogs About
Home > Blogs >

Archive for March, 2009

on Mar 20th, 2009Just in Time for #eclipsecon, Custom Figures in Zest

I have been working on one of the most requested Zest features, custom figures, and by EclipesCon it will be finished.  Now you are no longer stuck with those little blue rounded rectangles.  You can construct all sorts of custom figures, or even make use of an ImageFigure.

zest custom Just in Time for #eclipsecon, Custom Figures in Zest

Zest Custom Figure

You can either do this by creating a CGraphNode, or in the viewer by using an IFigureProvider (as your label provider).  Now we can construct some UML Style visualizations using Zest.  Is anybody interested in trying to hook up an SVG parser (I think batik is part of Orbit)?

customfigures Just in Time for #eclipsecon, Custom Figures in Zest

Want to learn about this and other cool Zest tips and tricks. Come see my talk at EclipseCon.

130x100 speaking Just in Time for #eclipsecon, Custom Figures in Zest

on Mar 19th, 2009Equinox above the Cloud – some call it Heaven!

eppwizard on the cloud 300x215 Equinox above the Cloud   some call it Heaven!We are all busy preparing our talks and demonstrations for EclipseCon, aren’t we? This year I am trying to use in all of my talks a common set of examples.

The plan is to showcase technology from several projects. I will start with the EPP Download Wizard (at the moment ‘Friends-of-Eclipse’ only) from my EPP project that has been build as a RAP application and uses Equinox, p2, and the p2 installer. With the EPP Download Wizard, a user is able to pick and choose from a set of available installable units. On the last wizard page, he or she can download a small customized p2 installer that will download the selected pieces from the p2 repositories. There will be various talks about the things that we do in EPP, e.g. the talk of my colleagues about the internals of the EPP Wizard, or my other talk about the EPP Usage Data Collector.

But what if a developer who is developing this wizard or another application wants to deploy it on a server? The first problem: You need a server! The answer to this question is easy: Use g-Eclipse, our Grid and Cloud Computing tooling, and start your own server on the cloud. This can be done within minutes and we are going to show this in our Equinox above the Cloud talk.

Now that you have your own server up and running, all you need to do is deploying your application on it. But how is this done… well, attend our talk and you will find out how easy it is with p2!

130x100 speaking Equinox above the Cloud   some call it Heaven!

on Mar 18th, 2009Riena 3.5.M6 is out, discuss at EclipseCon

Riena 3.5.M6 is available, just in time for EclipseCon (new and noteworthy). 

riena 300x225 Riena 3.5.M6 is out, discuss at EclipseCon

The Riena highlights at the conference next week:

  • Come to the Riena BOF on Tuesday to discuss the project with the team. As one of the committers behind the UI (Ridgets), I’m looking forward to feedback from developers who consume it or are thinking about using it.
  • If you’re new to Riena I highly recommend Christian’s talk  ’Write a Client/Server application based on Riena in 25 minutes‘  on Wednesday. Christian shows how to write a Riena app quickly including creating the UI, using Ridgets, easy data-binding and access to the server with Remote Services. It’s a quick, hands-on overview of what Riena is about.
     
  • The Riena talk I’m most curious about is Ekke’s and Florian’s presentation ‘Dynamic View for Business Applications (Riena + EMF + oAW)‘ on Thursday. Ekke and Florian are two of the most active members of the Riena community. As far as I can tell they have written a model-driven UI-generator based on Riena+EMF+oAW. Update 3/19: you can read more details here. I’m looking forward to their talk.

See you at EclipseCon,

Elias.

on Mar 18th, 2009The right groove?

Wouldn’t it be cool to have some sort of rap for a project called RAP? Here is a first try:


http://www.youtube.com/watch?v=lgthqBYsYsk

I think this is fun, but maybe I am getting too much into marketing …
Any comments?

on Mar 18th, 2009I Spy Menus

Everyone remember the beloved PDE plug-in spy? Well, on a recent plane trip… I did some hacking to enable menu introspection… check out this video:

menuspythumb 300x186 I Spy Menus

So when you launch the spy in menu mode (alt+shift+f2) and click on something like the ‘Generate Javadoc…’ menu entry, you get this pop-up:

menuspy1 I Spy Menus

The functionality is currently in very rough shape… I released some initial code for the I20090317 “EclipseCon build.” If you have any suggestions on how to improve this introspection workflow or presentation, please comment and let me know! On a side note, Paul Webster  and I plan to have a hackathon session at EclipseCon to solidify the menu introspection code for the Eclipse 3.5 M7 release. Feel free to join to us!

Finally, I hope to see everyone at EclipseCon!

on Mar 18th, 2009Nifty Progress Reporting in RCP Applications

I don’t (always) like the ways Eclipse provides me to do long running operations. So I created another way with a nicer UI.

With the Jobs framework the Eclipse IDE provides some means for long running operations. The Jobs framework is able to run tasks in a parallel fashion and queue the rest, while providing user feedback with progress monitors. Other RCP applications have different needs when doing long running operations.

Specifically the Job frameworks UI feedback is not always what an RCP application wants. Sometimes I find that I’d rather prevent the user from clicking in the UI than queue more jobs. This happens for example if the user action triggers a network access that might take a while. There is no point in accepting the same user action again. So I want to provide a nice feedback mechanism to the user that their click is being processed.

Eclipse provides a progress monitor dialog. It’s a modal dialog that shows a process to the user and prevents her from clicking in the workbench. Personally, I don’t think it’s very appealing. Also, it’s not what I want… while I want some view being blocked often other views should stay operable.

swtscreensnapz035 Nifty Progress Reporting in RCP Applications

I don’t know anything that means my use case from Eclipse so I created a few classes myself that take care of a presentable way to block workbench parts. Basically it’s a transparent shell that lays itself over a given control and displays a SWT ProgressIndicator widget. It responds to the controls re-size, move and disposal events… and looks quite neat! Way better than the progress modal dialog, and it leaves it up to the programmer which part of the UI should be blocked.

From the programmers point of view, I took the approach we find in Eclipse all the time: The programmer has to implement some “I..Runner” interface that is custom to my API.
It contains a run method that takes an IProgressMonitor and is called outside the UI thread.
My aim was to make the different steps during and after the long running operation as clear as possible to the programmer and reduce their need for inner classes. Unlike the Eclipse API I don’t think that it’s the users responsibility to sync back into the UI thread. This use case is common and creates unnecessary bloat in the source code. Therefore I provide 2 methods that are called within the UI thread after the operation is done, one for doing the actual feedback for the user and one for exception handling (if necessary).

public interface IResponsiveRunner {

/**
* called from without the UI Thread
*/
public abstract void runOutsideUIThread( final IProgressMonitor monitor ) throws Exception;

/**
* called after {@link #runOutsideUIThread(IProgressMonitor)} from within the UI Thread
*/
public abstract void uiFeedbackAfterRun();

/**
* Called within the UI thread. This method is called if an error occurs during execute before
* {@link #uiFeedbackAfterRun()} is called.
* @param caught
*/
public abstract void handleException( final Exception caught );
}

This is what a programmer has to implement. Starting the nifty progress report is very similar to using a progress monitor dialog, instantiate and run:

new NiftyProgress( myResponsiveRunner, new TransparentUIBlocker( control ) ).run();

The TransparentUIBlocker is the class that does the actual blocking. It’s passed in under a generic IUIBlocker interface that might have other implementations.

So, as a programmer, you provide an implementation of the IResponsiveRunner and point to a control that should be blocked, and you’re done. Nifty feedback to the user.

I attached a zip with plug-in projects with the classes and a small application that makes use of them. Use it, it’s EPL.

Oh, and if someone can tell me how to get notified if a view is hidden behind another one in a view stack, please do.

on Mar 17th, 2009Make p2, not war!

I’ve been busy this weekend preparing one of the EclipseCon talks I will be doing together with Jordi. The background story to this talk is that we wanted to make it easier for users of Yoxos (and us of course) to deploy new versions of software along with relevant updates. Traditional “.war” deployments are very monolithic and inflexible. The deployment model is simplistic as you only have to support a single version (which may be advantageous to some). But for our needs, we needed a more modular approach to the problem. Since we are not in the business of reinventing circular transportation devices, we started looking at some existing technologies to get as much mileage as possible – so we can concentrate on other neat features.

With Equinox p2, Eclipse already has a powerful provisioning component that performs updates and installation of components… on the client side. Our goal was to leverage the effort that has gone into p2 and adapt the technology to work on the server side. The results are quite promising – with a small amount of effort, we could create a very flexible, modular and robust deployment mechanism. Has anyone else worked with p2 on the server side yet?

Find out more about the technical details at our talk “Down with WAR. Server-side deployment with p2” at EclipseCon. Hope to see you there!

100x100 speaking Make p2, not war!

on Mar 16th, 2009Are you following #eclipsecon?

The “conversation” around #eclipsecon is really starting to pick up. If you are following the blogs but not twitter, then you are only getting half the news.

birdsnest 300x195 Are you following #eclipsecon?

Checkout the EclipseCon birds nest. What’s a birds nest? You’ll have to join to find out icon wink Are you following #eclipsecon? .

on Mar 16th, 2009Eclipse and Google Summer of Code 2009

I want to remind the Eclipse community that Google Summer of Code 2009 (GSOC) recruiting is in full swing now.

gsoc 300x185 Eclipse and Google Summer of Code 2009

I can’t reiterate how awesome this program is for getting contributors and contributions to your project. As an example, one of my favorite recent contributions is a toString() generator that appeared in Eclipse 3.5 M6:

tostring 251x300 Eclipse and Google Summer of Code 2009

The code for this feature originated with Eclipse’s participation in GSOC 2008 and was done by GSOC student Mateusz Matela.

So what are you waiting for, post a project idea as there are deadlines! If you need more advice, my colleague Ian Bull recently blogged about his experience with GSOC and has useful information for both potential mentors and students. Finally, what’s better than free student labor for your open source project icon wink Eclipse and Google Summer of Code 2009 ?

on Mar 15th, 2009Eclipse 3.5M6 is out!

I just got back from vacation and was pleased to see Eclipse 3.5 M6 was released (new and noteworthy). M6 is always an interesting milestone for Eclipse because it’s really close to EclipseCon, signifies API freeze and the march towards stabilization for the Galileo release. Here are some of my favorite noteworthy items from Eclipse 3.5 M6:

From Equinox, I’m thrilled to see the implementation of RFC 134 Declarative Services (DS) Updates from the OSGi R4.2 specification. If you’re developing OSGi services, DS is a fantastic and lightweight way to manage your OSGi services (no more error-prone ServiceTrackers!). I expect to see DS adoption increase in the Eclipse community now that DS ships with the Eclipse SDK. Also, I was so thrilled with the new DS updates that in PDE we tooled the latest changes:

fig2 300x273 Eclipse 3.5M6 is out!

From JDT, the extremely useful Open Type dialog now emphasizes the characters that match the pattern:
fig3 300x262 Eclipse 3.5M6 is out!

Also in PDE land, we are converging on our new target platform story:

fig1 300x299 Eclipse 3.5M6 is out!

So what are you waiting for, why don’t you give M6 a spin?

© EclipseSource 2008 - 2011