Interface ControllerRO

All Known Subinterfaces:
Controller, Proxy.Controller, Proxy.ControllerRO

public interface ControllerRO
Access to global state: in scripts, this is available as global variable c - read-only.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    export(MindMap map, File destinationFile, String exportTypeDescription, boolean overwriteExisting)
    exports map to destination file, example:
    List<? extends Node>
    find(boolean withAncestors, boolean withDescendants, NodeCondition condition)
    Starting from this node, recursively searches for nodes for which condition.check(node) returns true and adds their ancestor or descendant nodes if required.
    List<? extends Node>
    find(NodeCondition condition)
    Starting from the root node, recursively searches for nodes (in breadth-first sequence) for which closure.call(node) returns true.
    List<? extends Node>
    Returns all nodes of the map in breadth-first order, that is, for the following map,
    List<? extends Node>
    Returns all nodes of the map in depth-first order, that is, for the following map,
    returns a list of export type descriptions that can be used to specify a specific export type in export(MindMap, File, String, boolean).
    returns Freeplane version.
    if multiple nodes are selected returns one (arbitrarily chosen) selected node or the selected node for a single node selection.
    List<? extends Node>
    A read-only list of selected nodes.
    List<? extends Node>
    getSortedSelection(boolean differentSubtrees)
    returns List<? extends Node> sorted by the node's vertical position.
    returns the directory where user settings, logfiles, templates etc.
    Root node of the current view
    float
    returns the current zoom factor.
    boolean
    returns false if the system 'nonInteractive' is set.
  • Method Details

    • getSelected

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

      Node getViewRoot()
      Root node of the current view
      Since:
      1.10.4
    • getSelecteds

      List<? extends Node> getSelecteds()
      A read-only list of selected nodes. That is you cannot select a node by adding it to the returned list.
    • getSortedSelection

      List<? extends Node> getSortedSelection(boolean differentSubtrees)
      returns List<? extends 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:
      
      
      
      
         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

      File getUserDirectory()
      returns the directory where user settings, logfiles, templates etc. are stored.
      Since:
      1.2
    • find

      List<? extends Node> find(NodeCondition condition)
      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 lambda ("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 NodeRO.find(NodeCondition) for searches on subtrees.
      Parameters:
      condition - a lambda 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.
    • find

      List<? extends Node> find(boolean withAncestors, boolean withDescendants, NodeCondition condition)
      Starting from this node, recursively searches for nodes for which condition.check(node) returns true and adds their ancestor or descendant nodes if required.
      Since:
      1.7.4 See find(NodeCondition) for details.
    • findAll

      List<? extends 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 NodeRO.find(NodeCondition) for searches on subtrees.
      Since:
      1.2
      See Also:
    • findAllDepthFirst

      List<? extends 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 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

      List<String> getExportTypeDescriptions()
      returns a list of export type descriptions that can be used to specify a specific export type in export(MindMap, File, String, boolean). These descriptions are internationalized.
      Since:
      1.3.5
    • export

      void export(MindMap map, File destinationFile, 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)
         c.export(node.map, new File('/tmp/t.png'), 'PNG', overwriteExistingFile)
         c.export(node.map, new File('/tmp/t.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. You can use a substring or an empty string instead of full description, if exported destination file extension matches filter desription.
      Since:
      1.3.5