Branding of Eclipse view icons - eclipse

It is possible to change the branding of an Eclipse RCP application with an Eclipse "product". For example, the application icons, splash screen and about box can be changed.
But is it possible to change the icons of other things with some sort of branding mechanism?
It would be of interest to change to icons of the following things:
Views (most important for me!)
Editors
Different kinds of resources (for example, in Project Explorer view)
Toolbar buttons
If it is not possible to change these with some build in branding mechanism, is there any work around? Can this be done programmatically with reasonable effort?

It is possible to locate all brand specific icons to a branding plugin. The icons can then be changed by switching only the branding plugin.
To do this all icons paths must be set to icons in the branding plugin.
This can be achieved using the platform URI scheme in the plugin.xml file. For example:
<view>
...
icon="platform:/plugin/com.app.branding/icons/icon.png"
</view>
Setting icons with platform URI:s is described the answer to this question:
How can I reference an icon from a plugin?

Related

Is there a way to change the default eclipse toolbar icons built into eclipse?

I am talking about the tiny icons on the toolbar.
There doesn't seem to be any questions like this on the web, they all refer to android or a custom application as opposed to the icons bundled with eclipse.
I want to know if anyone has tried this or can tell me that its not worth my time because it is a lot of work.
Cheers.
I don't think this is possible. The standard icons are declared using the org.eclipse.ui.commandImages extension point in the org.eclipse.ui plugin and reference icons in that plugin.
Try Darkest Dark Theme. Also its dev style preview (for more themes). It can change icons as well as have an icon designer integrated in it.

Eclipse RCP: How to programmatically obtain the application window image?

