Package org.eclipse.ui.forms
Class FormColors
- java.lang.Object
-
- org.eclipse.ui.forms.FormColors
-
public class FormColors extends Object
Manages colors that will be applied to forms and form widgets. The colors are chosen to make the widgets look correct in the editor area. If a different set of colors is needed, subclass this class and override 'initialize' and/or 'initializeColors'.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description protected Color
background
protected Color
border
static String
BORDER
Deprecated.useIFormColors.BORDER
protected Map<String,Color>
colorRegistry
protected Display
display
protected Color
foreground
static String
SEPARATOR
Deprecated.useIFormColors.SEPARATOR
.static String
TB_BG
Deprecated.useIFormColors.TB_BG
static String
TB_BORDER
Deprecated.useIFormColors.TB_BORDER
.static String
TB_FG
Deprecated.useIFormColors.TB_FG
static String
TB_GBG
Deprecated.useIFormColors.TB_GBG
static String
TB_TOGGLE
Deprecated.useIFormColors.TB_TOGGLE
.static String
TB_TOGGLE_HOVER
Deprecated.useIFormColors.TB_TOGGLE_HOVER
.static String
TITLE
Deprecated.useIFormColors.TITLE
.
-
Constructor Summary
Constructors Constructor Description FormColors(Display display)
Creates form colors using the provided display.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RGB
blend(RGB c1, RGB c2, int ratio)
Blends c1 and c2 based in the provided ratio.Color
createColor(String key, int r, int g, int b)
Creates the color for the specified key using the provided RGB values.Color
createColor(String key, RGB rgb)
Creates the color for the specified key using the provided RGB object.void
dispose()
Disposes all the colors in the registry.Color
getBackground()
Returns the current background color.Color
getBorderColor()
Returns the computed border color.Color
getColor(String key)
Returns the color object for the provided key or null if not in the registry.Display
getDisplay()
Returns the display used to create colors.Color
getForeground()
Returns the current foreground color.Color
getInactiveBackground()
Creates a color that can be used for areas of the form that is inactive.RGB
getSystemColor(int code)
Returns the RGB value of the system color represented by the code argument, as defined inSWT
class.protected void
initialize()
Initializes the colors.protected void
initializeColorTable()
Allocates colors for the following keys: BORDER, SEPARATOR and TITLE.protected void
initializeFormHeaderColors()
Allocates additional colors for the form header, namely background gradients, bottom separator keylines and DND highlights.void
initializeSectionToolBarColors()
Allocates colors for the section tool bar (all the keys that start with TB).boolean
isShared()
Tests if the colors are shared.boolean
isWhiteBackground()
Tests if the background is white.void
markShared()
Marks the colors shared.void
setBackground(Color bg)
Sets the background color.void
setForeground(Color fg)
Sets the foreground color.static boolean
testAnyPrimaryColor(RGB rgb, int from, int to)
Tests the source RGB for range.static boolean
testTwoPrimaryColors(RGB rgb, int from, int to)
Tests the source RGB for range.protected void
updateBorderColor()
Computes the border color relative to the background.
-
-
-
Field Detail
-
TITLE
@Deprecated public static final String TITLE
Deprecated.useIFormColors.TITLE
.Key for the form title foreground color.- See Also:
- Constant Field Values
-
BORDER
@Deprecated public static final String BORDER
Deprecated.useIFormColors.BORDER
Key for the tree/table border color.- See Also:
- Constant Field Values
-
SEPARATOR
@Deprecated public static final String SEPARATOR
Deprecated.useIFormColors.SEPARATOR
.Key for the section separator color.- See Also:
- Constant Field Values
-
TB_BG
@Deprecated public static final String TB_BG
Deprecated.useIFormColors.TB_BG
Key for the section title bar background.- See Also:
- Constant Field Values
-
TB_FG
@Deprecated public static final String TB_FG
Deprecated.useIFormColors.TB_FG
Key for the section title bar foreground.- See Also:
- Constant Field Values
-
TB_GBG
@Deprecated public static final String TB_GBG
Deprecated.useIFormColors.TB_GBG
Key for the section title bar gradient.- See Also:
- Constant Field Values
-
TB_BORDER
@Deprecated public static final String TB_BORDER
Deprecated.useIFormColors.TB_BORDER
.Key for the section title bar border.- See Also:
- Constant Field Values
-
TB_TOGGLE
@Deprecated public static final String TB_TOGGLE
Deprecated.useIFormColors.TB_TOGGLE
.Key for the section toggle color. Since 3.1, this color is used for all section styles.- See Also:
- Constant Field Values
-
TB_TOGGLE_HOVER
@Deprecated public static final String TB_TOGGLE_HOVER
Deprecated.useIFormColors.TB_TOGGLE_HOVER
.Key for the section toggle hover color.- Since:
- 3.1
- See Also:
- Constant Field Values
-
background
protected Color background
-
foreground
protected Color foreground
-
display
protected Display display
-
border
protected Color border
-
-
Constructor Detail
-
FormColors
public FormColors(Display display)
Creates form colors using the provided display.- Parameters:
display
- the display to use
-
-
Method Detail
-
getDisplay
public Display getDisplay()
Returns the display used to create colors.- Returns:
- the display
-
initialize
protected void initialize()
Initializes the colors. Subclasses can override this method to change the way colors are created. Alternatively, only the color table can be modified by overridinginitializeColorTable()
.- See Also:
initializeColorTable()
-
initializeColorTable
protected void initializeColorTable()
Allocates colors for the following keys: BORDER, SEPARATOR and TITLE. Subclasses can override to allocate these colors differently.
-
initializeSectionToolBarColors
public void initializeSectionToolBarColors()
Allocates colors for the section tool bar (all the keys that start with TB). Since these colors are only needed when TITLE_BAR style is used with the Section widget, they are not needed all the time and are allocated on demand. Consequently, this method will do nothing if the colors have been already initialized. Call this method prior to using colors with the TB keys to ensure they are available.
-
initializeFormHeaderColors
protected void initializeFormHeaderColors()
Allocates additional colors for the form header, namely background gradients, bottom separator keylines and DND highlights. Since these colors are only needed for clients that want to use these particular style of header rendering, they are not needed all the time and are allocated on demand. Consequently, this method will do nothing if the colors have been already initialized. Call this method prior to using color keys with the H_ prefix to ensure they are available.- Since:
- 3.3
-
getSystemColor
public RGB getSystemColor(int code)
Returns the RGB value of the system color represented by the code argument, as defined inSWT
class.- Parameters:
code
- the system color constant as defined inSWT
class.- Returns:
- the RGB value of the system color
-
createColor
public Color createColor(String key, RGB rgb)
Creates the color for the specified key using the provided RGB object. The color object will be returned and also put into the registry. When the class is disposed, the color will be disposed with it.- Parameters:
key
- the unique color keyrgb
- the RGB object- Returns:
- the allocated color object
-
getInactiveBackground
public Color getInactiveBackground()
Creates a color that can be used for areas of the form that is inactive. These areas can contain images, links, controls and other content but are considered auxilliary to the main content area.The color should not be disposed because it is managed by this class.
- Returns:
- the inactive form color
- Since:
- 3.1
-
createColor
public Color createColor(String key, int r, int g, int b)
Creates the color for the specified key using the provided RGB values. The color object will be returned and also put into the registry. If there is already another color object under the same key in the registry, the existing object will be disposed. When the class is disposed, the color will be disposed with it.- Parameters:
key
- the unique color keyr
- red valueg
- green valueb
- blue value- Returns:
- the allocated color object
-
updateBorderColor
protected void updateBorderColor()
Computes the border color relative to the background. Allocated border color is designed to work well with white. Otherwise, standard widget background color will be used.
-
setBackground
public void setBackground(Color bg)
Sets the background color. All the toolkits that use this class will share the same background.- Parameters:
bg
- background color
-
setForeground
public void setForeground(Color fg)
Sets the foreground color. All the toolkits that use this class will share the same foreground.- Parameters:
fg
- foreground color
-
getBackground
public Color getBackground()
Returns the current background color.- Returns:
- the background color
-
getForeground
public Color getForeground()
Returns the current foreground color.- Returns:
- the foreground color
-
getBorderColor
public Color getBorderColor()
Returns the computed border color. Border color depends on the background and is recomputed whenever the background changes.- Returns:
- the current border color
-
isWhiteBackground
public boolean isWhiteBackground()
Tests if the background is white. White background has RGB value 255,255,255.- Returns:
- true if background is white, false otherwise.
-
getColor
public Color getColor(String key)
Returns the color object for the provided key or null if not in the registry.- Parameters:
key
- the color key- Returns:
- color object if found, or null if not.
-
dispose
public void dispose()
Disposes all the colors in the registry.
-
markShared
public void markShared()
Marks the colors shared. This prevents toolkits that share this object from disposing it.
-
isShared
public boolean isShared()
Tests if the colors are shared.- Returns:
true
if shared,false
otherwise.
-
blend
public static RGB blend(RGB c1, RGB c2, int ratio)
Blends c1 and c2 based in the provided ratio.- Parameters:
c1
- first colorc2
- second colorratio
- percentage of the first color in the blend (0-100)- Returns:
- the RGB value of the blended color
- Since:
- 3.1
-
testAnyPrimaryColor
public static boolean testAnyPrimaryColor(RGB rgb, int from, int to)
Tests the source RGB for range.- Parameters:
rgb
- the tested RGBfrom
- range start (excluding the value itself)to
- range end (excluding the value itself)- Returns:
true
if at least one of the primary colors in the source RGB are within the provided range,false
otherwise.- Since:
- 3.1
-
testTwoPrimaryColors
public static boolean testTwoPrimaryColors(RGB rgb, int from, int to)
Tests the source RGB for range.- Parameters:
rgb
- the tested RGBfrom
- range start (excluding the value itself)to
- range end (excluding the value itself)- Returns:
true
if at least two of the primary colors in the source RGB are within the provided range,false
otherwise.- Since:
- 3.1
-
-