Proxy.Node

org.freeplane.plugin.script.proxy

## インタフェース Proxy.Node

- すべてのスーパーインタフェース:
    Proxy.NodeRO
  含まれているインタフェース:
    Proxy

      public static interface Proxy.Node
      extends Proxy.NodeRO

  The currently selected node: `node` - read-write.

- - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `Proxy.Connector` | `addConnectorTo(Proxy.Node target)` adds a new Connector to the given target node and returns the new connector for optional further editing (style); also enlists the Connector on the target Node object.
    `Proxy.Connector` | `addConnectorTo(java.lang.String targetNodeId)` as above, using String targetNodeId instead of Node object to establish the connector.
    `Proxy.Node` | `appendBranch(Proxy.NodeRO node)` inserts a copy of the branch starting with node as a new child branch.
    `Proxy.Node` | `appendChild(Proxy.NodeRO node)` inserts a copy of node as a new child.
    `Proxy.Node` | `createChild()` inserts *new* node as child, takes care of all construction work and internal stuff inserts as last child.
    `Proxy.Node` | `createChild(int position)` inserts *new* node as child, takes care of all construction work and internal stuff
    `Proxy.Node` | `createChild(java.lang.Object value)` like `createChild()` but sets the node text to the given text.
    `void` | `decrypt(java.lang.String password)` decrypts a node without removing the encryption.
    `void` | `delete()`
    `void` | `encrypt(java.lang.String password)` encrypts a node.
    `boolean` | `hasEncryption()` Returns true if the node is password protected, no matter if currently accessible (password entered) or not.
    `boolean` | `isEncrypted()` Returns true if the node has password protection and is currently unaccessible (password has to be entered).
    `void` | `moveTo(Proxy.Node parentNode)`
    `void` | `moveTo(Proxy.Node parentNode, int position)`
    `java.lang.Object` | `putAt(java.lang.String attributeName, java.lang.Object value)` Allows to set and to change attribute like array (or map) elements.
    `void` | `removeConnector(Proxy.Connector connectorToBeRemoved)` removes the given connector on both sides.
    `void` | `removeEncryption(java.lang.String password)` decrypts a node and remove the password protection.
    `void` | `setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)` allows to set all attributes at once: node.attributes = [:] // clear the attributes assert node.attributes.size() == 0 node.attributes = ["1st" : "a value", "2nd" : "another value"] // create 2 attributes assert node.attributes.size() == 2 node.attributes = ["one attrib" : new Double(1.22)] // replace all attributes assert node.attributes.size() == 1 assert node.attributes.getFirst("one attrib") == "1.22" // note the type conversion assert node["one attrib"] == "1.22" // here we compare Convertible with String
    `void` | `setBinary(byte[] data)` Converts data to a BASE64 encoded string and sets it as this node's text.
    `void` | `setCreatedAt(java.util.Date date)`
    `void` | `setDateTime(java.util.Date date)` sets the node text to a default formatted datetime object.
    `void` | `setDetails(java.lang.Object details)` A node's text is String valued.
    `void` | `setFolded(boolean folded)`
    `void` | `setFormat(java.lang.String format)` sets the format string of the formatter.
    `void` | `setFree(boolean free)` set to true if this node should be freely positionable: node.free = true node.style.floating = true
    `void` | `setHideDetails(boolean hide)` use node.hideDetails = true/false to control visibility of details.
    `void` | `setHorizontalShift(int horizontalShift)`
    `void` | `setLastModifiedAt(java.util.Date date)`
    `void` | `setLeft(boolean isLeft)`
    `void` | `setMinimalDistanceBetweenChildren(int minimalDistanceBetweenChildren)`
    `void` | `setMinimized(boolean shortened)`
    `void` | `setNote(java.lang.Object value)` Set the note text: This methods provides automatic conversion to String in a way that node.getNote().getXyz() methods will be able to convert the string properly to the wanted type.
    `void` | `setNoteText(java.lang.String text)` 非推奨です。 since 1.2 - use `setNote(Object)` instead.
    `void` | `setObject(java.lang.Object value)` A node's text object is normally String valued but it can be of any type since every Object can be converted to String for display.
    `void` | `setText(java.lang.Object value)` If `value` is a String the node object is set to it verbatim.
    `void` | `setVerticalShift(int verticalShift)`

    - ### インタフェースから継承されたメソッド org.freeplane.plugin.script.proxy.Proxy.NodeRO

      `find, find, findAll, findAllDepthFirst, getAt, getAttributes, getBinary, getChildPosition, getChildren, getCloud, getConnectorsIn, getConnectorsOut, getCreatedAt, getDetails, getDetailsText, getDisplayedText, getExternalObject, getFormat, getHideDetails, getHorizontalShift, getIcons, getId, getLastModifiedAt, getLink, getMap, getMinimalDistanceBetweenChildren, getNext, getNodeID, getNodeLevel, getNote, getNoteText, getObject, getParent, getParentNode, getPathToRoot, getPlainText, getPlainTextContent, getPrevious, getReminder, getShortText, getStyle, getText, getTo, getTransformedText, getValue, getVerticalShift, hasStyle, isDescendantOf, isFolded, isFree, isLeaf, isLeft, isMinimized, isRoot, isVisible`

