Class DelegatingThemeDefinition

java.lang.Object
com.googlecode.lanterna.graphics.DelegatingThemeDefinition
All Implemented Interfaces:
ThemeDefinition

public class DelegatingThemeDefinition extends Object implements ThemeDefinition
Allows you to more easily wrap an existing theme definion and alter the behaviour in some special cases. You normally create a new class that extends from this and override some of the methods to divert the call depending on what you are trying to do. For an example, please see Issue409 in the test code.
See Also:
  • Field Details

  • Constructor Details

    • DelegatingThemeDefinition

      public DelegatingThemeDefinition(ThemeDefinition themeDefinition)
      Creates a new DelegatingThemeDefinition with a default implementation that will forward all calls to the ThemeDefinition that is passed in.
      Parameters:
      themeDefinition - Other theme definition to delegate all calls to
  • Method Details

    • getNormal

      public ThemeStyle getNormal()
      Description copied from interface: ThemeDefinition
      The normal style of the definition, which can be considered the default to be used.
      Specified by:
      getNormal in interface ThemeDefinition
      Returns:
      ThemeStyle representation for the normal style
    • getPreLight

      public ThemeStyle getPreLight()
      Description copied from interface: ThemeDefinition
      The pre-light style of this definition, which can be used when a component has input focus but isn't active or selected, similar to mouse-hoovering in modern GUIs
      Specified by:
      getPreLight in interface ThemeDefinition
      Returns:
      ThemeStyle representation for the pre-light style
    • getSelected

      public ThemeStyle getSelected()
      Description copied from interface: ThemeDefinition
      The "selected" style of this definition, which can used when a component has been actively selected in some way.
      Specified by:
      getSelected in interface ThemeDefinition
      Returns:
      ThemeStyle representation for the selected style
    • getActive

      public ThemeStyle getActive()
      Description copied from interface: ThemeDefinition
      The "active" style of this definition, which can be used when a component is being directly interacted with
      Specified by:
      getActive in interface ThemeDefinition
      Returns:
      ThemeStyle representation for the active style
    • getInsensitive

      public ThemeStyle getInsensitive()
      Description copied from interface: ThemeDefinition
      The insensitive style of this definition, which can be used when a component has been disabled or in some other way isn't able to be interacted with.
      Specified by:
      getInsensitive in interface ThemeDefinition
      Returns:
      ThemeStyle representation for the insensitive style
    • getCustom

      public ThemeStyle getCustom(String name)
      Description copied from interface: ThemeDefinition
      Retrieves a custom ThemeStyle, if one is available by this name. You can use this if you need more categories than the ones available above.
      Specified by:
      getCustom in interface ThemeDefinition
      Parameters:
      name - Name of the style to look up
      Returns:
      The ThemeStyle associated with the name
    • getCustom

      public ThemeStyle getCustom(String name, ThemeStyle defaultValue)
      Description copied from interface: ThemeDefinition
      Retrieves a custom ThemeStyle, if one is available by this name. Will return a supplied default value if no such style could be found within this ThemeDefinition. You can use this if you need more categories than the ones available above.
      Specified by:
      getCustom in interface ThemeDefinition
      Parameters:
      name - Name of the style to look up
      defaultValue - What to return if the there is no custom style by the given name
      Returns:
      The ThemeStyle associated with the name, or defaultValue if there was no such style
    • getBooleanProperty

      public boolean getBooleanProperty(String name, boolean defaultValue)
      Description copied from interface: ThemeDefinition
      Retrieves a custom boolean property, if one is available by this name. Will return a supplied default value if no such property could be found within this ThemeDefinition.
      Specified by:
      getBooleanProperty in interface ThemeDefinition
      Parameters:
      name - Name of the boolean property to look up
      defaultValue - What to return if the there is no property with this name
      Returns:
      The property value stored in this theme definition, parsed as a boolean
    • isCursorVisible

      public boolean isCursorVisible()
      Description copied from interface: ThemeDefinition
      Asks the theme definition for this component if the theme thinks that the text cursor should be visible or not. Note that certain components might have a visible state depending on the context and the current data set, in those cases it can use ThemeDefinition.getBooleanProperty(String, boolean) to allow themes more fine-grained control over when cursor should be visible or not.
      Specified by:
      isCursorVisible in interface ThemeDefinition
      Returns:
      A hint to the renderer as to if this theme thinks the cursor should be visible (returns true) or not (returns false)
    • getCharacter

      public char getCharacter(String name, char fallback)
      Description copied from interface: ThemeDefinition
      Retrieves a character from this theme definition by the specified name. This method cannot return null so you need to give a fallback in case the definition didn't have any character by this name.
      Specified by:
      getCharacter in interface ThemeDefinition
      Parameters:
      name - Name of the character to look up
      fallback - Character to return if there was no character by the name supplied in this definition
      Returns:
      The character from this definition by the name entered, or fallback if the definition didn't have any character defined with this name
    • getRenderer

      public <T extends Component> ComponentRenderer<T> getRenderer(Class<T> type)
      Description copied from interface: ThemeDefinition
      Returns a ComponentRenderer attached to this definition for the specified type. Generally one theme definition is linked to only one component type so it wouldn't need the type parameter to figure out what to return. unlike the other methods of this interface, it will not traverse up in the theme hierarchy if this field is not defined, instead the component will use its default component renderer.
      Specified by:
      getRenderer in interface ThemeDefinition
      Type Parameters:
      T - Type of component
      Parameters:
      type - Component class to get the theme's renderer for
      Returns:
      Renderer to use for the type component or null to use the default