org.freeplane.plugin.script.proxy

## Interface Proxy.ControllerRO

- All Known Subinterfaces:
    Proxy.Controller
  Enclosing interface:
    Proxy

      public static interface Proxy.ControllerRO

  Access to global state: in scripts, this is available as global variable `c` - read-only.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `export(Proxy.Map map, java.io.File destinationFile, java.lang.String exportTypeDescription, boolean overwriteExisting)` exports map to destination file, example: println c.exportTypeDescriptions.join('\n') boolean overwriteExistingFile = true c.export(node.map, new File('/tmp/t.png'), 'Portable Network Graphic (PNG) (.png)', overwriteExistingFile)
    `java.util.List<Proxy.Node>` | `find(groovy.lang.Closure<java.lang.Boolean> closure)` Starting from the root node, recursively searches for nodes (in breadth-first sequence) for which `closure.call(node)` returns true.
    `java.util.List<Proxy.Node>` | `find(org.freeplane.features.filter.condition.ICondition condition)` Deprecated. since 1.2 use `find(Closure)` instead.
    `java.util.List<Proxy.Node>` | `findAll()` Returns all nodes of the map in breadth-first order, that is, for the following map, 1 1.1 1.1.1 1.1.2 1.2 2 [1, 1.1, 1.1.1, 1.1.2, 1.2, 2] is returned.
    `java.util.List<Proxy.Node>` | `findAllDepthFirst()` Returns all nodes of the map in depth-first order, that is, for the following map, 1 1.1 1.1.1 1.1.2 1.2 2 [1.1.1, 1.1.2, 1.1, 1.2, 1, 2] is returned.
    `java.util.List<java.lang.String>` | `getExportTypeDescriptions()` returns a list of export type descriptions that can be used to specify a specific export type in `#export(Map, File, String, boolean)`.
    `FreeplaneVersion` | `getFreeplaneVersion()` returns Freeplane version.
    `Proxy.Node` | `getSelected()` if multiple nodes are selected returns one (arbitrarily chosen) selected node or the selected node for a single node selection.
    `java.util.List<Proxy.Node>` | `getSelecteds()` A read-only list of selected nodes.
    `java.util.List<Proxy.Node>` | `getSortedSelection(boolean differentSubtrees)` returns `List<Node>` sorted by the node's vertical position.
    `java.io.File` | `getUserDirectory()` returns the directory where user settings, logfiles, templates etc. are stored.
    `float` | `getZoom()` returns the current zoom factor.
    `boolean` | `isInteractive()` returns false if the system 'nonInteractive' is set.

- - ### Method Detail

    - #### getSelected

          Proxy.Node getSelected()

      if multiple nodes are selected returns one (arbitrarily chosen) selected node or the selected node for a single node selection.

    - #### getSelecteds

          java.util.List<Proxy.Node> getSelecteds()

      A read-only list of selected nodes. That is you cannot select a node by adding it to the returned list.

    - #### getSortedSelection

          java.util.List<Proxy.Node> getSortedSelection(boolean differentSubtrees)

      returns `List<Node>` sorted by the node's vertical position.
      Parameters:
        `differentSubtrees` - if true children/grandchildren/grandgrandchildren/... nodes of selected parent nodes are excluded from the result.

    - #### getFreeplaneVersion

          FreeplaneVersion getFreeplaneVersion()

      returns Freeplane version. Use it like this:

             import org.freeplane.core.util.FreeplaneVersion
             import org.freeplane.core.ui.components.UITools

             def required = FreeplaneVersion.getVersion("1.1.2");
             if (c.freeplaneVersion < required)
                 UITools.errorMessage("Freeplane version " + c.freeplaneVersion
                     + " not supported - update to at least " + required);

    - #### getUserDirectory

          java.io.File getUserDirectory()

      returns the directory where user settings, logfiles, templates etc. are stored.
      Since:
        1.2

    - #### find

          java.util.List<Proxy.Node> find(org.freeplane.features.filter.condition.ICondition condition)

      Deprecated. since 1.2 use `find(Closure)` instead.
      Starting from the root node, recursively searches for nodes for which `condition.checkNode(node)` returns true.

    - #### find

          java.util.List<Proxy.Node> find(groovy.lang.Closure<java.lang.Boolean> closure)

      Starting from the root node, recursively searches for nodes (in breadth-first sequence) for which `closure.call(node)` returns true.

      A find method that uses a Groovy closure ("block") for simple custom searches. As this closure will be called with a node as an argument (to be referenced by `it`) the search can evaluate every node property, like attributes, icons, node text or notes.

      Examples:

              def nodesWithNotes = c.find{ it.noteText != null }

              def matchingNodes = c.find{ it.text.matches(".\*\d.*") }
              def texts = matchingNodes.collect{ it.text }
              print "node texts containing numbers:\n " + texts.join("\n ")

      See `Proxy.NodeRO.find(Closure)` for searches on subtrees.
      Parameters:
        `closure` - a Groovy closure that returns a boolean value. The closure will receive a NodeModel as an argument which can be tested for a match.
      Returns:
        all nodes for which `closure.call(NodeModel)` returns true.

    - #### findAll

          java.util.List<Proxy.Node> findAll()

      Returns all nodes of the map in breadth-first order, that is, for the following map,

            1
              1.1
                1.1.1
                1.1.2
              1.2
            2

      [1, 1.1, 1.1.1, 1.1.2, 1.2, 2] is returned. See `Proxy.NodeRO.find(Closure)` for searches on subtrees.
      Since:
        1.2
      See Also:
        `findAllDepthFirst()`

    - #### findAllDepthFirst

          java.util.List<Proxy.Node> findAllDepthFirst()

      Returns all nodes of the map in depth-first order, that is, for the following map,

            1
              1.1
                1.1.1
                1.1.2
              1.2
            2

      [1.1.1, 1.1.2, 1.1, 1.2, 1, 2] is returned. See `Proxy.NodeRO.findAllDepthFirst()` for subtrees.
      Since:
        1.2

    - #### getZoom

          float getZoom()

      returns the current zoom factor. A value of 1 means 100%.
      Since:
        1.2

    - #### isInteractive

          boolean isInteractive()

      returns false if the system 'nonInteractive' is set. This can be used in actions to not open dialogs etc.
      Since:
        1.2

    - #### getExportTypeDescriptions

          java.util.List<java.lang.String> getExportTypeDescriptions()

      returns a list of export type descriptions that can be used to specify a specific export type in `#export(Map, File, String, boolean)`. These descriptions are internationalized.
      Since:
        1.3.5

    - #### export

          void export(Proxy.Map map,
                      java.io.File destinationFile,
                      java.lang.String exportTypeDescription,
                      boolean overwriteExisting)

      exports map to destination file, example:

             println c.exportTypeDescriptions.join('\n')
             boolean overwriteExistingFile = true
             c.export(node.map, new File('/tmp/t.png'), 'Portable Network Graphic (PNG) (.png)', overwriteExistingFile)

      Parameters:
        `exportTypeDescription` - Use `getExportTypeDescriptions()` to look up available exportTypes. Note that the file format does not suffice to specify a specific export since there may be more than one, as for HTML.
      Since:
        1.3.5