SWT Development, a comprehensive guide. (SWT -> Gtk)

by Leo Ufimtsev at April 20, 2015 07:18 PM

I typed up a comprehensive guide on SWT Development (Gtk side).


It covers:
– SWT Develeper Setup.

– Navigating SWT code base.

– Building SO images to run latest master.

– Adding functions to OS.java.

– Compining and testing various Gtk Versions.

– Diagrams for complex workflows and detailed explanations.

Link: http://leoufimtsev.github.io./org/swt-dev.html

Please feel free to post questions & feedback into comments.

by Leo Ufimtsev at April 20, 2015 07:18 PM

Shared blog for EclipseSource Munich

by Maximilian Koegel at April 20, 2015 04:39 PM

To make it simpler for you to follow our blog posts from EclipseSource Munich we will now use a joint blog for all topics related to our work in Munich. This means there will be less posts that appear on my blog since I will post many things on the new Blog. All posts on the new blog are announced on the Twitter Account and Google+ page, see details below:

New Blog: http://eclipsesource.com/blogs/author/helmingkoegel

Twitter: https://twitter.com/EclipseSourceM

Google+: https://plus.google.com/105940428433807258305/posts

See you on the new blog!

 Shared blog for EclipseSource Munich


Leave a Comment. Tagged with emf, modeling, Munich, emf, modeling, Munich

by Maximilian Koegel at April 20, 2015 04:39 PM

Andmore 0.5-M1 Released

by kingargyle at April 20, 2015 02:05 PM

Screen Shot 2015-04-19 at 4.44.52 PM

Android development using eclipse has taken a step forward today.  The first stable milestone release is ready for you, the user community to kick the tires, and start to use for your development.  Full details can be found in the New and Noteworthy section for the release notes.

There is a p2 site for your installation needs, and it is recommended that you not install both Android Developer Tools and Andmore into the same IDE.


Add the above url to your available software sites.

Andmore contains all the functionality and features of Android Developer Tools, plus a lot more.    Also, thanks to Ricardo Gladwell for updating the m2e-android plugin to support Andmore.  This means that if you are using maven already, you can continue to do so with Andmore to continue developing Android applications and manage your dependencies.  The p2 site for maven support is:


So what about Gradel support and the the android gradle plugin?  Right now this is targeted for 0.5-M2.   There is a lot of stuff that needs to occur in order for this to happen.  For one thing, AAR support is necessary.   We also need to look into what extension points that the Buildship project will offer.  Will Andmore need to provide any extension points to allow Maven and Gradel to have more control over the build process?

Limitations with the current Andmore release:

  • No AAR support
  • No Gradel support
  • Android API 22 has limited support.  The only piece that may give you an error message is the GUI Layout editor.  If this happens change the API level in the editor from 22 to 21 or lower.

There is plenty to do yet, and the project is very open to contributions from the community.  If you would like to help out with any of the remaining work, do not hesitate to fork the repo on Github, and submit a pull request.   Andmore will be what the community makes it.  Bugs and Feature requests can be opened at:


by kingargyle at April 20, 2015 02:05 PM

Eclipse IoT Breakfast in Madrid on May 21

by Benjamin Cabé at April 20, 2015 12:44 PM

We are happy to co-organize an IoT breakfast together with Eclipse Foundation member SQS, on May 21 in Madrid (Ayre Gran Hotel Colón).

I’ve already been asked “An IoT breakfast? What’s that!?” – well, think of it as your regular meetup, only we’re doing it in the morning rather than in the late afternoon :-)

The agenda will be as follows:

  • What’s new about Eclipse: the IDE and beyond! by Gaël Blondelle, Director of European Ecosystem Development at the Eclipse Foundation.
  • Open Source for the Internet of Things by Benjamin Cabé, IoT Evangelist at the Eclipse Foundation
  • Testing the IoT. Challenges, Approaches and Tools by Itziar Ormaetxea, SQS TestLab Manager

The event is free but you need to register. We have limited space so please don’t wait. I hope to see you there!

