Package org.freeplane.api

# Interface ConditionalStyles

All Superinterfaces:
  `Iterable<ConditionalStyle>`

All Known Subinterfaces:
  `Proxy.ConditionalStyles`

public interface ConditionalStyles extends Iterable<ConditionalStyle>
Node's or map's conditional-styles table: `node.conditionalStyles` or `node.mindMap.conditionalStyles` - read-only.

In the Manage Conditional Styles dialog, it's the entire table. Each row in the table is a separate `ConditionalStyle`/`ConditionalStyleRO`.

Actions known from the Manage Conditional Styles dialog can be called on ConditionalStyles

         // add a conditional style to the end of the table
         node.conditionalStyles.add(
           true, // isActive
           "node.text == 'Sunday'", // script
           'styles.important', // styleName
           false) // isLast (aka stop)

         // insert a conditional style at the beginning of the table, with the condition "always"
         node.conditionalStyles.insert(0, true, null, 'defaultstyle.floating', false)

         // move the third conditional style to the top of the table
         node.conditionalStyles.move(2, 0)

         // remove the first conditional style from the table
         node.conditionalStyles.remove(0)

         // remove all, i.e. each ConditionalStyle item
         node.conditionalStyles.each { it.remove() }

ConditionalStyles can be iterated over, e.g.

         // get a list of conditional styles (ConditionalStyle items)
         node.conditionalStyles.collect()

         // get a list of conditional styles, each as a string (description)
         node.conditionalStyles.collect { it.toString() }

         // get the number of conditional styles in the table
         node.conditionalStyles.size()

         // get the first conditional style in the table
         node.conditionalStyles[0]

         // find all conditional styles with the style styles.important (aka Important) and deactivate them
         node.conditionalStyles.findAll { it.styleName == 'styles.important' }.each { it.active = false }

         // find the first conditional style with ScriptCondition (aka Script Filter) and remove it
         node.conditionalStyles.find { it.hasScriptCondition() }?.remove()

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(boolean isActive, String script, String styleName, boolean isLast)`
  Adds a conditional style to the end of the table
  `void`
  `add(ConditionalStyleRO conditionalStyle)`
  Adds a copy of conditionalStyle to the end of the table.
  `void`
  `insert(int position, boolean isActive, String script, String styleName, boolean isLast)`
  Inserts a conditional style at the specified position.
  `void`
  `insert(int position, ConditionalStyleRO conditionalStyle)`
  Inserts a copy of conditionalStyle at the specified position.
  `void`
  `move(int position, int toPosition)`
  Moves the conditional style found at position to toPosition
  `ConditionalStyle`
  `remove(int position)`
  It can be used to move a conditional style between nodes or between maps.

  ### Methods inherited from interface java.lang.Iterable

  `forEach, iterator, spliterator`

- ## Method Details

  - ### add

    void add(boolean isActive, String script, String styleName, boolean isLast)
    Adds a conditional style to the end of the table
    Throws:
      `IllegalArgumentException` - if styleName is not found
    Since:
      1.11.1

  - ### add

    void add(ConditionalStyleRO conditionalStyle)
    Adds a copy of conditionalStyle to the end of the table. It can be used to copy a conditional style between nodes or between maps.
    Since:
      1.11.1

  - ### insert

    void insert(int position, boolean isActive, String script, String styleName, boolean isLast)
    Inserts a conditional style at the specified position.
    Throws:
      `IllegalArgumentException` - if styleName is not found
    Since:
      1.11.1

  - ### insert

    void insert(int position, ConditionalStyleRO conditionalStyle)
    Inserts a copy of conditionalStyle at the specified position. It can be used to copy a conditional style between nodes or between maps.
    Since:
      1.11.1

  - ### move

    void move(int position, int toPosition)
    Moves the conditional style found at position to toPosition
    Since:
      1.11.1

  - ### remove

    ConditionalStyle remove(int position)
    It can be used to move a conditional style between nodes or between maps.

             def cStyle = node.conditionalStyles.remove(0)
             node.parent.conditionalStyles.add(cStyle)

    Returns:
      the removed ConditionalStyle
    Since:
      1.11.1