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 Details

  • Constructor Details

    • FormColors

      public FormColors(Display display)
      Creates form colors using the provided display.
      Parameters:
      display - the display to use
  • Method Details

    • 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 overriding initializeColorTable().
      See Also:
    • 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 in SWT class.
      Parameters:
      code - the system color constant as defined in SWT 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 key
      rgb - 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 key
      r - red value
      g - green value
      b - 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 color
      c2 - second color
      ratio - 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 RGB
      from - 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 RGB
      from - 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