Take the 2-minute tour ×

I need to customize look&feel of my RCP application. I took a look at Eclipse Presentation API and I suppose it allows to customize everithing in workbench except controls. So is there any solution to customize controls? I made some research work and implemented some ad-hoc SWT cunstomization using control canvas drawning. May be there are better solutions? In SWING you can use Synth theme. It would be geatefull if some 'skin' framework exists for SWT. Any help would be appreciated!

share|improve this question
add comment

4 Answers

up vote 6 down vote accepted

One way of customizing an RCP app is by using a plugin_customization.ini file. Like this:

  1. Create a new file called "plugin_customization.ini" in the root of your project.
  2. If you have not already done so, create a product configuration and define a Product.
  3. In your plugin's manifest editor, on the "Extensions" tab, locate the "org.eclipse.core.runtime.products" extension, expand the node, right click on your product node and select "New > property" from the context menu.
  4. Enter "preferenceCustomization" in the "name" field and "plugin_customization.ini" in the "value" field.
  5. Select "File > Save" from the main menu.

You can then customize a lot of things simply by editing plugin_customization.ini file. For example, adding the following line


will give you rounded tabs on your views and editors (similar to those that Eclipse IDE has) instead of the default ones.
You can find other constants that you can use in IWorkbenchPreferenceConstants javadoc.

Also, check out the Eclipse skins project, if you haven't already.

There is also the possibility to use CSS to change the look & feel of your app, but that is still in development and can be buggy

As for customizing the SWT controls themselves, the only way to do that (apart from small customizations such as changing the background colour of a control etc.) is by creating your own custom controls by extending Canvas or Composite, but you already know that.
Keep in mind that the point of SWT is to use native controls, so if you desire the ability to completely customize your controls, perhaps using Swing would be a better option. However, if you're going to use Swing, it may be better to use another RCP entirely - namely, NetBeans RCP. I haven't tried it out yet, but I know that whereas Eclipse RCP uses SWT as a widget toolkit, NetBeans RCP relies on Swing, so that may save you from some headaches regarding compatibility problems and so on.

share|improve this answer
Thank you for such a comprehensive reply. I prefer Eclipse RCP to NetBeans RCP but in current solution I implement skin support by injection Swing controls into SWT forms. It's a bit tricky and I would like to exclude any Swing dependencies from App. I'll try Eclipse skins project. I think, may be it would be a good idea to implement skin support for SWT controls using some vector rendering? –  Viktor Stolbin May 12 '11 at 14:19
@Viktor Griffo - Glad to help! As I said before - SWT controls are native, they are drawn by the operating system, so there really isn't much that can be done about the way they look at the application layer. You can only customize what the OS allows. For example, you cannot set a background image for a Button on Windows, since that OS does not allow that. –  Sandman May 12 '11 at 14:29
Yes I get it. I used freshmeat.net/projects/rcptoolbox to customize controls. As I suppose those controls implemented on top of customizable Composites and Canvases? –  Viktor Stolbin May 12 '11 at 14:46
@Viktor Griffo - That's right. –  Sandman May 12 '11 at 15:41
add comment

The new Eclipse 4 work contains plugins that allow the L&F to be customized using CSS. These plugins can be run in a 3.7 Eclipse environment. See Kai's blog for a presentation on the subject: http://www.toedter.com/blog/?p=477

The Eclipse 4 Styling Tutorial has a slide (p.66) on where to get an 3.7 based RCP example.

share|improve this answer
I took a look at Eclipse 4 about 10 months ago to decide if it could be used for my project. It looks a bit buggy. CSS styling is a good solution, but I need to implement fully redisined GUI, like Swing Synth allows. –  Viktor Stolbin May 12 '11 at 20:10
add comment

Maybe Qt for SWT could be interesting for you, the project page can be found here

Related blog-post: http://www.compeople.eu/blog/?p=39

share|improve this answer
add comment

Your Answer