When building an Eclipse RCP application you get to define the window images in the .product and plugin.xml files for the application plugin. These are the images that show up in the upper-left corner of the main application window. But say you want to use this same image in a dialog window that your application might open. How do you get access to this image programmatically?
In my use case I am building two products that only differ in branding elements so I wanted all my dialogs to be consistent and use the same branding image that the main application window uses.
I figured out the answer through some trial and error and failed web searches. Turns out it is as simple as:
shell.setImage(ApplicationWindow.getDefaultImage());
(for completeness, I'm currently developing in Eclipse 3.8. Not sure if this carries forward to Juno/4.X)

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.
One way of customizing an RCP app is by using a plugin_customization.ini file. Like this:
Create a new file called "plugin_customization.ini" in the root of your project.
If you have not already done so, create a product configuration and define a Product.
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.
Enter "preferenceCustomization" in the "name" field and "plugin_customization.ini" in the "value" field.
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.
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.

Eclipse's Package explorer background color follows windows theme. I want to change the color without changing windows' theme. Possible?

Maybe a way to alter the colors locally (as in application dependant)?
A background color of eclipse is white, the same white of windows' active window background color. If I change the color on the theme, eclipse changes to the color.
I want to change this software's color without changing the whole theme (because then every program gets weird colors). Is this possible? I thought that maybe there was a way to apply different windows themes to different programs, or something.
I'm using windows XP, classic windows theme.
Install the "Eclipse 4 Chrome Theme" from
http://marketplace.eclipse.org/content/eclipse-4-chrome-theme
Then you can customize a lot of the Eclipse UI widgets.
But not what you want, at least not out of the box.
For that you should go to the CSS tab (in Eclipse 4 Chrome Theme) and paste this:
Tree, List, Table {
background-color: #202020;
color: #d0d0d0;
}
You can change almost anything, the problem is finding out what, and the fact that some things are bitmaps that you can't change (so if the bitmap is dark and you set a dark background you will "loose" the bitmap)
This list of widgets might help, http://download.eclipse.org/rt/rap/doc/1.5/help/html/reference/theming/index.html but they give you generic info on the widget names, not the Eclipse info (with IDs and all), so be careful :-)
== Very late addition ==
Everything you need in one place, including links to a custom dark theme: http://mihai-nita.net/2013/09/19/dark-eclipse/
Mac Screen Shot Example as of Sept 2013 (please be sure to restart Eclipse after changing file):
Just search "Theme" in the Eclipse Market Place. Install Moonrise. (Should be first option). Then go to the General, appearance, Click on appearance, change theme to moonrise, Then there you go.
Knowing the way the workbench is built, I'm sure your request is not possible on the Eclipse side. You can do this for the editors, because they are StyledText widgets, and you are exposed some preferences to customize these.
The other views are various widgets, some are Trees, some are Text, some are composed from various other widgets. All of them are created with the default constructor which just uses the Windows theme.
I don't know of a way to change every Eclipse window to your color scheme, but I can get you at least as far as changing some of the editing windows...
Open up "Window -> Preferences", then under "General | Editors | Text Editors" you will find a section that will allow you to set the "Appearance color options", Background color is one of those options.
PS: I'm using Eclipse 3.6 (Helios)
Sadly, this is not possible (which is crazy).
However, Aptana Studio (which is an Eclipse derivative) lets you theme the entire IDE.
I did some research and found that actualy it is posible to change all colors, but abit harder.
there are two methods that I found so far.
first since eclipse is using OS themes, you can change your OS background settings, like folder background etc., or just change the whole theme if your using windows, but the downside is that all windowses will be same color, in linux and mac os it is also posible, but in different way, I did read it somewhere, but can't remember where :)
second creating a specific theme for eclipse, for example http://rogerdudler.github.io/eclipse-ui-themes/ or any other theme like google chrome etc.
Install the theme from here as per the instruction in the github:
https:// github.com/guari/eclipse-ui-theme
If you don't like the editor color theme, there are bunch of 'em here
http://eclipsecolorthemes.org/
Combination of both just works like charm for me!

Is there a color picker plugin for Eclipse?

I'm using Eclipse Galileo PDT for my work. I also use it to edit my CSS files.
Is there a plugin that lets me pick a color (from a palette or even anywhere from the screen) and which returns the HEX value of that color into my CSS file?
Jspresso Colors 'n Fonts
Just select any java string literal and right click on it to open the contextual popup menu... then select Jspresso>Choose Color... or select Jspresso>Choose Font...
Supports also tooltip : fly over your string literal to display the current color or font... and activate hyperlink to open the editor popup !
Aptana Studio has really great support for CSS. CSS color picking is easy, you can grab a color from anywhere on the screen.
You can install Aptana as a plug into an existing Eclipse installation.
http://docs.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration
I would recommend to use external software: http://www.colorschemer.com/online.html
You can integrate it into Eclipse.
I have used this plugin called colors in both Galymeade and I just dropped into Galileo.
http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1281.html you can copy the color code to/from clipboard or editor. Slider bar for coloring, color picker etc. I used it to edit css files on a recent project. Good Luck.
You might want to check out the second example at http://eclipsescript.org/#example-scripts.
I created a Groovy Monkey script that opens Eclipse's color picker. It was inspired by what fornwall pointed at (second example of Eclipse Script plugin). It's also able to recognize if current selection is a color so it can be selected it in the picker.
The script is on gist.github, instructions included.
Having a shortcut key for a script is not (yet?) possible in Groovy Monkey, but Crtl+Alt+M runs the last executed script.
A good plugin to consider is the Designerator Color Plugin from the Designerator project. It contributes a Colors view as explained in this blog post. No need to install the whole software, the color view is in a separate feature that can be installed by itself.
The Sampler plugin could also be of interest. However it does not show a color picker dialog where one can select a color, it only has the color picker tool for selecting a color from the screen.
There are a few plugins at the Eclipse plugins site that might meet your needs.
CSS Designer looks promising:
JointLogic CSS Designer is an Eclipse plugin that provides CSS authoring facilities like - CSS Styles view, CSS declaration designer with preview and web-oriented color picker. It integrates with Eclipse Web Tools Platform (WTP) to allow CSS authoring while editing CSS and HTML files.
Here's a screesnhot from the homepage: