Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eclipse look & feel customization

I need to customize the look & feel of my RCP application.

I took a look at Eclipse Presentation API and I suppose it allows to customize everything 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 great if some 'skin' framework exists for SWT.

like image 682
Viktor Stolbin Avatar asked May 12 '11 12:05

Viktor Stolbin


People also ask

How does eclipse look like?

During a total lunar eclipse, the lunar surface turns a rusty red color, earning the nickname "blood moon". The eerie red appearance is caused by sunlight interacting with Earth's atmosphere. When sunlight reaches Earth, our atmosphere scatters and filters different wavelengths.

What does eclipse look like from Moon?

But what does it look like from the Moon? Well, if you were standing there, looking around, you'd see it grow darker, the landscape around you enshrouded in shadow. That magnificent sight is the Sun being eclipsed by the Earth as seen from the Moon.

What does it look like during a solar eclipse?

Suddenly the sky is dark, but if you look toward the horizon you will see a reddish glow which looks like a Sunset. Once the Sun is totally eclipsed, the Sun's corona can be seen shining in all directions around the Moon.


2 Answers

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

org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false

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.

like image 183
Sandman Avatar answered Dec 09 '22 17:12

Sandman


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.

like image 34
Paul Webster Avatar answered Dec 09 '22 18:12

Paul Webster