- - ### メソッドの詳細

    - #### addConnectorTo

          Proxy.Connector addConnectorTo(Proxy.Node target)

      adds a new Connector to the given target node and returns the new connector for optional further editing (style); also enlists the Connector on the target Node object.

    - #### addConnectorTo

          Proxy.Connector addConnectorTo(java.lang.String targetNodeId)

      as above, using String targetNodeId instead of Node object to establish the connector.

    - #### createChild

          Proxy.Node createChild()

      inserts *new* node as child, takes care of all construction work and internal stuff inserts as last child.

    - #### createChild

          Proxy.Node createChild(java.lang.Object value)

      like `createChild()` but sets the node text to the given text.

           // instead of
           def child = node.createChild(); child.setObject(value);
           // use
           def child = node.createChild(value);

      導入されたバージョン:
        1.2

    - #### createChild

          Proxy.Node createChild(int position)

      inserts *new* node as child, takes care of all construction work and internal stuff

    - #### appendChild

          Proxy.Node appendChild(Proxy.NodeRO node)

      inserts a copy of node as a new child.
      導入されたバージョン:
        1.2

    - #### appendBranch

          Proxy.Node appendBranch(Proxy.NodeRO node)

      inserts a copy of the branch starting with node as a new child branch.
      導入されたバージョン:
        1.2

    - #### delete

          void delete()

    - #### moveTo

          void moveTo(Proxy.Node parentNode)

    - #### moveTo

          void moveTo(Proxy.Node parentNode,
                    int position)

    - #### removeConnector

          void removeConnector(Proxy.Connector connectorToBeRemoved)

      removes the given connector on both sides.

    - #### setDetails

          void setDetails(java.lang.Object details)

      A node's text is String valued. This methods provides automatic conversion to String in the same way as for `setText(Object)`, that is special conversion is provided for dates and calendars, other types are converted via value.toString(). If the conversion result is not valid HTML it will be automatically converted to HTML.
      パラメータ:
        `details` - An object for conversion to String. Use null to unset the details. Works well for all types that `Convertible` handles, particularly `Convertible`s itself.
      導入されたバージョン:
        1.2

    - #### setHideDetails

          void setHideDetails(boolean hide)

      use node.hideDetails = true/false to control visibility of details.
      導入されたバージョン:
        1.2

    - #### setFolded

          void setFolded(boolean folded)

    - #### setFree

          void setFree(boolean free)

      set to true if this node should be freely positionable:

             node.free = true
             node.style.floating = true

      導入されたバージョン:
        1.2

    - #### setMinimized

          void setMinimized(boolean shortened)

    - #### setNote

          void setNote(java.lang.Object value)

      Set the note text:
      - This methods provides automatic conversion to String in a way that node.getNote().getXyz() methods will be able to convert the string properly to the wanted type.
      - Special conversion is provided for dates and calendars: They will be converted in a way that node.note.date and node.note.calendar will work. All other types are converted via value.toString().
      - If the conversion result is not valid HTML it will be automatically converted to HTML.

             // converts numbers and other stuff with toString()
             node.note = 1.2
             assert node.note.text == "1.2"
             assert node.note.plain == "1.2"
             assert node.note.num == 1.2d
             // == dates
             // a date in some non-UTC time zone
             def date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ").
                 parse("1970-01-01 00:00:00.000-0200")
             // converts to "1970-01-01T02:00:00.000+0000" (GMT)
             // - note the shift due to the different time zone
             // - the missing end tags don't matter for rendering
             node.note = date
             assert node.note == "1970-01-01T02:00:00.000+0000"
             assert node.note.plain == "1970-01-01T02:00:00.000+0000"
             assert node.note.date == date
             // == remove note
             node.note = null
             assert node.note.text == null

      パラメータ:
        `value` - An object for conversion to String. Works well for all types that `Convertible` handles, particularly `Convertible`s itself.
      導入されたバージョン:
        1.2 (note that the old setNoteText() did not support non-String arguments.

    - #### setNoteText

          void setNoteText(java.lang.String text)

      非推奨です。 since 1.2 - use `setNote(Object)` instead.

    - #### setText

          void setText(java.lang.Object value)

      If `value` is a String the node object is set to it verbatim. For all other argument types it's an alias for `setObject(Object)`.

           node.text = '006'
           assert node.object.class.simpleName == "String"
           node.object = '006'
           assert node.text == '6'
           assert node.object.class.simpleName == "Long"

      導入されたバージョン:
        1.2, semantics changed for Strings with 1.2.17, see Mantis #1787
      関連項目:
        `setObject(Object)`

    - #### setObject

          void setObject(java.lang.Object value)

      A node's text object is normally String valued but it can be of any type since every Object can be converted to String for display. This methods provides automatic conversion to String in a way that node.to.getXyz() methods will be able to convert the string properly to the wanted type.

      Special support is provided for numbers, dates and calendars that are stored unconverted. For display of them a standard formatter is used (use #setFormat() to change it). You may also pass `IFormattedObject` instances (`FormattedDate`, `FormattedNumber` or `FormattedObject`) directly to determine the format in one pass.

      All other types are converted via value.toString().

      Numbers

           double number = 1.2222222d
           node.object = number
           // to enable math with node.object its type is not FormattedNumber
           assert node.object.class.simpleName == "Double"
           assert node.to.object.class.simpleName == "Double"
           // use globally bound TextUtils object
           def defaultNumberFormat = textUtils.defaultNumberFormat
           assert node.format != null
           // e.g. "1.22"
           assert node.text == defaultNumberFormat.format(number)
           assert node.to.num == number
           assert node.to.num + 1.0 == number + 1.0
           assert node.object + 1.0 == number + 1.0

      Dates

           def date = new Date(0) // when Unix time began
           node.object = date
           assert node.object.class.simpleName == "FormattedDate"
           assert node.to.object.class.simpleName == "FormattedDate"
           // use globally bound TextUtils object
           def defaultDateFormat = textUtils.defaultDateFormat
           assert node.object.toString() == defaultDateFormat.format(date)
           assert node.format == defaultDateFormat.pattern
           // e.g. "01/01/1970"
           assert node.text == defaultDateFormat.format(date)
           assert node.to.date == date

      Date/Time

           def date = new Date(0) // when Unix time began
           // the default format for dates does not contain a time component. Use node.dateTime to override it.
           node.dateTime = date
           assert node.object.class.simpleName == "FormattedDate"
           assert node.to.object.class.simpleName == "FormattedDate"
           // use globally bound TextUtils object
           def defaultDateFormat = textUtils.defaultDateTimeFormat
           assert node.object.toString() == defaultDateFormat.format(date)
           assert node.format == defaultDateFormat.pattern
           // e.g. "01/01/1970 01:00"
           assert node.text == defaultDateFormat.format(date)
           assert node.to.date == date

      パラメータ:
        `value` - A not-null object.
      導入されたバージョン:
        1.2

    - #### setDateTime

          void setDateTime(java.util.Date date)

      sets the node text to a default formatted datetime object. (After setObject(Date) no time component is displayed so use this method if you want the time to be displayed.)
      導入されたバージョン:
        1.2
      関連項目:
        `setObject(Object)`

    - #### setBinary

          void setBinary(byte[] data)

      Converts data to a BASE64 encoded string and sets it as this node's text. Long lines are folded to a length a bit less than 80.
      導入されたバージョン:
        1.2

    - #### setFormat

          void setFormat(java.lang.String format)

      sets the format string of the formatter. It has to be appropriate for the data type of the contained object, otherwise the format is simply ignored. For instance use "dd.MM.yyyy" for dates but not for numbers:

           node.object = new Date()
           node.format = "dd.MMM.yyyy"  // ok: "13.07.2011"
           node.format = "#.00"  // still "13.07.2011". See log: "cannot format 13.07.2011 with #.00: multiple points"

      Numbers:

           node.object = 1.122
           node.format = "#.##"   // ok: "1.12" (US, GB, ...) or "1,12" (Germany, ...)
           node.format = "#.0000" // ok: "1.1220" (US, GB, ...) or "1,1220" (Germany, ...)

      導入されたバージョン:
        1.2
      関連項目:
        `setObject(Object)`

    - #### setLastModifiedAt

          void setLastModifiedAt(java.util.Date date)

    - #### setCreatedAt

          void setCreatedAt(java.util.Date date)

    - #### putAt

          java.lang.Object putAt(java.lang.String attributeName,
                               java.lang.Object value)

      Allows to set and to change attribute like array (or map) elements. See description of `Proxy.Attributes` for details.
      パラメータ:
        `value` - An object for conversion to String. Works well for all types that `Convertible` handles, particularly `Convertible`s itself. Use null to unset an attribute.
      戻り値:
        the new value

    - #### setAttributes

          void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)

      allows to set all attributes at once:

             node.attributes = [:] // clear the attributes
             assert node.attributes.size() == 0
             node.attributes = ["1st" : "a value", "2nd" : "another value"] // create 2 attributes
             assert node.attributes.size() == 2
             node.attributes = ["one attrib" : new Double(1.22)] // replace all attributes
             assert node.attributes.size() == 1
             assert node.attributes.getFirst("one attrib") == "1.22" // note the type conversion
             assert node["one attrib"] == "1.22" // here we compare Convertible with String

    - #### setLeft

          void setLeft(boolean isLeft)

    - #### hasEncryption

          boolean hasEncryption()

      Returns true if the node is password protected, no matter if currently accessible (password entered) or not.
      導入されたバージョン:
        1.3.6

    - #### removeEncryption

          void removeEncryption(java.lang.String password)

      decrypts a node and remove the password protection.
      導入されたバージョン:
        1.3.6

    - #### isEncrypted

          boolean isEncrypted()

      Returns true if the node has password protection and is currently unaccessible (password has to be entered).
      導入されたバージョン:
        1.3.6

    - #### encrypt

          void encrypt(java.lang.String password)

      encrypts a node. If the node has child nodes the branch is folded.
      導入されたバージョン:
        1.3.6

    - #### decrypt

          void decrypt(java.lang.String password)

      decrypts a node without removing the encryption.
      導入されたバージョン:
        1.3.6

    - #### setHorizontalShift

          void setHorizontalShift(int horizontalShift)

      導入されたバージョン:
        1.3.7

    - #### setVerticalShift

          void setVerticalShift(int verticalShift)

      導入されたバージョン:
        1.3.7

    - #### setMinimalDistanceBetweenChildren

          void setMinimalDistanceBetweenChildren(int minimalDistanceBetweenChildren)

      導入されたバージョン:
        1.3.7