by Benjamin Cabé at April 20, 2015 12:44 PM

Meet the Individuals Responsible for Tasktop’s Customer Journey

by Neelan Choksi at April 17, 2015 04:15 PM

As part of our growth at Tasktop, it has been critical that we add in key leaders to sustain and facilitate that growth into the future. I’m thrilled to be talking about the new group of sales leaders we have at Tasktop and feel privileged to be working with this outstanding group. Tasktop now has new sales leaders for Americas West, East, Central as well as a new leader for pre-sales.

Jamie Wetzel has been promoted from an individual contributor role to lead Americas West. I think I am most proud of this as I love when we promote from within. Now in his 5th year with the company, Jamie has proven throughout his years at Tasktop that he’s been management material by embodying our culture and frankly being a leader before ever being given the title. I think Jamie has single-handedly attempted to enable every person who comes to Tasktop, and I am glad that we are able to reward Jamie with this promotion. Truth be told, I think the company is getting the larger reward.

We recently hired John Kapral to lead our Americas East and Central regions. I love Kap’s experience, having started his career in inside sales and working his way up into sales management in a diverse enterprise software career that has spanned such stalwarts (and in some cases Tasktop partners) as Splunk, CA, Symantec, BMC and CSC. In just over 2 quarters at Tasktop, I am already finding that I am relying on Kap’s experience and expertise with sales management and can see marked improvements in Tasktop’s Go to Market process and sales execution.

I am also thrilled that this past summer, we hired Maury Cupitt to lead our pre-sales engineers. Maury has been involved with pre-sales engineering for much of his career, which included working for Netscape, AvantGo, Wily, CA, and Blue Stripe. One of my favorite things about Maury is that he has brought back and instituted the ALM Architecture diagrams to be part of our pre-sales and post-sales processes – something that was so critical in our early days, helping us plot and flow our customers’ ALM tools and the information that needed to be passed between them.

Lance Knight has been given the tremendous responsibility of managing our post-sales activities as VP of Customer Success. His team is responsible for getting our customers deployed, delivering product-related services for customers, providing post-sales support, conducting customer health checks, teaching our customers through our extremely well-reviewed training courses, and driving our knowledge management assets. Like everything Lance touches, he has embraced the role of Customer Success. Lance likes to remind us that his job title is a bit of a misnomer since we all are responsible for Customer Success. Regardless, I feel very fortunate to have Lance leading this team as Tasktop continues to grow.

Yes, we have great innovative products. But working for a company is about the people. And I am proud to be working at Tasktop because we have an outstanding staff of intelligent, hardworking, self-motivated team members who love to win. If you read this and are excited by what you are hearing and are interested in exploring career options at Tasktop, check out our careers pages or contact us.

by Neelan Choksi at April 17, 2015 04:15 PM

Buildship on the mission to Mars

by Simon Scholz at April 17, 2015 03:00 PM


Gradleware decided to implement their own tooling solution for building project within the Eclipse IDE and the Buildship project was born.


Since march there are currently 123 commits on the master branch of the GitHub project, which can be found here: https://github.com/eclipse/buildship

We from the vogella company will be working together with Gradleware and hopefully many other contributors as well.

Therefore we started a new tutorial concerning the Buildship project, which will be constantly updated, when new features will be available. See http://www.vogella.com/tutorials/EclipseGradle/article.html
Detailed information can also be found on GitHub: https://github.com/eclipse/buildship

Here is a little impression for you:


As I already “println” in the build script, please help us by contributing to the Buildship project. So make your hands dirty, read the tutorial and give the Buildship project a try.

I’d also like to quote Wayne Beaton (Blog entry concerning Buildship):

Great Fixes for Buildship will qualify for the Great Fixes for Mars Skills Competition!



by Simon Scholz at April 17, 2015 03:00 PM

JBoss Tools Integration Stack - Luna integration tooling for BRMS/BPMS, Data Virt, SOA 5.x + Early Access Fuse and SwitchYard

