I just happily upgraded to 1.1.0 from 1.0.7. Only one thing I noticed. The border color of the tabs is now black (on Windows XP at least). It used to be a system color that is also used by the real eclipse application which looked a lot nicer. I was able to revert back to the original color by setting
dockingControl.getController().getColors().put(Priority.CLIENT, "stack.border", SystemColor.controlShadow);
See the attachmed picture to see what I mean.
On some systems the border was almost invisible because of the color, that is the reason why I changed it.
I could add some code to check the color, and take black only if the border would be invisible otherwise. But that feature won’t have a very high priority.
Thanks for the reply. So did I guess the original color correctly? Where are those properties actually defined?
I haven’t the old version at hand, but your guess seems correct. It has to be some of the shadow colors.
The colors wander through many objects:
- Some basic colors are defined in a „LookAndFeelColors“ which is registered at a DockUI.
- The EclipseColorScheme asks the DockUI for the basic colors, its the first object that defines the key „stack.border.color“.
- The contents of the current ColorScheme are then forwarded by the ColorManager to the components that need them.
- These components using the colors are of type „DockColor“, and a „ColorBridge“ may change any color before it is used. But that is maybe not important for you
Your solution is quite valid, you exactly use the ColorManager they way it was intended to be used. Another way would be to define your own subclass of an EclipseColorScheme and install it using the property key „EclipseTheme.ECLIPSE_COLOR_SCHEME“. If you override the „updateUI“ method you could even react to changes in the LookAndFeel.