com.smartgwt.client.widgets.tree

## Class TreeNode

- java.lang.Object
- - com.smartgwt.client.core.JsObject
  - - com.smartgwt.client.core.DataClass
    - - com.smartgwt.client.core.RefDataClass
      - - com.smartgwt.client.data.Record
        - - com.smartgwt.client.widgets.grid.ListGridRecord
          - - com.smartgwt.client.widgets.tree.TreeNode

- All Implemented Interfaces:
    com.google.gwt.event.shared.HasHandlers
  Direct Known Subclasses:
    NavItem, PaletteNode

      public class TreeNode
      extends ListGridRecord

  Every node in the tree is represented by a TreeNode object which is an object literal with a set of properties that configure the node.

  When a Tree is supplied as `TreeGrid.data` to `TreeGrid`, you can also set properties from `ListGridRecord` on the TreeNode (e.g. setting `ListGridRecord.enabled`:`false` on the node).

- - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.core.RefDataClass

      `id`

    - ### Fields inherited from class com.smartgwt.client.core.DataClass

      `factoryCreated, factoryProperties, readOnly`

    - ### Fields inherited from class com.smartgwt.client.core.JsObject

      `jsObj`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TreeNode()`
    `TreeNode(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `TreeNode(java.lang.String name)` Constructor
    `TreeNode(java.lang.String name, TreeNode... children)` Constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Boolean` | `getCanAcceptDrop()` Governs whether dragged data (typically other `treeNode`s) may be dropped over this node.
    `java.lang.Boolean` | `getCanDrag()` Governs whether this node can be dragged.
    `java.lang.Boolean` | `getEnabled()` Default property name denoting whether this record is enabled.
    `java.lang.String` | `getIcon()` This Property allows the developer to customize the icon displayed next to a node.
    `java.lang.String` | `getName()` Provides a name for the node that is unique among its immediate siblings, thus allowing a unique path to be used to identify the node, similar to a file system.
    `static TreeNode` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.Boolean` | `getShowDropIcon()` For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether a drop state icon should be displayed when the user drop-hovers over this folder. Set `node.showDropIcon` to true to show the drop state icon, or false to suppress this. If not specified, this behavior is determined by `TreeGrid.showCustomIconDrop` for this node.
    `java.lang.Boolean` | `getShowOpenIcon()` For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether an open state icon should be displayed when the folder is open.
    `java.lang.String` | `getTitle()` The title of the node as it should appear next to the node icon in the `Tree`.
    `void` | `setCanAcceptDrop(java.lang.Boolean canAcceptDrop)` Governs whether dragged data (typically other `treeNode`s) may be dropped over this node.
    `void` | `setCanDrag(java.lang.Boolean canDrag)` Governs whether this node can be dragged.
    `void` | `setChildren(TreeNode[] children)` For trees with the modelType "children", this property specifies the children of this TreeNode.
    `void` | `setEnabled(java.lang.Boolean enabled)` Default property name denoting whether this record is enabled.
    `void` | `setIcon(java.lang.String icon)` This Property allows the developer to customize the icon displayed next to a node.
    `void` | `setID(java.lang.String id)` For trees with `modelType` "parent", this property specifies the unique ID of this node.
    `void` | `setIsFolder(boolean isFolder)` Set to `true` to explicitly mark this node as a folder.
    `void` | `setName(java.lang.String name)` Provides a name for the node that is unique among its immediate siblings, thus allowing a unique path to be used to identify the node, similar to a file system.
    `void` | `setParentID(java.lang.String parentID)` For trees with modelType "parent", this property specifies unique parent ID of this node.
    `void` | `setShowDropIcon(java.lang.Boolean showDropIcon)` For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether a drop state icon should be displayed when the user drop-hovers over this folder. Set `node.showDropIcon` to true to show the drop state icon, or false to suppress this. If not specified, this behavior is determined by `TreeGrid.showCustomIconDrop` for this node.
    `void` | `setShowOpenIcon(java.lang.Boolean showOpenIcon)` For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether an open state icon should be displayed when the folder is open.
    `void` | `setTitle(java.lang.String title)` The title of the node as it should appear next to the node icon in the `Tree`.

    - ### Methods inherited from class com.smartgwt.client.widgets.grid.ListGridRecord

      `get_baseStyle, get_canEdit, get_canRemove, getBackgroundComponent, getCanExpand, getCanSelect, getCustomStyle, getDetailDS, getIncludeInSummary, getIsGridSummary, getIsGroupSummary, getIsSeparator, getLinkText, getSingleCellValue, set_baseStyle, set_canEdit, set_canRemove, setBackgroundComponent, setCanExpand, setCanSelect, setCustomStyle, setDetailDS, setIncludeInSummary, setIsGridSummary, setIsGroupSummary, setIsSeparator, setLinkText, setSingleCellValue`

    - ### Methods inherited from class com.smartgwt.client.data.Record

      `convertToRecordArray, copyAttributes, copyAttributesInto, getAttributeAsRecordArray, getAttributeAsRecordList, isARecord, toMap`

    - ### Methods inherited from class com.smartgwt.client.core.RefDataClass

      `getRef, getRef, internalSetID`

    - ### Methods inherited from class com.smartgwt.client.core.DataClass

      `applyFactoryProperties, doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, getReadOnly, isFactoryCreated, logConfiguration, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated, setReadOnly`

    - ### Methods inherited from class com.smartgwt.client.core.JsObject

      `equals, getJsObj, hashCode, isCreated, setJavaScriptObject, setJsObj`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TreeNode

          public TreeNode()

    - #### TreeNode

          public TreeNode(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### TreeNode

          public TreeNode(java.lang.String name)

      Constructor
      Parameters:
        `name` - the name

    - #### TreeNode

          public TreeNode(java.lang.String name,
                          TreeNode... children)

      Constructor
      Parameters:
        `name` - the name
        `children` - the children nodes

  - ### Method Detail

    - #### getOrCreateRef

          public static TreeNode getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### setCanAcceptDrop

          public void setCanAcceptDrop(java.lang.Boolean canAcceptDrop)

      Governs whether dragged data (typically other `treeNode`s) may be dropped over this node. Only has an effect if this node is displayed in a `TreeGrid` where `TreeGrid.canAcceptDroppedRecords`, `TreeGrid.canReorderRecords` or `TreeGrid.canReparentNodes` is true.

      Note : This is an advanced setting

      Overrides:
        `setCanAcceptDrop` in class `ListGridRecord`
      Parameters:
        `canAcceptDrop` - Default value is null

    - #### getCanAcceptDrop

          public java.lang.Boolean getCanAcceptDrop()

      Governs whether dragged data (typically other `treeNode`s) may be dropped over this node. Only has an effect if this node is displayed in a `TreeGrid` where `TreeGrid.canAcceptDroppedRecords`, `TreeGrid.canReorderRecords` or `TreeGrid.canReparentNodes` is true.
      Overrides:
        `getCanAcceptDrop` in class `ListGridRecord`
      Returns:
        Boolean

    - #### setCanDrag

          public void setCanDrag(java.lang.Boolean canDrag)

      Governs whether this node can be dragged. Only has an effect if this node is displayed in a `TreeGrid` where `TreeGrid.canDragRecordsOut`, `TreeGrid.canReorderRecords` or `TreeGrid.canReparentNodes` is `true`.

      Note : This is an advanced setting

      Overrides:
        `setCanDrag` in class `ListGridRecord`
      Parameters:
        `canDrag` - Default value is null

    - #### getCanDrag

          public java.lang.Boolean getCanDrag()

      Governs whether this node can be dragged. Only has an effect if this node is displayed in a `TreeGrid` where `TreeGrid.canDragRecordsOut`, `TreeGrid.canReorderRecords` or `TreeGrid.canReparentNodes` is `true`.
      Overrides:
        `getCanDrag` in class `ListGridRecord`
      Returns:
        Boolean

    - #### setEnabled

          public void setEnabled(java.lang.Boolean enabled)

      Default property name denoting whether this record is enabled. Property name may be modified for some grid via `ListGrid.recordEnabledProperty`.
      Overrides:
        `setEnabled` in class `ListGridRecord`
      Parameters:
        `enabled` - Default value is null
      See Also:
        Disabled rows Example

    - #### getEnabled

          public java.lang.Boolean getEnabled()

      Default property name denoting whether this record is enabled. Property name may be modified for some grid via `ListGrid.recordEnabledProperty`.
      Overrides:
        `getEnabled` in class `ListGridRecord`
      Returns:
        Boolean
      See Also:
        Disabled rows Example

    - #### setIcon

          public void setIcon(java.lang.String icon)

      This Property allows the developer to customize the icon displayed next to a node. Set `node.icon` to the URL of the desired icon to display and it will be shown instead of the standard `TreeGrid.nodeIcon` for this node.
      Note that if `showOpenIcon` and/or `showDropIcon` is true for this node, customized icons for folder nodes will be appended with the `TreeGrid.openIconSuffix` or `TreeGrid.dropIconSuffix` suffixes on state change as with the standard `TreeGrid.folderIcon` for this treeGrid. Also note that for custom folder icons, the `TreeGrid.closedIconSuffix` will never be appended.

      You can change the name of this property by setting `TreeGrid.customIconProperty`.

      Parameters:
        `icon` - See `SCImgURL` . Default value is null

    - #### getIcon

          public java.lang.String getIcon()

      This Property allows the developer to customize the icon displayed next to a node. Set `node.icon` to the URL of the desired icon to display and it will be shown instead of the standard `TreeGrid.nodeIcon` for this node.
      Note that if `showOpenIcon` and/or `showDropIcon` is true for this node, customized icons for folder nodes will be appended with the `TreeGrid.openIconSuffix` or `TreeGrid.dropIconSuffix` suffixes on state change as with the standard `TreeGrid.folderIcon` for this treeGrid. Also note that for custom folder icons, the `TreeGrid.closedIconSuffix` will never be appended.

      You can change the name of this property by setting `TreeGrid.customIconProperty`.

      Returns:
        See `SCImgURL`

    - #### setName

          public void setName(java.lang.String name)

      Provides a name for the node that is unique among its immediate siblings, thus allowing a unique path to be used to identify the node, similar to a file system. See `Tree.getPath()`.

      If the nameProperty is not set on a given node, the `id` will be used instead. If this is also missing, `Tree.getName()` and `Tree.getPath()` will auto-generate a unique name for you. Thus names are not required, but if the dataset you are using already has usable names for each node, using them can make APIs such as `Tree.find()` more useful. Alternatively, if your dataset has unique ids consider providing those as `id`.

      If a value provided for the nameProperty of a node (e.g. node.name) is not a string, it will be converted to a string by the Tree via ""+value.

      This property is also used as the default title for the node (see `Tree.getTitle()`) if `title` is not specified.

      Note: the name of this property can be changed by setting `Tree.nameProperty`.

      Parameters:
        `name` - Default value is null, but see below
      See Also:
        `Tree.setNameProperty(java.lang.String)`, `Tree.setPathDelim(java.lang.String)`, `Tree.getPath(com.smartgwt.client.widgets.tree.TreeNode)`, `Tree.getTitle(com.smartgwt.client.widgets.tree.TreeNode)`

    - #### getName

          public java.lang.String getName()

      Provides a name for the node that is unique among its immediate siblings, thus allowing a unique path to be used to identify the node, similar to a file system. See `Tree.getPath()`.

      If the nameProperty is not set on a given node, the `id` will be used instead. If this is also missing, `Tree.getName()` and `Tree.getPath()` will auto-generate a unique name for you. Thus names are not required, but if the dataset you are using already has usable names for each node, using them can make APIs such as `Tree.find()` more useful. Alternatively, if your dataset has unique ids consider providing those as `id`.

      If a value provided for the nameProperty of a node (e.g. node.name) is not a string, it will be converted to a string by the Tree via ""+value.

      This property is also used as the default title for the node (see `Tree.getTitle()`) if `title` is not specified.

      Note: the name of this property can be changed by setting `Tree.nameProperty`.

      Returns:
        String
      See Also:
        `Tree.getNameProperty()`, `Tree.getPathDelim()`, `Tree.getPath(com.smartgwt.client.widgets.tree.TreeNode)`, `Tree.getTitle(com.smartgwt.client.widgets.tree.TreeNode)`

    - #### setShowDropIcon

          public void setShowDropIcon(java.lang.Boolean showDropIcon)

      For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether a drop state icon should be displayed when the user drop-hovers over this folder.
      Set `node.showDropIcon` to true to show the drop state icon, or false to suppress this.
      If not specified, this behavior is determined by `TreeGrid.showCustomIconDrop` for this node.

      You can change the name of this property by setting `TreeGrid.customIconDropProperty`.

      Note : This is an advanced setting

      Parameters:
        `showDropIcon` - Default value is false
      See Also:
        `TreeGrid.setCustomIconProperty(java.lang.String)`, `TreeGrid.setShowCustomIconDrop(java.lang.Boolean)`

    - #### getShowDropIcon

          public java.lang.Boolean getShowDropIcon()

      For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether a drop state icon should be displayed when the user drop-hovers over this folder.
      Set `node.showDropIcon` to true to show the drop state icon, or false to suppress this.
      If not specified, this behavior is determined by `TreeGrid.showCustomIconDrop` for this node.

      You can change the name of this property by setting `TreeGrid.customIconDropProperty`.

      Returns:
        Boolean
      See Also:
        `TreeGrid.getCustomIconProperty()`, `TreeGrid.getShowCustomIconDrop()`

    - #### setShowOpenIcon

          public void setShowOpenIcon(java.lang.Boolean showOpenIcon)

      For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether an open state icon should be displayed when the folder is open. Set `node.showOpenIcon` to true to show the open state icons, or false to suppress this.
      If not specified, this behavior is determined by `TreeGrid.showCustomIconOpen` for this node.

      You can change the name of this property by setting `TreeGrid.customIconOpenProperty`.

      Note : This is an advanced setting

      Parameters:
        `showOpenIcon` - Default value is false
      See Also:
        `TreeGrid.setCustomIconProperty(java.lang.String)`, `TreeGrid.setShowCustomIconOpen(java.lang.Boolean)`

    - #### getShowOpenIcon

          public java.lang.Boolean getShowOpenIcon()

      For folder nodes showing custom icons (set via `icon`), this property allows the developer to specify on a per-node basis whether an open state icon should be displayed when the folder is open. Set `node.showOpenIcon` to true to show the open state icons, or false to suppress this.
      If not specified, this behavior is determined by `TreeGrid.showCustomIconOpen` for this node.

      You can change the name of this property by setting `TreeGrid.customIconOpenProperty`.

      Returns:
        Boolean
      See Also:
        `TreeGrid.getCustomIconProperty()`, `TreeGrid.getShowCustomIconOpen()`

    - #### setTitle

          public void setTitle(java.lang.String title)

      The title of the node as it should appear next to the node icon in the `Tree`. If left unset, the value of `name` is used by default. See the description in `Tree.getTitle()` for full details.

      Note: the name of this property can be changed by setting `Tree.titleProperty`.

      Parameters:
        `title` - Default value is null
      See Also:
        `Tree.setTitleProperty(java.lang.String)`, `Tree.getTitle(com.smartgwt.client.widgets.tree.TreeNode)`

    - #### getTitle

          public java.lang.String getTitle()

      The title of the node as it should appear next to the node icon in the `Tree`. If left unset, the value of `name` is used by default. See the description in `Tree.getTitle()` for full details.

      Note: the name of this property can be changed by setting `Tree.titleProperty`.

      Returns:
        String
      See Also:
        `Tree.getTitleProperty()`, `Tree.getTitle(com.smartgwt.client.widgets.tree.TreeNode)`

    - #### setID

          public void setID(java.lang.String id)

      For trees with `modelType` "parent", this property specifies the unique ID of this node. The unique ID of a node, together with the unique ID of its parent (see `parentId`) is used by `Tree.linkNodes(com.smartgwt.client.widgets.tree.TreeNode[])` to link a list of nodes into a tree.

      Note: the name of this property can be changed by setting `idField`.

      Parameters:
        `id` - id Default value is null

    - #### setParentID

          public void setParentID(java.lang.String parentID)

      For trees with modelType "parent", this property specifies unique parent ID of this node. The unique ID of a node, together with the unique ID of its parent is used by `Tree.linkNodes(com.smartgwt.client.widgets.tree.TreeNode[])` to link a list of nodes into a tree.

      Note: the name of this property can be changed by setting `parentIdField`.

      Parameters:
        `parentId` - parentId Default value is null

    - #### setIsFolder

          public void setIsFolder(boolean isFolder)

      Set to `true` to explicitly mark this node as a folder. See `Tree.isFolder(com.smartgwt.client.widgets.tree.TreeNode)` for a full description of how the `Tree` determines whether a node is a folder or not.

      Note: the name of this property can be changed by setting `isFolderProperty`.

      Parameters:
        `isFolder` - isFolder Default value is null

    - #### setChildren

          public void setChildren(TreeNode[] children)

      For trees with the modelType "children", this property specifies the children of this TreeNode.

      Note: the name of this property can be changed by setting `childrenProperty`

      Parameters:
        `children` - children Default value is null