by pleacu at April 17, 2015 01:19 PM

The Luna tooling train continues! - Adding JBoss Business Process and Rules development tooling to JBoss Data Virtualization and the SOA 5.x suite plus updates to the early access components.

jbosstools jbdevstudio blog header

What’s an Integration Stack?

JBoss Tools Integration Stack 4.2.1.Final / JBoss Developer Studio Integration Stack 8.0.1.GA

The Integration Stack for JBoss Tools Developer Studio is a set of plugins for Eclipse that provides integration tooling for the following frameworks.

JBoss Business Process and Rules Development

  • BPEL Designer - Orchestrating your business processes.

  • BPMN2 Modeler - A graphical modeling tool which allows creation and editing of Business Process Modeling Notation diagrams using graphiti.

  • Drools - A Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing.

  • jBPM - A flexible Business Process Management (BPM) suite.

JBoss Data Virtualization Development

  • Modeshape - A distributed, hierarchical, transactional and consistent data store with support for queries, full-text search, events, versioning, references, and flexible and dynamic schemas. It is very fast, highly available, extremely scalable, and it is 100% open source.

  • Teiid Designer - A visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Teiid runtime framework.

JBoss Integration and SOA Development

Note - the SOA Development tooling category has both released and early access components. Consequently, you will see it in both the release install dialog and the early access install dialog.

  • All of the Business Process and Rules Development plugins, plus…​

  • Fuse Apache Camel Tooling - A graphical tool for integrating software components that works with Apache ServiceMix, Apache ActiveMQ, Apache Camel and the FuseSource distributions.

  • SwitchYard - A lightweight service delivery framework providing full lifecycle support for developing, deploying, and managing service-oriented applications.

SOA 5.x Development

  • JBoss ESB - An enterprise service bus for connecting enterprise applications and services.

  • jBPM3 - A flexible Business Process Management (BPM) Suite - JBoss Enterprise SOA Platform 5.3.x compatible version.

All of these components have been verified to work with the same dependencies as JBoss Tools 4.2 and Developer Studio 8.

What’s Been Updated?

Updates have been made to the Business Process tooling (BPMN2 Modeler), Fuse Tooling and SwitchYard. See the JBDSIS 8.0.1 Release Notes

Released Tooling Highlights

BPMN2 Modeler Highlights

Early Access Tooling Highlights

Fuse Tooling Highlights

  • FUSETOOLS-1285: Broken parsing and missing configuration of exchange pattern for ToDefiniton endpoint

  • FUSETOOLS-1271: adding component connectors via context menu broken

  • FUSETOOLS-1269: Node Context Menu>Add option does not include the Components drawer items

  • FUSETOOLS-1268: Cannot view or edit file node in Properties editor after dragging a Filesystem component onto the canvas

  • FUSETOOLS-1267: Properties editor for File endpoint converts relative paths to absolute paths so files are not read

  • FUSETOOLS-1264: JMX Node in servers view doesn’t work if server has secured JMX access via credentials

  • FUSETOOLS-1261: Move connection between components cause problem

  • FUSETOOLS-1260: Cannot run Fuse server with alternate JRE

  • FUSETOOLS-1250: The IDE slows down when a fuse project is deployed

  • FUSETOOLS-1248: Debugger step over resets changed variable value and continues along original path

  • FUSETOOLS-1246: New Server Wizard bug with JMX Bundles plugin only

  • FUSETOOLS-1218: Cryptic error message displayed when trying to connect to Fuse 6.2 server

  • FUSETOOLS-1214: Run Configurations dialog shows launch config types for server adapters for Karaf, SMX, Fuse and Fabric8 which partially don’t work

  • FUSETOOLS-1211: Adding another route to a Fuse Project doesn’t work properly

  • FUSETOOLS-1173: Servers have too many jars on launching classpath

  • FUSETOOLS-1158: fix ugly title when debugging

  • FUSETOOLS-1148: Exception when browsing a BrokerNode in JMX View

  • FUSETOOLS-1138: NPE in karaf server core support after removing a deployed project

  • FUSETOOLS-1123: context id is removed on save

  • FUSETOOLS-1100: New Fuse project does not have properly set-up build-path

  • FUSETOOLS-1085: An endpoint is lost after saving

  • FUSETOOLS-1076: New Server Runtime Wizard - Finish button error

