Package generic.theme

Class IconValue

All Implemented Interfaces:
Comparable<ThemeValue<Icon>>

public class IconValue extends ThemeValue<Icon>
A class for storing Icon values that have a String id (e.g. icon.bg.foo) and either a concrete icon or a reference id which is the String id of another IconValue that it will inherit its icon from. So if this class's icon value is non-null, the refId will be null and if the class's refId is non-null, then the icon value will be null.
  • Field Details

  • Constructor Details

    • IconValue

      public IconValue(String id, Icon icon)
      Constructor used when the ColorValue will have a direct Icon value. The refId will be null. Note: if a GIcon is passed in as the value, then this will be an indirect IconValue that inherits its icon from the id stored in the GIcon.
      Parameters:
      id - the id for this IconValue
      icon - the Icon to associate with the given id
    • IconValue

      public IconValue(String id, String refId)
      Constructor used when the IconValue will inherit its Icon from another IconValue. The icon value field will be null.
      Parameters:
      id - the id for this IconValue
      refId - the id of another IconValue that this IconValue will inherit from
  • Method Details

    • getSerializationString

      public String getSerializationString()
      Description copied from class: ThemeValue
      Returns the "key = value" String for writing this ThemeValue to a file
      Specified by:
      getSerializationString in class ThemeValue<Icon>
      Returns:
      the "key = value" String for writing this ThemeValue to a file
    • isExternal

      public boolean isExternal()
      Description copied from class: ThemeValue
      True if this value is one that is one that is defined outside of the application, such as a Java Look and Feel key.
      Specified by:
      isExternal in class ThemeValue<Icon>
      Returns:
      true if external
    • get

      public Icon get(GThemeValueMap values)
      Description copied from class: ThemeValue
      Returns the T value for this instance, following references as needed. Uses the given preferredValues map to resolve references. If the value can't be resolved by following reference chains, an error stack trace will be generated and the default T value will be returned. In rare situations where it is acceptable for the value to not be resolvable, use the ThemeValue.hasResolvableValue(GThemeValueMap) method first.
      Overrides:
      get in class ThemeValue<Icon>
      Parameters:
      values - the GThemeValueMap used to resolve references if this instance doesn't have an actual value.
      Returns:
      the T value for this instance, following references as needed.
    • isIconKey

      public static boolean isIconKey(String key)
      Returns true if the given key string is a valid external key for an icon value
      Parameters:
      key - the key string to test
      Returns:
      true if the given key string is a valid external key for an icon value
    • iconToString

      public static String iconToString(Icon icon)
      Converts an icon to a string.
      Parameters:
      icon - the icon to convert to a String
      Returns:
      a String that represents the icon
    • parse

      public static IconValue parse(String key, String value) throws ParseException
      Parses the value string into an icon or reference and creates a new IconValue using the given key and the parse results.
      Parameters:
      key - the key to associate the parsed value with
      value - the color value to parse
      Returns:
      an IconValue with the given key and the parsed value
      Throws:
      ParseException - if the value can't be parsed
    • getReferredValue

      protected IconValue getReferredValue(GThemeValueMap values, String refId)
      Description copied from class: ThemeValue
      Returns the ThemeValue referred to by this ThemeValue. Needs to be overridden by concrete classes as they know the correct method to call on the preferredValues map.
      Specified by:
      getReferredValue in class ThemeValue<Icon>
      Parameters:
      values - the GThemeValueMap to be used to resolve the reference id
      refId - the id of the reference ThemeValue
      Returns:
      the ThemeValue referred to by this ThemeValue.
    • getUnresolvedReferenceValue

      protected Icon getUnresolvedReferenceValue(String primaryId, String unresolvedId)
      Description copied from class: ThemeValue
      Returns the T to be used if the indirect reference couldn't be resolved.
      Specified by:
      getUnresolvedReferenceValue in class ThemeValue<Icon>
      Parameters:
      primaryId - the id we are trying to get a value for
      unresolvedId - the reference id that couldn't be resolved
      Returns:
      the default value to be used if the indirect reference couldn't be resolved.
    • installValue

      public void installValue(ThemeManager themeManager)
      Description copied from class: ThemeValue
      Install this value as the current value for the application
      Specified by:
      installValue in class ThemeValue<Icon>
      Parameters:
      themeManager - the application ThemeManager