EclipseRT in Indigo Release Train: Riena and RAP
Eclipse is more than an IDE – a fact that should have got around by now. Projects under the umbrella of Eclipse Runtime (RT) are becoming more and more important. It all started with Eclipse Rich Client Platform (RCP). RCP enabled developers to use Eclipse as a base for business applications and more. In this article, we look at what's new in the Indigo Release (Eclipse 3.7)
Eclipse Riena published Version 3.0
Eclipse Riena started 2 years ago, first as part of the Galileo Release Train. Riena code was brought to Eclipse by Compeople, based on their experiences with a Swing Smart Client. Over the last two years Riena has made many friends and if you read my blogs , then you know that I'm one of them ;-)
Riena makes it possible for Eclipse RCP applications to not look like Eclipse RCP applications. Eclipse as IDE is powerful and developers can configure the views and perspectives to fit their individual requirements. But when working with business applications, this freedom can be very confusing for a typical user. It's a common case that a business user of an Eclipse RCP application closes all views without knowing how to get them back. The Riena team analyzed the behaviour and wishes of business application users and tries to resolve this. With Riena it's possible to develop an easy to use and intuitive application. Also, Riena can be customized very easily. If you're developing Business applications you should definitely take a look at Riena.
Riena isn't only a standalone client application, but also contains server components, takes care of security requirements and makes apps easy to develop. UI and Controller are separated, SWT Widgets are provided as Riena Ridgets. Ridgets are focused on Business applications: validation, required fields or marker support are included from the beginning.
What's new with Riena in Indigo?
Look and Feel (LnF) extensions
Look and Feel (LnF) is an important part of Riena. Using LnfKeyConstants you can customize fonts, colors, backgrounds and much more.
Making up the 3.0 release, are some more LnF features:
NAVIGATION_SCROLL_BAR: do you want to use a vertical scrollbar besides the navigation area ?
ROW_ERROR_MARKER_BORDER_THICKNESS how thick should the border be around an error-field ? An alternate way would be using a small decorator icon.
MODULE_GROUP_xx_BORDER_COLOR (xx = ACTIVE, PASSIVE, DISABLED) defines the border color around a module group depending on their state.
When using Riena 3.0, even boring views like dialog messages can be customized using LnF.
Business applications building set
You can imagine a Riena app like a building set: define the application, sub-applications for different domains, module groups, modules and views. You can do this programmatically or configure Eclipse Extension Points, but configuration like this is painful and not easy to test if you have to launch a runtime application to do this.
Riena Toolbox – available since 2.0 – makes this easy and was enhanced to be more comfortable in 3.0. Riena Toolbox provides an AssemblyEditor:
This Assembly Editor is a graphical UI to define all the required Extension Points and also generates source code for Views, Controller etc.
New in Riena 3.0, is the Previewer:
Riena views are SWT views, and normaly you have to start the application to see how the app you've developed looks. Using the Previewer, an option-click from your code opens the preview – this also works with default SWT composites.
RCP and Web == RAP
Classic desktop applications still make sense in the context of enterprise applications – but sometimes you also need to provide web applications. If you already have code from an existing RCP application you want to reuse this. That's why RAP exists – RAP is also part of Eclipse RT.
Riena 3.0 makes it possible for you to run your Riena RCP applications as Riena RAP applications inside a browser. The Riena team did a great job to make development and launching easy for you. Riena can even run on the iPad:
Now it's time to take a look at our second EclipseRT project: RAP. The RAP Team has worked hard last year and now RAP 1.4 is available as part of Indigo. A RAP web application shouldn't look like an Eclipse RCP (SWT) application, and so the RAP team makes it look better with each iteration. Sometimes small enhancements make the difference. RAP uses css3 to define the styling and now you can define shadows.
Since M5, RAP 1.4 allows the use of JFace Key Bindings API – this makes working with RAP much more comfortable for the user. Only the first line of code is different from RCP:
There was also much work to create better looking UI components. Trees can be TableTrees now and ListItems can have backgrounds or gradients:
Tooling has also made a leap forward: now it's easy to define a specific RAP / RWT launch configuration. If you tried RAP in the past and got the feeling that it's hard to maintain: give it a second try using Eclipse Indigo and RAP 1.4.
There's a new project part of Indigo Release Train from Eclipse RT: Eclipse Scout. Scout also promises to simplify the development of business applications. You will soon find an interview with the Scout-Project leads here at JAXenter.
All those RCP / RAP projects need to run on a solid base. This is guaranteed by Equinox – the Eclipse OSGi implementation. Also you have to persist the data and perhaps use HTTP or servlets. Part 3 of my Indigo highlights will take a look at these Runtime projects.
Check out part one of Ekkehard Gentz's Indigo highlights for more info on the Eclipse release.