Archive

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!!

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