Also see Lars Heinemann’s Blog for more Fuse Tooling insights.

SwitchYard Highlights

The JBoss Tools website features tab

Don’t miss the Features tab for up to date information on your favorite Integration Stack components.


If you already have JBDSIS 8.0.0 installed…​

Simply start jbdevstudio or eclipse-with-jbds, then:

Select Help > Check for Updates

Select the components you’d like to install from the available updates.

If you’d like a fresh install…​

To install the Integration Stack tools, first install JBoss Developer Studio from the all-in-one installer, bundled and configured out of the box with everything you need to get started. Alternatively, if you already have eclipse-jee-luna installed, you can install JBoss Developer Studio or JBoss Tools from the Eclipse Marketplace via Help > Eclipse Marketplace…​

Eclipse Marketplace - JBDS

Once Developer Studio is installed, restart Eclipse and select the Software/Update tab in the JBoss Central view. The current 8.0.1.GA integration stack is available automatically with the released JBoss Data Virtualization Development tooling. The remainder of the integration tooling is available as Early Access so you must check the Enable Early Access checkbox in the installer window in order to install.

JBoss Central - JBoss Developer Studio Integration Stack
JBoss Central Early Access - JBoss Developer Studio Integration Stack

The standard p2 installer is available for JBoss Developer Studio Integration Stack. Simply start jbdevstudio or eclipse-with-jbds, then:

 Help > Install New Software...
       - use this for &aposLocation:&apos for the production integration stack:
       - use this for &aposLocation:&apos for the early-access-components integration stack:

The community JBoss Tools Integration Stack installation is easy as well. If you already have eclipse-jee-luna installed, install JBoss Tools from the Eclipse Marketplace via Help > Eclipse Marketplace…​

Eclipse Marketplace - JBoss Tools

Once JBoss Tools is installed, restart Eclipse and select the Software/Update tab in the JBoss Central view. The current 4.2.1.Final integration stack is available automatically with the released tooling. In a manner similar to devstudio, the remainder of the integration tooling is available as "Early Access" so you must check the "Enable Early Access" checkbox in the installer window in order to install.

Select the items you’d like to install:

JBoss Central Early Access - JBoss Tools Integration Stack

The standard p2 installer is available for JBoss Tools Integration Stack. Simply start eclipse-with-jbt, then:

 Help > Install New Software...
       - use this for &aposLocation:&apos for the released-components integration stack:
       - use this for &aposLocation:&apos for the early access integration stack:

Note: If you installed into your own Eclipse you should bump up the launch resource parameters:

--launcher.XXMaxPermSize 256m --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m

Give it a try!

Paul Leacu.

by pleacu at April 17, 2015 01:19 PM

Adding Actions to ToolBar of RCP

by Its_Me_Malai (noreply@blogger.com) at April 17, 2015 01:00 PM

Adding an Action to the ToolBar of an Eclipse Application or RCP. Doesnt that sound really easy. We just need to open up the WorkbenchActionBarAdvisor.java in the application plugin we just build and overried the fillCoolBar(). Like how we write code into fillMenuBar() I would expect to just take the coolBar object and add the action that was created in the makeActions to the coolBar.

But surprisingly that doesnt work. I was amazed and had to reach out to google to figure out why wasnt it working. Then someone pointed that only a toolbarcontributionitem can be added to the toolbar and recommended to look at the Mail RCP that is generated thru the PDE Templates for further information.

I did that out of curiosity and found this code which works.

Then I also understood the background of why I need to create a toolbar in org.eclipse.ui.menus before I can show something on the toolbar.

by Its_Me_Malai (noreply@blogger.com) at April 17, 2015 01:00 PM

