List of EMF Notification event types (event type name – int)

My blog has moved to a new home. Please go to http://blog.sdruskat.net for the Brand New Code on the Block! And – like they said in the nineties – “don’t forget to update your bookmarks”. Link to this post on the new site: http://wp.me/p3klLL-5e.

Just a very quick post today, which will hopefully be useful to someone other than myself as well.

When using the org.eclipse.emf.common.notify.Notification interface in Eclipse GEF editors, more precisely in any extensions of Adapter or EContentAdapter (cf. respective tutorial at vogella.com) you use in EditParts, you may want to catch certain event types in your Adapter‘s notifyChanged() method.

In my case, I have an Adapter listen to model elements, and want to implement a switch statement for certain event types. I’m able to get the event type in the method via notification.getEventType() and print that to, say, System.out1, but this only gives me an int value. To be able to quickly implement the switch case for this event type, I thought it would be useful to have a list of event types and their corresponding int values. So here it is (one ordered alphabetically, and another one ordered by int value).

Read more (opens the full post at the new blog location http://blog.sdruskat.net)…

Building a cross-platform, feature-based Eclipse RCP Product with Tycho II: Mind your OSs

My blog has moved to a new home. Please go to http://blog.sdruskat.net for the Brand New Code on the Block! And – like they said in the nineties – “don’t forget to update your bookmarks”. Link to this post on the new site: http://wp.me/p3klLL-4T.

If you have followed Building a cross-platform, feature-based Eclipse RCP Product with Tycho (the umpteenth), and have run the build on a Windows system, you will have ended up with non-executable products for Mac OS X and Linux.

What this means is that the product will build just fine, but when transferring the product zips to the target system (Mac OS X, Linux), unzipping them, and trying to run them by double-clicking on the executable, nothing will happen. This is due to the fact that Windows does not know about file system permissions, as used for *nix systems (such as Mac OS X and Linux).

Read more (opens the full post at the new blog location http://blog.sdruskat.net)…

Building a cross-platform, feature-based Eclipse RCP Product with Tycho (the umpteenth)

My blog has moved to a new home. Please go to http://blog.sdruskat.net for the Brand New Code on the Block! And – like they said in the nineties – “don’t forget to update your bookmarks”. Link to this post on the new site: http://wp.me/p3klLL-3z.
DISCLAIMER: This solution was tested with Eclipse Indigo (3.7.2), Java JDK 1.6.0_37, Tycho 0.16.0, using a Target Definition which contains p2 repositories only, and a Product Definition which is feature-based. A “delta pack” is not needed, as all necessary plug-ins can be pulled from Eclipse release-train p2 repositories.
Other setups may work, but have not been tested.
If you build on a Windows system, you will end up with non-executable products for Mac OS X and Linux. For more information, and how to fix this, please read Building a cross-platform, feature-based Eclipse RCP Product with Tycho II: Mind your OSs.

While the info in this post can easily be found elsewhere, I’m trying to give a beginner-friendly, hopefully at least half-coherent explanation of the topic. Part of the rationale behind this is to make a note to myself, so please forgive any inaccuracies (or better still, comment on them).

When I first set out to build an RCP application, I had to declare dependencies to mavenized OSGi-bundles, which very quickly led me to Tycho, a “set of Maven plugins and extensions for building Eclipse plugins and OSGi bundles with Maven”. And while I managed to get my basic build to work relatively quickly with Tycho 0.13.0 (after a few posts to the immensely helpful tycho-user mailing list, a few questions on stackoverflow.com, and a dozen bundles of pulled out hair), I ran into problems with realizing a working cross-platform build.

Read more (opens the full post at the new blog location http://blog.sdruskat.net)…

How to refresh model source/target connection “children” of GEF NodeEditParts

My blog has moved to a new home. Please go to http://blog.sdruskat.net for the Brand New Code on the Block! And – like they said in the nineties – “don’t forget to update your bookmarks”. Link to this post on the new site: http://wp.me/p3klLL-1t.

I am currently developing a GEF-based editor for an EMF-based model with the help of the GEF Book, and vainolo’s incredibly helpful blog posts.

I had implemented connection creation, following vainolo’s post about connections, but in my editor, the added connection figures never showed up, although the respective model objects had been instantiated (I’ve checked!). It was only after I had saved the graph, and re-opened the editor that the connection figures became visible. The respective code bits looked like this:

Read more (opens the full post at the new blog location http://blog.sdruskat.net)…