Wednesday, October 28, 2009

Eclipse e4 - getting started - dependency injection reading

Eclipse e4 right now is almost the synonym of the word "future".

If you look for an excellent presentation that will bring you into the future, you can find it here (made by Tom Schindl).

Reading JSR 330 is also a good idea, because it will give you the basic understanding of Dependency Injection.

The last, but not least, is looking at javadoc, and then, in the end, at org.eclipse.e4.workbench.ui.internal.Workbench.

All those readings will give you fair understanding of how dependency injection is used in e4.

Monday, October 19, 2009

A word or two on status handling

This summer was extremly hot in Eclipse Support Center, but right now I have a little bit more time for Eclipse code writing.

During those busy weeks I have seen a couple of times posts about logging, extended logging and other logging facilities, which are really great for headless applications, err, for OSGI applications.
But they all cannot be used to provide top-notch customer experience in business apps, because in general logs inform experienced users that something went wrong, but they will not help them in solving the issue.

UI is quite happy, because all plug-ins that have user interface based on org.eclipse.ui.workbench may use StatusHandler#handle(IStatus, int) to report an issue and inform the user in consistent manner. But it is quite difficult to add custom actions to such an error report (f.e. 'Refresh' or 'Restart') although those kind of improvements are requested again and again for various problems (OutOfMemoryException, NoMoreHandles).

Some people dream about automated Eclipse error reports, while other would like to have more control over displayed message (but they do not fill bugs ;-) ). The problem is also that non-UI plug-ins also report problems, and those problems should not be only logged, especially if a user can do something meaningful.

I have spent some time on investigating those issues, and here is my demo(excuse poor screencast quality, it simply took to much space, so I compressed it, a version with slightly better quality is here), which shows what I have in mind: small service, which allows for registering customer status handling services, so you can decorate, handle, modify or add user hints before the status and error dialog is finally presented to the user.

This is not a part of work in progress, so until there is a huge interests please do not expect this code to appear in the platform. But you can help me decide if I should push this to Eclipse.

Best Regards,
Rational Eclipse TSE