Did you know about the Nebula project at Eclipse? If not, you should… Nebula is a source for custom SWT widgets and other UI components:

Nebula also acts as an incubator for the SWT project at Eclipse. Here’s the list of widgets in Nebula so far:
But wait, there’s more! Tom Schindl, the new Nebula project co-lead, sent out an email detailing some new Nebula contributions on the horizon:
- Office Ribbon from Emil Crumhorn (Provides a Microsoft Office like Ribbon)
- Rich-Texteditor from Pavel Petrochenko (Provides HTML-Editing-Facilities)
- RadioGroup/RadioItem from Matthew Hall (Provides a List-like Group-Widget)
- XViewer from OSEE (Provides a fancy framework around SWT-Table/Tree)
If you have any widgets you have developed personally and would like to see them used elsewhere, why not consider donating them to the Nebula project?
Tags: nebula, swt
I stumbled across this university research project on the Eclipse newsgroups today that does something pretty gnarly. Have you ever hacked some Java code in Eclipse only to bring up the code completion prompt in Eclipse to be presented with a ton of options?

Didn’t you wish that Eclipse could just read your mind and show you the most likely proposals? Well, it looks like the researchers from TU Darmstadt are attempting to do that:

Kind of cool huh?
I’m constantly amazed at the work students produce inside the Eclipse ecosystem. Another example that comes to mind is the Mylyn is the Mylyn project. It started out as a university research project… which turned into an Eclipse project… which eventually seeded a successful startup company, Tasktop. What other open source ecosystems are conducive to that type of transition?
Any other people from universities out there doing some cool stuff with Eclipse?
Also if you have the time, why not support some students with some cool Google Summer of Code (GSOC) 2009 project ideas? GSOC is right around the corner and students would appreciate some project ideas and support from Eclipse committers!
Tags: research
EclipseCon is less than three weeks away. Everyone I talk to or work with is either finalizing work on M6 or working on EclipseCon presentations. I’m surely biased but the program this year is arguably the best ever. Especially if you are a runtime type. There are quite a number of talks on Equinox, p2, RAP, ECF, PDE, g-Eclipse and more.
What is really great is the number of joint talks and joint efforts around talks. Most of the 25 or so talks involving the EclipseSource team are joint with other committers from other companies. We’ve got the RAP guys working with the BIRT guys, the multi-national ECF team is using examples from the Runtime (r)evolution talk and I’ve been working with the EMF, Teneo and EclipseLink folks on some shared reusable demoware. The g-Eclipse guys are in on the game showing you how to do Equinox on the cloud. Of course, we are using the RFC 119 Distributed Services implementation from ECF wherever we can.
This should make for really informative and interesting talks that cover a wider range of the technologies that impact you.
I am particularly pumped that even in these hard financial times so many committers are still able to make it. EclipseSource is managing to send more than a dozen people and many others are gathering from their scarce resources to make sure they attend. Clearly EclipseCon is a must this year. Have you registered yet?

Tags: eclipsecon
A good portion of the EclipseSource technical team use MacBook Pro’s for their development machines. We are doing our best helping the SWT team in testing the Cocoa port. As the Eclipse 3.5M6 milestone gets closer, the SWT team is converging on finishing the Cocoa port which just has me thrilled! It should have you thrilled too, because you can finally do things like use Java 1.6 in your projects! If you have any projects or products that run on the Mac, you should consider testing out the Cocoa port now so the SWT team has time to react. In particular, Kevin Barnes has been helpful in testing out some of the popular RCP applications (i.e., XMind, RSSOwl) on Cocoa to see how they perform. Feel free to catch him on Twitter, he’s really responsive to SWT Cocoa related questions (especially when you bring stacktraces)!

On a funny side note, Jeff McAffer recently got a new shiny MacBook Pro. As someone who was used to the first painful week of using a Mac, here are some quotes I’d like to share describing the conversion process:
“!@#$%^& mouse acceleration, how do I turn it off!”
“!@#$, where’s the print screen key?”
“seriously? four !@#$%^& modifier keys?”
“!@#$, does delete mean backspace or !@#$”
Anyone else have some good quotes from their first experience with a Mac
?
Tags: swt
Riena 1.1.0 Milestone 5 shipped today (download).
Since the 1.0 release a month ago we Riena committers have been busy with several new features:
- Riena is now based on Eclipse 3.5 and joined the Galileo Release Train.
- The Look-and-Feel subsystem can now apply settings to ViewParts as well. To enable this behavior you need to set the system property ‘riena.lnf.update.view’ to ‘true’. By they way, the LnF subsystem provides means to automatically invoke setters on each widget and/or attach renderers (=painting) to them. More info about LnF on the wiki.
- The CompositeTableRidget allows creating tables with several ridgets in each row. It’s based on the CompositeTable widget from the Nebula project. Thanks Nebula – this rocks!

CompositeTableRidget
ICompositeTableRidget ridget;
WritableList input = new WritableList(PersonFactory.createPersonList(), Person.class);
ridget.bindToModel(input, Person.class, RowRidget.class);
(full snippet)
- The MasterDetailsRidget automatically binds the selected row of a table to an details area. A prototype is available in M5. Work will continue in M6.

Master Details Ridget
- The ColumnFormatter for TableRidgets allows adjusting the text, icon, color and font of each column.

