This is a blog of Eclipse enthusiasts from Poznań (Poland) who would like to share their knowledge of Eclipse. We work for the IBM Support Center for Eclipse at Poznań University of Technology.

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.Loading...