Interview with InfoQ on the Internet of Things at Eclipse

by Benjamin Cabé at April 16, 2015 03:21 PM


At EclipseCon 2015, I spoke with Alex Blewitt from InfoQ, and gave an update on the cool stuff happening at Eclipse IoT. It is hard to believe that it is only two years since my last interview with Alex – so many new projects and companies involved today!

Check out the interview here.

by Benjamin Cabé at April 16, 2015 03:21 PM

Andmore 0.5-M1 RC2

by kingargyle at April 16, 2015 01:55 PM

Release Candidate 2 is available for smoke testing.   This is mainly some spit and polish to remove the Andmore name from the menus and views, and replace them with more generic labels where it makes sense.


Just add the above to your Install Software, and select the Andmore features to install.  Note that if you have existing ADT projects that you want to work with Andmore, you will need to Configure those to work with the new tooling.  To do so select a project, Configure->Convert ADT project.

If no new big show stoppers are reported by next week, we will do a formal 0.5-M1 announcement with complete change log.

by kingargyle at April 16, 2015 01:55 PM

Reproducible Builds with Docker

by Ian Bull at April 15, 2015 10:52 PM

Wiki’s and Readme files are the most common ways to document a build. While documenting a build is better than not documenting it, Wikis and Readme files have two flaws when used to describe a process: 1) they require humans to read them, and 2) they evolve.

Of course the fact that Wikis evolve is often seen as their biggest strength. However, when trying to reproduce an out-of-date process, up-to-date Wikis are of little help. For example, building J2V8 first requires V8 binaries, and not just any version of V8 either. J2V8 requires V8 version 3.26. Building V8 has changed significantly since 3.26 and the documentation has evolved over time. Finding an accurate set of build instructions — and all the dependencies for V8 3.26 – is a challenge even Stack Overflow can’t help with. Sometimes the documentation was tagged with the release, but setting up a system as it was last year is no easy task. Luckily when we first started this, we recorded the V8 build instructions as a Dockerfile.

docker Reproducible Builds with Docker

By recording a build as a Dockerfile anyone can build your software with a single command. By checking the Dockerfile into your git repository, the build steps for a particular version can be archived forever.

A Dockerfile not only describes the build steps, but also describes the system image required to build the software. This includes toolchain & their versions, libraries, environment variables and even the disk layout.

To experiment with this, clone the J2v8 repository from github and execute docker build from within the v8build directory:

% git clone https://github.com/eclipsesource/J2V8.git
% docker build --rm=true --no-cache -t "eclipsesource/v8-build" .

To make this even easier, the docker build was wrapped in a script that also copies the artifacts from the docker container once the build is completed using the docker cp command:

% docker cp v8build:/data/v8_3_26/out .

The J2V8 Dockerfile

Let’s review the Dockerfile:

FROM ubuntu:14.04
MAINTAINER EclipseSource 

The first line instructs Docker to use Ubuntu:14.04. While V8 may build fine on newer versions of Ubuntu, the key to these instructions is reproducibility, and we’ve done our testing on Ubuntu 14.04. Unless an explicit decision has been made to upgrade the OS, we will stick with this — feature for feature, bug for bug.

# update and upgrade
RUN apt-get update && apt-get upgrade -y && apt-get clean
# install standard toolset
RUN apt-get install -q -y git subversion make gcc bzip2 python g++ libc6-dev-i386 g++-multilib openjdk-7-jdk

A set of system dependencies are then installed — this includes svn (V8 now uses git, but we are building from their historic repo using their old SVN tags). The -y is used so the system doesn’t prompt us during the build.

ADD http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin ./
RUN chmod a+x android-ndk-r10d-linux-x86_64.bin
RUN ./android-ndk-r10d-linux-x86_64.bin
ENV ANDROID_NDK_ROOT /android-ndk-r10d

The Android NDK is then fetched, extracted and an environment variable is set.

RUN mkdir /data
RUN cd /data && svn checkout http://v8.googlecode.com/svn/branches/3.26 v8_3_26

