I know… this blog is not very active. But I’m working on an amazing project which takes a lot of time. This project is Bonita Open Solution. I am in particular on the studio development, an Eclipse RCP application based on GMF.

I’m writing this post to point the bonita blog, in particularly the eclipse category. Technical articles from the R&D team of bonita will be here.

Did you ever be amazed when discovering a static method that provides you exactly the feature that you need?

Did you ever be amazed when discovering a static method that provides you exactly the feature that you need?

No later than this week, I was (again) amazed by such a killer feature. It was just when I want to open the log file in an editor. With 4 classes, it was done!!

So, I will share with you these classes and some of my beloved static methods also provides by them.

PlatformUI : the one that I used the most…
– access to the Workbench and so easy access to all parts of your application (and get the active ones),
– the PreferenceStore where you can set some preferences of the user,
– and can also create Display to… display ^^ a new window

Platform : we can found a lot of things, I advice you take a look.
– provides a lot of OS related information,
– access to the ExtensionRegistry (all extensions declared… and providing to your extension points ;)),
– the log file location,
– … and many other things!!

EFS (which stands for Eclipse File System) : Introduce in 3.2, I think that it is an underrated class and that it provides a good API to manipulate files.
– static access to files giving it URI, IPath, File…
– and then manipulating easily via the interface IFileStore which is returned

IDE : A lot of convenience method to open file in editor
– convenience method to open file from inside and outside of the workspace
– convenience method to open file designed by URI, IPath, IFile,…
– convenience method to open a file at a specified Marker
– … and some other options

I let you discover all the possibilities… and share your beloved ones!!

As said in the title, e4 0.9 tech preview is out… What is it? Ok, if you’re not totally Eclipse addictive (like me ^^), maybe you never heard of it. So e4 stands for Eclipse 4. It means that there is a major modification of the Eclipse Platform. 0.9 tech preview means that it is an official version for preview of what such wonderful things it will provides. You want a quick overview of some of these new things? Ok, let’s go 🙂

The most visual improvement is… the UI ^^

And one of the great feature is that you can now customize the visual of each component just using CSS . Yes just like web pages but for a desktop application.
I think there are two main goals of that :
– A customizable UI of Eclipse and subsequently, of RCP applications.
– Facilities to create a web and desktop application based on the same code, you can adjust rendering with CSS.

For instance you can look about the demos provides with the released version and checked out the custom UI.

Using a simple Command inMenu, you can choose different CSS, no need to restart your application :

One another noticeable improvement is the modification of the resource management (IResource). A better mangement of nested project and linked resource can be used. By instance you can create logical group of projects.

Even if it is a 4.x version, Eclipse 3.x is compatible!! There is a compatibility layer in e4 to support 3.x plugins.

With Eclipse 3.5, some new interesting features appears to improve the publication of Eclipse products and features.

Now you can publish p2 metadata directly from the build instead of generating it later based on binary jars.
To do that, just put this property :p2.gathering =true

You can precise repositories of metadata by setting : p2.metadata.repo and p2.artifact.repo.

An other result of setting the p2.gathering property to true is that root files contributed by features will be published into the artifact repository and associated metadata will be created. So, you have directly the feature’s root files installed.

There’s another great feature. Now you can choose the replacement of the .qualifier used in a product build. Just set the p2.product.qualifier to the qualifier you want to use.

You can now easily export source bundles too. There’s an option to generate a source bundle for each generated plug-ins.

All plug-in developpers know about the beloved plug-in spy (Alt+Shift+F1). This great feature allows to inspect various part of the workbench (Editors, Views, Wizards, Dialogs,…) but menus were not include in this list… Until Galileo!!

First we will see how it works and how it looks, then I will briefly make a demo of how it is useful for a cool use case 🙂
I finally make some comment on this feature.

The Plug-in Spy for menu

Press Alt+Shift+F2, then click on the menu item that you want to inspect.
It will display this kind of pop-up :

We can see such information as:

The active contribution item identifier : We know the id of the item, can call it now 🙂

The active contribution location URI : With this path you can easily provide your own menu item in the same group.

The active contribution item class : The responsible class of this Action. A good start point to see what this menu item triggers.

The contributing plug-in : To see which plug-in provides this menu item

A quick demo

A demo use case : “I want to add a great menu item which will trigger the display of great information about me!!”
So, I see that a menu item exists to do such kind of thing : “About Eclipse SDK”

And as you guess I will use the Plug-in Spy to grab needed information!

Now I create a new plug-in project and create an extension to the point : org.eclipse.ui.menus and fill the locationURI with the one given by the plug-in spy. To get the locationURI, select the text and right-click on it 😉

Now create a command and attach it to the menu contribution :

Set a handler to this command and do what you want in execute method of the class implementing the handler (Open a MessageDialog and display a great text for instance):

Test your plugin :

All works fine and very quickly!!

Comments

You have to adopt a different point of view with this new feature of the plug-in spy :

Make active what you want to inspect then press Alt+SHift+F1 to trigger the plug-in spy

Make active the plug-in spy Alt+Shift+F2, then navigate through menu and click on the menu item to inspect