Class 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
    • 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 overriding initializeColorTable().
        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 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