The build directory is created and V8 3.26 is cloned. A few GCC flags are then set as environment variables.

# Build
RUN cd /data/v8_3_26 && make dependencies
RUN cd /data/v8_3_26 && make native i18nsupport=off
RUN cd /data/v8_3_26 && make android_arm.release i18nsupport=off
RUN cd /data/v8_3_26 && make android_ia32.release i18nsupport=off

Finally the build is performed. Newer versions of V8 don’t use this approach as a new build tool is now used. However, 3.26 built the dependencies as part of make dependencies target. This build will result in linux bits as well as Android ARM and Android x86.

Go ahead and give it a try. You can even build this on MacOS or Windows by first installing boot2docker. If you run the v8Build.sh script, the results will be copied from the container afterwards. Next I’ll document how I do the J2V8 build.

For more Tips and Tricks on Eclipse, Tabris.js and updates about J2V8, follow me on twitter.


5 Comments. Tagged with docker, j2v8, v8, docker, j2v8, v8

by Ian Bull at April 15, 2015 10:52 PM

Mozilla pushes - March 2015

by Kim Moir (noreply@blogger.com) at April 15, 2015 02:18 PM

Here's March 2015's  monthly analysis of the pushes to our Mozilla development trees. You can load the data as an HTML page or as a json file.

The number of pushes increased from those recorded in the previous month with a total of 10943. 

  • 10943 pushes
  • 353 pushes/day (average)
  • Highest number of pushes/day: 579 pushes on Mar 11, 2015
  • 23.18 pushes/hour (highest average)

General Remarks
  • Try keeps on having around 49% of all the pushes
  • The three integration repositories (fx-team, mozilla-inbound and b2g-inbound) account around 26% of all the pushes.

  • August 2014 was the month with most pushes (13090  pushes)
  • August 2014 had the highest pushes/day average with 422 pushes/day
  • July 2014 had the highest average of "pushes-per-hour" with 23.51 pushes/hour
  • October 8, 2014 had the highest number of pushes in one day with 715 pushes 

by Kim Moir (noreply@blogger.com) at April 15, 2015 02:18 PM

LiClipse 2.0 released (Nim, Go and Jinja2 supported!)

by Fabio Zadrozny (noreply@blogger.com) at April 15, 2015 11:16 AM

LiClipse just turned 2.0 -- along with PyDev 4.0 :)

The main highlights for this release are: Nim, Go and Jinja2 are now supported.

Multi-page editors (such as the plugins manifest editor) now also have multiple cursors and vertical indent guides support.