tableRidget.setColumnFormatter(1, new DateColumnFormatter("MM/dd/yyyy") { //$NON-NLS-1$
protected Date getDate(Object element) {
return ((Holiday) element).getDate();
}
});
tableRidget.bindToModel(new WritableList(createInput(), Holiday.class), Holiday.class, columnPropertyNames, columnHeaders);
(full snippet)
You’ll find more details in the New & Noteworthy.
Kind regards,
Elias.
Tags: eclipse, eclipse ui, riena
For those who have been following the OSGi v4.2 specification revisions lately, hopefully you’re aware that the Declarative Services (DS) portion received some updates. In the 1.1 version of DS, there were these additions:
- name attributes are now optional on references and components (default to the class name)
- activate and deactivate method names on components so you can have POJO components (i.e., no dependency on ComponentContext)
- the ability to activate based on configurations in ConfigurationAdmin (via the configuration-policy attribute)
If people are interested in these additions, I can blog about them in a future post, just let me know. At Eclipse, we have a solid implementation of DS (thanks Prosyst), so solid that we have decided to ship it as part of the Eclipse SDK for the Galileo release this June. As an added bonus, PDE has created some DS tooling to make it easier to craft service component definitions:

With the new tooling, it’s easy to specify your referenced and provided services:

For the people who can’t live without a source view, we have great source editing support:

I’m pleased with the support Eclipse has for DS 1.1 in the Galileo release. I predict that we’ll see a lot more DS usage within the SDK because noone likes to write error prone ServiceTrackers anymore! If you would like to know more about DS, I highly suggest picking up a copy of the new Equinox OSGi book as it has the most indepth chapter on DS I know about. I have been working closely with the book authors and improving the tooling based on their feedback. Also, if you need a lighter introduction to DS, Neil Bartlett has some good introductory articles.
In the end, if you come across any bugs or have suggestions for improvements, please file a bug against PDE with the summary prefix: [ds tooling]. The PDE team takes suggestions seriously and loves feedback, it’s the only way we’ll improve the tooling! Don’t be shy to file bugs!
Tags: equinox, OSGi, pde
Over the past week I have ignored my daughters, gave-up on work, haven’t seem my wife, and managed to create a web-enabled version of Zest. Ok, most of what I said is lie, however, I did manage to create a web-enabled version of Zest while still spending quality time with the family (and getting some “real work” done).
How you ask? The magic of “SWT Browser Edition” in e4. Since e4 is already able to cross compile the Draw2D examples, I thought I would take a shot at producing an e4 Graph Widget based on Zest.
public static void main(String[] args) {
Display d = new Display();
Shell shell = new Shell(d);
shell.setLayout(new FillLayout());
Graph g = new Graph(shell, SWT.NONE);
GraphNode n1 = new GraphNode(g, SWT.NONE, "SWT");
GraphNode n2 = new GraphNode(g, SWT.NONE, "Action Script");
GraphNode n3 = new GraphNode(g, SWT.NONE, "Totally Awesome");
new GraphConnection(g, SWT.NONE, n1, n2);
new GraphConnection(g, SWT.NONE, n2, n3);
new GraphConnection(g, SWT.NONE, n3, n1);
}
Using the SWT -> Action Script cross compiler, I was able to take the Zest widget and build an SWF file for it. I managed to create a small example.

There are a number of outstanding issues (no JFace adapters, no curved lines and some layouts are giving me grief), but it’s a start.
What do you think, should I bring this to e4?
Tags: e4, zest
“A picture is worth a thousand words” – a true story.
The technology for impressive charts and reports already has a name in the mindset of Eclipse enthusiasts – it’s BIRT. But with the growing number of RAP applications in the wild, there is a big demand to integrate such technologies like BIRT into RAP applications. If you want to have nice colorful charts and good looking reports in your RAP application, why don’t you just drop in to the talk of Virgil Dodson and me about integrating BIRT into RAP. It’s not that hard, believe me!
We will give you advice how to avoid some of the common pitfalls and show you the possibilities you have to tweak your reports. Even if you want to single source your application with RCP, you can still use all the existing BIRT features as you know them. If you’re not yet familiar with the features of RAP itself, I think Ralf and Rüdiger would be glad to explain you all the details with hands-on examples in their tutorial on Monday.
It’s going to be a great conference. Register now and we’ll see you there.

Tags: BIRT, eclipsecon, rap, Single Sourcing
EclipseCon is coming up, and to my big suprise the Git BoF got accepted.
Initially, this BoF proposal was just a way to get the ball rolling on distributed version control systems at eclipse. In the recent weeks I have learned that the ball has been rolling for some time already and has gained quite a momentum, especially among the committers – just take a look at the comments on Bug 257706.
I’d like to get all stakeholders involved in the discussion. Denis Roy will be there to represent the technical and infrastructure side of things. Apart from downstream consumers, committers, contributors and potential contributors, it would also be really great to have some members of the legal team and the board present to get as many viewpoints as possible.
I know that git support was put on hold at the board meeting in December. The cited reason was the resource cost to deploy and support yet another VCS. While I can understand that concern, especially after the recent investment in subversion, I think there is another issue to consider: The opportunity cost of not deploying a DVCS in the near future. Contributions from developers are the life blood of any open source project, and as such, it should be as easy as possible to get people involved in the development process. I experienced first hand how cumbersome it can be to work with the current infrastructure. Centralized versioning may be fine for corporate software development, but for a project like Eclipse I fear it results in too many hurdles for developers. That’s why I’m hoping we can really get this off the ground sooner rather than later.
Regarding infrastructure costs, it has been my understanding that the effort to setup a repository is relatively low. Which I guess makes sense since each developer has to have his own repository. A possibility might even be to use a third party provider like github, at least during the transition period.
Another interesting issue is what work flow model to adopt if we decided to support a DVCS. Options include a “lieutenant” style process as practiced by the Linux kernel, or a more traditional approach with a central master repository that committers commit to.
These are some of the issues I’d like to discuss in this BoF. I am absolutely stoked to see this happening and am really looking forward to making some progress on this front. See you all there!
Tags: bof, eclipsecon, git