The JavaScript editor had improvements in the syntax highlighting and its code-formatting settings can now be tweaked (http://www.liclipse.com/customize_javascript.html has more details).

Different jshint.js and beautify.js files may be specified in preferences > LiClipse > JavaScript.

From this release onwards, besides providing standalone binaries and a downloadable update site, LiClipse provides an actual online update site: http://update.liclipse.com/latest -- note that I still recommend users to use the standalone as it's easier to get started and it also provides updates to the underlying eclipse SDK, but the update site is now available if you have a working Eclipse version which you don't want to change.

This was also the first time where I transferred some technology from LiClipse to Eclipse (to make improvements so that the trees in the dark theme in Eclipse on Windows actually have arrows you can work with: https://bugs.eclipse.org/bugs/show_bug.cgi?id=434201 -- and hopefully I'll still be able to make time to integrate another one to improve the selections on trees/tables for the next Eclipse release: https://bugs.eclipse.org/bugs/show_bug.cgi?id=434309).

A note for existing users: a renew license currently has a 50% discount over the price of a full license http://www.liclipse.com/buy.html -- thank you for helping in keeping LiClipse going strong!

by Fabio Zadrozny (noreply@blogger.com) at April 15, 2015 11:16 AM

Refine diagrams with interpolated colors

by Steve Monnier at April 15, 2015 08:32 AM

This article is part 4 of a series covering cool features of Sirius and tips to create advanced modelers. See http://melb.enix.org/category/sirius/ for the complete series.

Today we will present how diagrams can be refined to display information using interpolated colors.

Diagrams with meaningful colors

In your Viewpoint Specification Model (VSM), the specifier is not limited to use the provided colors but can define a palette with custom colors. A color can be defined using a RGB code (Red/Green/Blue).

However, using this new color in a mapping will paint every mapping candidates to this color. As our goal is giving colors a meaning, it needs to be defined by an expression. Sirius provides two solutions: Computed Colors and Interpolated Colors.

Note that RGB codes are defined with three integer values between 0 and 255. If the value is over 255, Sirius will use it as a 255 value.

Diagrams with computed colors

Computed colors are alike RGB Colors but instead of choosing an int value for the Red/Green/Blue fields, an expression will be given.

On this sample the color is computed depending on the depth of the package to represent. As this information is far from a RGB value transposition, the expressions are unfortunately not really natural to write. The Interpolated Colors will offer a more natural conversion.

Diagrams with interpolated colors

An Interpolated Color is defined by an expression and several Color Steps. The expression should return an integer value. Here is an example where the expression calculate the depth of the current element using the ancestors() service.

A Color Step is the association of a color and an integer value. Note that the color selection is not limited by the provided color, but can also be a custom color. In this sample, the selected colors are RGB Colors.

Depending on the return value of the expression, a color will be created between the defined Color Steps. As close the return value is of a Color Step, as close the result color will be to this Color Step.

On the previous example, the interpolated was used in order to display EPackage element with a graduation of color depending on the depth because both steps where different tint of a similar color. Of course, the Color Steps can be of different colors and the number of steps is not limited.
On the next example, we want to present the EPackage again but this time the yellow color graduation will depend on the number of contained EClasses. Moreover, we decide that for future refactoring/cleaning purpose, the empty EPackage should be white. Furthermore, the recommended EPackage size is between one and eight EClasses and should be displayed yellow with a tint darker the more contained EClasses there are. Twelve or more EClasses is seen as too many and should be displayed as red. To represent this as an Interpolated Color we have:

  • An expression computing the contained Eclasses number: [eContents()->filter(EClass)->size()/];
  • A first color step defined as white for value 0;
  • A second color step defined as light yellow for value 1;
  • A third color step defined as dark yellow for value 8;
  • A fourth color step defined as red for value 12.

On this sample:

  • p1121 and p1123 are empty and displayed as white;
  • p112 has 1 EClass and is displayed as light yellow;
  • p1 has 3 EClasses and is displayed as a slightly darker yellow;
  • p111 has 8 EClasses and is displayed as dark yellow;
  • p1122 has 10 EClasses and is displayed some kind of orange/brown as a result of beeing a mix of dark yellow and red;
  • p12 has 16 EClasses and is displayed as red.

Interpolated colors are an easy way to display meaningful information and an alternative from text display. Furthermore it can produce beautiful diagrams using nice colors that can be created using simple tools like www.colourlovers.com or colourco.de.

The sample code from this example is available on github: https://github.com/mbats/sirius-blog/tree/master/interpolated-colors

by Steve Monnier at April 15, 2015 08:32 AM

Devoxx France 2015 – Building the Internet of Things with Eclipse IoT

by Benjamin Cabé at April 14, 2015 12:50 PM

Last week I gave a presentation at Devoxx and shared the floor with my esteemed colleague Wayne Beaton. While he covered some of the very cool feature being baked into the Eclipse IDE for the upcoming Mars release, I did talk about the Eclipse IoT technology portfolio, in particular what is available for Java Developers.

Check out the slides below, and expect the video recording to be made available shortly on Parleys, too.

by Benjamin Cabé at April 14, 2015 12:50 PM

Open IoT Challenge: Winners announced

April 14, 2015 08:48 AM

This has been a difficult call, but we are happy to finally be able to announce the three winners of our Open IoT Challenge!

April 14, 2015 08:48 AM

Screenshot of the Week: Markdown Editor

by waynebeaton at April 13, 2015 04:25 PM

You can edit Markdown, along with other types of wiki markup, directly in Eclipse. Here’s a screenshot of the Markdown editor in action:

Edit Markdown directly in Eclipse

Edit Markdown directly in Eclipse

Note the “Preview” tab which will show you what the page looks when rendered.

This support is provided by the Mylyn Docs project’s WikiText component. You can also edit Confluence, MediaWiki, Textile, TracWiki, and TWiki formats. There’s a patch in the works to add AsciiDoc support as well.

WikiText is included in the Eclipse IDE for Java Developers and other packages.

by waynebeaton at April 13, 2015 04:25 PM

Collaborative Modeling with Papyrus, EMF Compare and EGit

by Maximilian Koegel and Jonas Helming at April 13, 2015 10:04 AM

The collaborative modeling initiative is a joint effort in providing a high-quality, open-source tool that supports efficient collaboration and teamwork on EMF-based and Papyrus UML models. To achieve this we will leverage model comparison as well as merge functionality based on EMF Compare and distributed model versioning support based on EGit.

Important questions in this regard are, of course, how does a simple workflow of collaborative modeling look and how does it work in the actual tools? We try to answer these questions in a video tutorial including explanations of basic git concepts that are important for the workflow.

If you are interested in this initiative, follow us on Google+, get more information on the web page or contact us for more information!


Leave a Comment. Tagged with egit, emf, EMF Compare, Papyrus, egit, emf, EMF Compare, Papyrus

by Maximilian Koegel and Jonas Helming at April 13, 2015 10:04 AM

Little trick with SWTBotTree manipulation if it returns an IllegalArgumentException

by aurelien.pupier at April 13, 2015 08:02 AM

I came across a strange issue with manipulating SWTBotTree, and it took me few hours to find a workaround. I found no exact match with my issue during my research, so let's keep a trace here while waiting for a better understanding of the issue and a fix in SWTBot.

The issue

In a SWTBot Test, calls to SWTBotTreeItem.contextMenu() or SWTBotTreeItem.select() might lead to the following exception:

  1. Caused by: java.lang.IllegalArgumentException: Argument not valid
  2. at org.eclipse.swt.SWT.error(SWT.java:4422)
  3. at org.eclipse.swt.SWT.error(SWT.java:4356)
  4. at org.eclipse.swt.SWT.error(SWT.java:4327)
  5. at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
  6. at org.eclipse.swt.widgets.Tree.setSelection(Tree.java:4986)
  7. at org.eclipse.swt.widgets.Tree.setSelection(Tree.java:4948)
  8. at org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem$10.run(SWTBotTreeItem.java:362)
  9. at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$4.doRun(UIThreadRunnable.java:196)
  10. at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89)

Quite an obscure message... what is happening? How can I solve my issue?

The workaround

Easily applicable - but hard to guess - the workaround consists of simply calling SWTBotTree.setFocus() before manipulating the SWTBotTree. For instance:

  1. final SWTBotTree tree = bot.tree();
  2. tree.setFocus();
  3. final SWTBotTreeItem cssNodeFile = tree.expandNode("application", "css", "bonita_form_confirm.css");
  4. cssNodeFile.contextMenu("Open").click();

Technical details

If we look closer in Tree.setSelection method , the exception is due to a disposed TreeItem:

  1. TreeItem item = items [0];
  2. if (item != null) {
  3. if (item.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
  4. ...
  5. }

The thing which is strange is that the SWTBotTreeItem is calling setFocus before calling the setSelection, as you can see here in SWTBotTreeItem.select():

  1. public SWTBotTreeItem select() {
  2. assertEnabled();
  3. syncExec(new VoidResult() {
  4. public void run() {
  5. tree.setFocus();
  6. tree.setSelection(widget);
  7. }
  8. });
  9. notifySelect();
  10. return this;
  11. }

If someone understands the issue better than me, please share your ideas in the bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=458975

by aurelien.pupier at April 13, 2015 08:02 AM