Class TreeGrid

All Implemented Interfaces:
HasAttachHandlers, HasHandlers, EventListener, HasVisibility, IsWidget, LogicalStructure, DataBoundComponent, HasClearHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragCompleteHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropCompleteHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFetchDataHandlers, HasFocusChangedHandlers, HasFormulaUpdatedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasRuleContextChangedHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers, HasBodyKeyPressHandlers, HasCellClickHandlers, HasCellContextClickHandlers, HasCellDoubleClickHandlers, HasCellErrorIconHoverHandlers, HasCellErrorIconOutHandlers, HasCellErrorIconOverHandlers, HasCellHoverHandlers, HasCellMouseDownHandlers, HasCellMouseUpHandlers, HasCellOutHandlers, HasCellOverHandlers, HasCellSavedHandlers, HasCellSelectionChangedHandlers, HasCellValueHoverHandlers, HasCriteriaChangedHandlers, HasDataArrivedHandlers, HasDataChangedHandlers, HasDrawAreaChangedHandlers, HasEditCompleteHandlers, HasEditFailedHandlers, HasEditorEnterHandlers, HasEditorExitHandlers, HasFieldStateChangedHandlers, HasFilterEditorSubmitHandlers, HasGroupByCompleteHandlers, HasGroupByHandlers, HasGroupStateChangedHandlers, HasGroupTreeChangedHandlers, HasHeaderClickHandlers, HasHeaderDoubleClickHandlers, HasHeaderHoverHandlers, HasHilitesChangedHandlers, HasRecordClickHandlers, HasRecordCollapseHandlers, HasRecordDoubleClickHandlers, HasRecordDropHandlers, HasRecordExpandHandlers, HasRegroupHandlers, HasRemoveRecordClickHandlers, HasRowContextClickHandlers, HasRowEditorEnterHandlers, HasRowEditorExitHandlers, HasRowHoverHandlers, HasRowMouseDownHandlers, HasRowMouseUpHandlers, HasRowOutHandlers, HasRowOverHandlers, HasSelectionChangedHandlers, HasSelectionUpdatedHandlers, HasSetSortHandlers, HasSortChangedHandlers, HasSorterClickHandlers, HasSorterContextClickHandlers, HasViewStateChangedHandlers, HasMembersChangedHandlers, HasDataArrivedHandlers, HasDataChangedHandlers, HasFolderClickHandlers, HasFolderClosedHandlers, HasFolderContextClickHandlers, HasFolderDropHandlers, HasFolderOpenedHandlers, HasLeafClickHandlers, HasLeafContextClickHandlers, HasNodeClickHandlers, HasNodeContextClickHandlers
Direct Known Subclasses:
EditTree, TreePalette

The Smart GWT system supports hierarchical data (also referred to as tree data due to its "branching" organization) with:
  • the Tree class, which manipulates hierarchical data sets
  • the TreeGrid widget class, which extends the ListGrid class to visually present tree data in an expandable/collapsible format.
For information on DataBinding Trees, see TreeDataBinding.

A TreeGrid works just like a ListGrid, except one column (specified by TreeGridField.treeField) shows a hierarchical Tree. A TreeGrid is not limited to displaying just the Tree column - you can define additional columns (via fields) which will render just like the columns of a ListGrid, and support all of the functionality of ListGrid columns, such as formatters.

Except where explicitly overridden, ListGrid methods, callbacks, and properties apply to TreeGrids as well. The ListGrid defines some methods as taking/returning ListGridField and ListGridRecord. When using those methods in a TreeGrid, those types will be TreeGridField and TreeNode, respectively.

  • Constructor Details

    • TreeGrid

      public TreeGrid()
    • TreeGrid

      public TreeGrid(JavaScriptObject jsObj)
  • Method Details

    • getOrCreateRef

      public static TreeGrid getOrCreateRef(JavaScriptObject jsObj)
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
      Changes the defaults for Canvas AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
      Changes the defaults for FormItem AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • create

      protected JavaScriptObject create()
      Overrides:
      create in class ListGrid
    • setAlwaysShowOpener

      public TreeGrid setAlwaysShowOpener(Boolean alwaysShowOpener)
      If showOpener is true, should we display the opener icon for folders even if they have no children?

      Note that for trees which load data on demand, we may not know if a folder has any descendants if it has never been opened. As such we will show the opener icon next to the folder. Once the user opens the icon and a fetch occurs, if the folder is empty, and this property is false, the opener icon will be hidden.

      For more information on load on demand trees, and how we determine whether a node is a a folder or a leaf, please refer to the TreeDataBinding documentation.

      Parameters:
      alwaysShowOpener - New alwaysShowOpener value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getAlwaysShowOpener

      public Boolean getAlwaysShowOpener()
      If showOpener is true, should we display the opener icon for folders even if they have no children?

      Note that for trees which load data on demand, we may not know if a folder has any descendants if it has never been opened. As such we will show the opener icon next to the folder. Once the user opens the icon and a fetch occurs, if the folder is empty, and this property is false, the opener icon will be hidden.

      For more information on load on demand trees, and how we determine whether a node is a a folder or a leaf, please refer to the TreeDataBinding documentation.

      Returns:
      Current alwaysShowOpener value. Default value is false
    • setAnimateFolderEffect

      public TreeGrid setAnimateFolderEffect(AnimationAcceleration animateFolderEffect)
      When animating folder opening / closing, this property can be set to apply an animated acceleration effect. This allows the animation speed to be "weighted", for example expanding or collapsing at a faster rate toward the beginning of the animation than at the end.
      Overrides:
      setAnimateFolderEffect in class ListGrid
      Parameters:
      animateFolderEffect - New animateFolderEffect value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getAnimateFolderEffect

      public AnimationAcceleration getAnimateFolderEffect()
      When animating folder opening / closing, this property can be set to apply an animated acceleration effect. This allows the animation speed to be "weighted", for example expanding or collapsing at a faster rate toward the beginning of the animation than at the end.
      Overrides:
      getAnimateFolderEffect in class ListGrid
      Returns:
      Current animateFolderEffect value. Default value is null
    • setAnimateFolderMaxRows

      public TreeGrid setAnimateFolderMaxRows(Integer animateFolderMaxRows)
      If animateFolders is true for this grid, this number can be set to designate the maximum number of rows to animate at a time when opening / closing a folder.
      Overrides:
      setAnimateFolderMaxRows in class ListGrid
      Parameters:
      animateFolderMaxRows - New animateFolderMaxRows value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getAnimateFolderMaxRows

      public Integer getAnimateFolderMaxRows()
      If animateFolders is true for this grid, this number can be set to designate the maximum number of rows to animate at a time when opening / closing a folder.
      Overrides:
      getAnimateFolderMaxRows in class ListGrid
      Returns:
      If animateFolders is true for this treeGrid, this method returns the the maximum number of rows to animate at a time when opening / closing a folder. This method will return animateFolderMaxRows if set. Otherwise the value will be calculated as 3x the number of rows required to fill a viewport, capped at a maximum value of 75. Default value is null
      See Also:
    • setAnimateFolders

      public TreeGrid setAnimateFolders(Boolean animateFolders)
      If true, when folders are opened / closed children will be animated into view.

      Folder animations are automatically disabled if ListGrid.autoFitData is set to "vertical" or "both", or if records components are used.

      Overrides:
      setAnimateFolders in class ListGrid
      Parameters:
      animateFolders - New animateFolders value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getAnimateFolders

      public Boolean getAnimateFolders()
      If true, when folders are opened / closed children will be animated into view.

      Folder animations are automatically disabled if ListGrid.autoFitData is set to "vertical" or "both", or if records components are used.

      Overrides:
      getAnimateFolders in class ListGrid
      Returns:
      Current animateFolders value. Default value is true
      See Also:
    • setAnimateFolderSpeed

      public TreeGrid setAnimateFolderSpeed(int animateFolderSpeed)
      When animating folder opening / closing, this property designates the speed of the animation in pixels shown (or hidden) per second. Takes precedence over the animateFolderTime property, which allows the developer to specify a duration for the animation rather than a speed.
      Overrides:
      setAnimateFolderSpeed in class ListGrid
      Parameters:
      animateFolderSpeed - New animateFolderSpeed value. Default value is 3000
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getAnimateFolderSpeed

      public int getAnimateFolderSpeed()
      When animating folder opening / closing, this property designates the speed of the animation in pixels shown (or hidden) per second. Takes precedence over the animateFolderTime property, which allows the developer to specify a duration for the animation rather than a speed.
      Overrides:
      getAnimateFolderSpeed in class ListGrid
      Returns:
      Current animateFolderSpeed value. Default value is 3000
      See Also:
    • setAnimateFolderTime

      public TreeGrid setAnimateFolderTime(int animateFolderTime)
      When animating folder opening / closing, if animateFolderSpeed is not set, this property designates the duration of the animation in ms.
      Overrides:
      setAnimateFolderTime in class ListGrid
      Parameters:
      animateFolderTime - New animateFolderTime value. Default value is 100
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getAnimateFolderTime

      public int getAnimateFolderTime()
      When animating folder opening / closing, if animateFolderSpeed is not set, this property designates the duration of the animation in ms.
      Overrides:
      getAnimateFolderTime in class ListGrid
      Returns:
      Current animateFolderTime value. Default value is 100
      See Also:
    • setAutoAssignTreeField

      public TreeGrid setAutoAssignTreeField(boolean autoAssignTreeField) throws IllegalStateException
      If this grid was passed an explicit set of fields, but no field was specified as the "tree-field" (showing indentations for tree hierarchy and tree icons), should we assign one of the other fields to be the tree-field?

      When true, if we're showing a field for the Tree.titleProperty of the tree, this will be displayed as a Tree Field by default. If not, the first entry in the specified fields array will be used.

      This may be set to false to display a tree or partial tree as a flattened list within a TreeGrid.

      Parameters:
      autoAssignTreeField - New autoAssignTreeField value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getAutoAssignTreeField

      public boolean getAutoAssignTreeField()
      If this grid was passed an explicit set of fields, but no field was specified as the "tree-field" (showing indentations for tree hierarchy and tree icons), should we assign one of the other fields to be the tree-field?

      When true, if we're showing a field for the Tree.titleProperty of the tree, this will be displayed as a Tree Field by default. If not, the first entry in the specified fields array will be used.

      This may be set to false to display a tree or partial tree as a flattened list within a TreeGrid.

      Returns:
      Current autoAssignTreeField value. Default value is true
    • setAutoFetchTextMatchStyle

      public TreeGrid setAutoFetchTextMatchStyle(TextMatchStyle autoFetchTextMatchStyle) throws IllegalStateException
      With loadDataOnDemand:true, TreeGrids fetch data by selecting the child nodes of each parent, which should be exact match, so we default to autoFetchTextMatchStyle:"exact" when autoFetchData is true.

      See ListGrid.autoFetchTextMatchStyle for details.

      Specified by:
      setAutoFetchTextMatchStyle in interface DataBoundComponent
      Overrides:
      setAutoFetchTextMatchStyle in class ListGrid
      Parameters:
      autoFetchTextMatchStyle - New autoFetchTextMatchStyle value. Default value is "exact"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getAutoFetchTextMatchStyle

      public TextMatchStyle getAutoFetchTextMatchStyle()
      With loadDataOnDemand:true, TreeGrids fetch data by selecting the child nodes of each parent, which should be exact match, so we default to autoFetchTextMatchStyle:"exact" when autoFetchData is true.

      See ListGrid.autoFetchTextMatchStyle for details.

      Specified by:
      getAutoFetchTextMatchStyle in interface DataBoundComponent
      Overrides:
      getAutoFetchTextMatchStyle in class ListGrid
      Returns:
      Current autoFetchTextMatchStyle value. Default value is "exact"
      See Also:
    • setAutoOpenTree

      public TreeGrid setAutoOpenTree(String autoOpenTree) throws IllegalStateException
      Which nodes should be opened automatically. This applies directly to ResultTree.autoOpen.
      Parameters:
      autoOpenTree - New autoOpenTree value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getAutoOpenTree

      public String getAutoOpenTree()
      Which nodes should be opened automatically. This applies directly to ResultTree.autoOpen.
      Returns:
      Current autoOpenTree value. Default value is null
    • setAutoPreserveOpenState

      public TreeGrid setAutoPreserveOpenState(PreserveOpenState autoPreserveOpenState) throws IllegalStateException
      For dataBound treeGrids this specifies the ResultTree.autoPreserveOpenState, governing whether the open state of the tree should be preserved when new data arrives due to cache invalidation.
      Parameters:
      autoPreserveOpenState - New autoPreserveOpenState value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getAutoPreserveOpenState

      public PreserveOpenState getAutoPreserveOpenState()
      For dataBound treeGrids this specifies the ResultTree.autoPreserveOpenState, governing whether the open state of the tree should be preserved when new data arrives due to cache invalidation.
      Returns:
      Current autoPreserveOpenState value. Default value is null
    • setCanAcceptDroppedRecords

      public TreeGrid setCanAcceptDroppedRecords(Boolean canAcceptDroppedRecords)
      Indicates whether records can be dropped into this listGrid.
      Overrides:
      setCanAcceptDroppedRecords in class ListGrid
      Parameters:
      canAcceptDroppedRecords - New canAcceptDroppedRecords value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanAcceptDroppedRecords

      public Boolean getCanAcceptDroppedRecords()
      Indicates whether records can be dropped into this listGrid.
      Overrides:
      getCanAcceptDroppedRecords in class ListGrid
      Returns:
      Current canAcceptDroppedRecords value. Default value is false
      See Also:
    • setCanDragRecordsOut

      public TreeGrid setCanDragRecordsOut(Boolean canDragRecordsOut)
      Indicates whether records can be dragged from this listGrid and dropped elsewhere.

      NOTE: If canDragRecordsOut is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a record starts a drag operation rather than a scroll, but see the discussion of drag handles. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag and drop of records out of the grid.

      Overrides:
      setCanDragRecordsOut in class ListGrid
      Parameters:
      canDragRecordsOut - New canDragRecordsOut value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanDragRecordsOut

      public Boolean getCanDragRecordsOut()
      Indicates whether records can be dragged from this listGrid and dropped elsewhere.

      NOTE: If canDragRecordsOut is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a record starts a drag operation rather than a scroll, but see the discussion of drag handles. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag and drop of records out of the grid.

      Overrides:
      getCanDragRecordsOut in class ListGrid
      Returns:
      Current canDragRecordsOut value. Default value is false
      See Also:
    • setCanDropOnLeaves

      public TreeGrid setCanDropOnLeaves(Boolean canDropOnLeaves)
      Whether drops are allowed on leaf nodes.

      Dropping is ordinarily not allowed on leaf nodes unless canReorderRecords is set.

      The default action for a drop on a leaf node is to place the node in that leaf's parent folder. This can be customized by overriding folderDrop().

      Note that enabling canDropOnLeaves is usually only appropriate where you intend to add a custom folderDrop() implementation that does not add a child node under the leaf. If you want to add a child nodes to a leaf, instead of enabling canDropOnLeaves, use empty folders instead - see Tree.isFolder() for how to control whether a node is considered a folder.

      Note : This is an advanced setting

      Parameters:
      canDropOnLeaves - New canDropOnLeaves value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanDropOnLeaves

      public Boolean getCanDropOnLeaves()
      Whether drops are allowed on leaf nodes.

      Dropping is ordinarily not allowed on leaf nodes unless canReorderRecords is set.

      The default action for a drop on a leaf node is to place the node in that leaf's parent folder. This can be customized by overriding folderDrop().

      Note that enabling canDropOnLeaves is usually only appropriate where you intend to add a custom folderDrop() implementation that does not add a child node under the leaf. If you want to add a child nodes to a leaf, instead of enabling canDropOnLeaves, use empty folders instead - see Tree.isFolder() for how to control whether a node is considered a folder.

      Returns:
      Current canDropOnLeaves value. Default value is false
      See Also:
    • setCanDropSiblingAfterLastNode

      public TreeGrid setCanDropSiblingAfterLastNode(boolean canDropSiblingAfterLastNode)
      When performing a drag and drop to add or move data within the tree, should users be able to make the dropped node a sibling of the last node in the tree by dropping just below it?

      When set to true, if a user performs a drop action in the space immediately below the last node, (less than half the grid's specified cellHeight away), the dropped data will be added to the parent of that last node, making them siblings. If the parent will not accept drops, the dropped data will be added to the first ancestor that will accept a drop.

      If the user performs the drop lower down in the empty area below the last row, of if this property is set to false, the dropped data will be added as a last child to the root node instead.

      Note : This is an advanced setting

      Parameters:
      canDropSiblingAfterLastNode - New canDropSiblingAfterLastNode value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getCanDropSiblingAfterLastNode

      public boolean getCanDropSiblingAfterLastNode()
      When performing a drag and drop to add or move data within the tree, should users be able to make the dropped node a sibling of the last node in the tree by dropping just below it?

      When set to true, if a user performs a drop action in the space immediately below the last node, (less than half the grid's specified cellHeight away), the dropped data will be added to the parent of that last node, making them siblings. If the parent will not accept drops, the dropped data will be added to the first ancestor that will accept a drop.

      If the user performs the drop lower down in the empty area below the last row, of if this property is set to false, the dropped data will be added as a last child to the root node instead.

      Returns:
      Current canDropSiblingAfterLastNode value. Default value is true
    • setCanReorderRecords

      public TreeGrid setCanReorderRecords(Boolean canReorderRecords)
      Indicates whether records can be reordered by dragging within this ListGrid.

      NOTE: If canReorderRecords is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a record starts a reorder operation rather than a scroll, but see the discussion of drag handles. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag-reordering of records.

      Note : This is an advanced setting

      Overrides:
      setCanReorderRecords in class ListGrid
      Parameters:
      canReorderRecords - New canReorderRecords value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanReorderRecords

      public Boolean getCanReorderRecords()
      Indicates whether records can be reordered by dragging within this ListGrid.

      NOTE: If canReorderRecords is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a record starts a reorder operation rather than a scroll, but see the discussion of drag handles. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag-reordering of records.

      Overrides:
      getCanReorderRecords in class ListGrid
      Returns:
      Current canReorderRecords value. Default value is false
      See Also:
    • setCanReparentNodes

      public TreeGrid setCanReparentNodes(Boolean canReparentNodes)
      If set this property allows the user to reparent nodes by dragging them from their current folder to a new folder.
      Backcompat: For backwards compatibility with versions prior to Smart GWT 1.5, if this property is unset, but this.canAcceptDroppedRecords is true, we allow nodes to be dragged to different folders.
      Parameters:
      canReparentNodes - New canReparentNodes value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanReparentNodes

      public Boolean getCanReparentNodes()
      If set this property allows the user to reparent nodes by dragging them from their current folder to a new folder.
      Backcompat: For backwards compatibility with versions prior to Smart GWT 1.5, if this property is unset, but this.canAcceptDroppedRecords is true, we allow nodes to be dragged to different folders.
      Returns:
      Current canReparentNodes value. Default value is null
      See Also:
    • setCanSelectAll

      public TreeGrid setCanSelectAll(Boolean canSelectAll)
      This property is not supported on TreeGrid, and only applies to the ListGrid superclass.
      Overrides:
      setCanSelectAll in class ListGrid
      Parameters:
      canSelectAll - New canSelectAll value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCanSelectAll

      public Boolean getCanSelectAll()
      This property is not supported on TreeGrid, and only applies to the ListGrid superclass.
      Overrides:
      getCanSelectAll in class ListGrid
      Returns:
      Current canSelectAll value. Default value is null
      See Also:
    • setCantDragIntoChildMessage

      public TreeGrid setCantDragIntoChildMessage(String cantDragIntoChildMessage) throws IllegalStateException
      Message displayed when user attempts to drop a node into a child of itself.
      Parameters:
      cantDragIntoChildMessage - New cantDragIntoChildMessage value. Default value is "You can't drag an item into one of its children"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getCantDragIntoChildMessage

      public String getCantDragIntoChildMessage()
      Message displayed when user attempts to drop a node into a child of itself.
      Returns:
      Current cantDragIntoChildMessage value. Default value is "You can't drag an item into one of its children"
      See Also:
    • setCantDragIntoSelfMessage

      public TreeGrid setCantDragIntoSelfMessage(String cantDragIntoSelfMessage) throws IllegalStateException
      Message displayed when user attempts to drop a dragged node onto itself.
      Parameters:
      cantDragIntoSelfMessage - New cantDragIntoSelfMessage value. Default value is "You can't drag an item into itself."
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getCantDragIntoSelfMessage

      public String getCantDragIntoSelfMessage()
      Message displayed when user attempts to drop a dragged node onto itself.
      Returns:
      Current cantDragIntoSelfMessage value. Default value is "You can't drag an item into itself."
      See Also:
    • setCantDragMultipleNodeOccurencesMessage

      public TreeGrid setCantDragMultipleNodeOccurencesMessage(String cantDragMultipleNodeOccurencesMessage) throws IllegalStateException
      For Multi-link trees only, the message displayed when the user attempts to drag two or more occurrences of the same node into a parent.
      Parameters:
      cantDragMultipleNodeOccurencesMessage - New cantDragMultipleNodeOccurencesMessage value. Default value is "You can't drag two occurrences of the same node into a parent."
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getCantDragMultipleNodeOccurencesMessage

      public String getCantDragMultipleNodeOccurencesMessage()
      For Multi-link trees only, the message displayed when the user attempts to drag two or more occurrences of the same node into a parent.
      Returns:
      Current cantDragMultipleNodeOccurencesMessage value. Default value is "You can't drag two occurrences of the same node into a parent."
      See Also:
    • setCascadeSelection

      public TreeGrid setCascadeSelection(Boolean cascadeSelection) throws IllegalStateException
      Should children be selected when parent is selected? And should parent be selected when any child is selected?
      Parameters:
      cascadeSelection - New cascadeSelection value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getCascadeSelection

      public Boolean getCascadeSelection()
      Should children be selected when parent is selected? And should parent be selected when any child is selected?
      Returns:
      Current cascadeSelection value. Default value is false
    • setChildCannotBeItsOwnAncestorMessage

      public TreeGrid setChildCannotBeItsOwnAncestorMessage(String childCannotBeItsOwnAncestorMessage) throws IllegalStateException
      Message displayed when user attempts to drop a node into a parent that has the same ID as the dropped node somewhere in its ancestor chain (ie, the same node as the parent, or grandparent, and so on)
      Parameters:
      childCannotBeItsOwnAncestorMessage - New childCannotBeItsOwnAncestorMessage value. Default value is "This drag operation would mean an item is a descendant of an existing item with the same ID"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getChildCannotBeItsOwnAncestorMessage

      public String getChildCannotBeItsOwnAncestorMessage()
      Message displayed when user attempts to drop a node into a parent that has the same ID as the dropped node somewhere in its ancestor chain (ie, the same node as the parent, or grandparent, and so on)
      Returns:
      Current childCannotBeItsOwnAncestorMessage value. Default value is "This drag operation would mean an item is a descendant of an existing item with the same ID"
      See Also:
    • setClosedIconSuffix

      public TreeGrid setClosedIconSuffix(String closedIconSuffix) throws IllegalStateException
      This suffix will be appended to the folderIcon for closed folders. If showOpenIcons is set to false this suffix will also be appended to open folders' icons.
      Parameters:
      closedIconSuffix - New closedIconSuffix value. Default value is "closed"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getClosedIconSuffix

      public String getClosedIconSuffix()
      This suffix will be appended to the folderIcon for closed folders. If showOpenIcons is set to false this suffix will also be appended to open folders' icons.
      Returns:
      Current closedIconSuffix value. Default value is "closed"
    • setConnectorImage

      public TreeGrid setConnectorImage(String connectorImage) throws IllegalStateException
      The base filename or stateful image block for the connector icons shown when showConnectors is true. Connector icons are rendered into the title field of each row and show the dotted hierarchy lines between siblings of the same parent node. For each node, a connector icon may be shown:
      • As an opener icon for folder nodes, next to the folder icon
      • In place of an opener icon for leaf nodes, next to the leaf icon
      • As a standalone vertical continuation line in the indent to the left of the node, to show a connection between some ancestor node's siblings (only relevant if showFullConnectors is true).
      Note that showFullConnectors governs whether connector lines will be displayed for all indent levels, or just for the innermost level of the tree.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node. Assuming the connectorImage is set to {baseName}.{extension}, the full set of images to be displayed will be:

      {baseName}_ancestor[_rtl].{extension} if showFullConnectors is true, this is the URL for the vertical continuation image to be displayed at the appropriate indent levels for ancestor nodes with subsequent children.

      For nodes with no children:

      • {baseName}_single[_rtl].{extension}: Shown when there is no connector line attached to the parent or previous sibling, and no connector line to the next sibling. For showFullConnectors:true trees, there will always be a connector leading to the parent or previous sibling if its present in the tree so this icon can only be displayed for the first row.
      • {baseName}_start[_rtl].{extension}: Shown when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling. As with _single this will only ever be used for the first row if showFullConnectors is true
      • {baseName}_end[_rtl].{extension}: Shown if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_middle[_rtl].{extension}: Shown where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      For folders with children. Note that if showFullConnectors is false, open folders will never show a connector to subsequent siblings:
      • {baseName}_opened_single[_rtl].{extension} opened folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_opened_start[_rtl].{extension}: opened folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_opened_end[_rtl].{extension}: opened folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_opened_middle[_rtl].{extension}: opened folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      • {baseName}_closed_single[_rtl].{extension} closed folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_closed_start[_rtl].{extension}: closed folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_closed_end[_rtl].{extension}: closed folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_closed_middle[_rtl].{extension}: closed folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      (Note '[_rtl]' means that "_rtl" will be attached if isRTL() is true for this widget).

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for a connectorImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_ancestor[_rtl]_selected.{extension}, {baseName}_single[_rtl]_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states listed above. These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      Parameters:
      connectorImage - New connectorImage value. Default value is "[SKIN]connector.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getConnectorImage

      public String getConnectorImage()
      The base filename or stateful image block for the connector icons shown when showConnectors is true. Connector icons are rendered into the title field of each row and show the dotted hierarchy lines between siblings of the same parent node. For each node, a connector icon may be shown:
      • As an opener icon for folder nodes, next to the folder icon
      • In place of an opener icon for leaf nodes, next to the leaf icon
      • As a standalone vertical continuation line in the indent to the left of the node, to show a connection between some ancestor node's siblings (only relevant if showFullConnectors is true).
      Note that showFullConnectors governs whether connector lines will be displayed for all indent levels, or just for the innermost level of the tree.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node. Assuming the connectorImage is set to {baseName}.{extension}, the full set of images to be displayed will be:

      {baseName}_ancestor[_rtl].{extension} if showFullConnectors is true, this is the URL for the vertical continuation image to be displayed at the appropriate indent levels for ancestor nodes with subsequent children.

      For nodes with no children:

      • {baseName}_single[_rtl].{extension}: Shown when there is no connector line attached to the parent or previous sibling, and no connector line to the next sibling. For showFullConnectors:true trees, there will always be a connector leading to the parent or previous sibling if its present in the tree so this icon can only be displayed for the first row.
      • {baseName}_start[_rtl].{extension}: Shown when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling. As with _single this will only ever be used for the first row if showFullConnectors is true
      • {baseName}_end[_rtl].{extension}: Shown if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_middle[_rtl].{extension}: Shown where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      For folders with children. Note that if showFullConnectors is false, open folders will never show a connector to subsequent siblings:
      • {baseName}_opened_single[_rtl].{extension} opened folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_opened_start[_rtl].{extension}: opened folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_opened_end[_rtl].{extension}: opened folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_opened_middle[_rtl].{extension}: opened folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      • {baseName}_closed_single[_rtl].{extension} closed folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_closed_start[_rtl].{extension}: closed folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_closed_end[_rtl].{extension}: closed folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_closed_middle[_rtl].{extension}: closed folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      (Note '[_rtl]' means that "_rtl" will be attached if isRTL() is true for this widget).

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for a connectorImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_ancestor[_rtl]_selected.{extension}, {baseName}_single[_rtl]_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states listed above. These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      Returns:
      Current connectorImage value. Default value is "[SKIN]connector.gif"
      See Also:
    • setConnectorImage

      public TreeGrid setConnectorImage(SCStatefulImgConfig connectorImage) throws IllegalStateException
      The base filename or stateful image block for the connector icons shown when showConnectors is true. Connector icons are rendered into the title field of each row and show the dotted hierarchy lines between siblings of the same parent node. For each node, a connector icon may be shown:
      • As an opener icon for folder nodes, next to the folder icon
      • In place of an opener icon for leaf nodes, next to the leaf icon
      • As a standalone vertical continuation line in the indent to the left of the node, to show a connection between some ancestor node's siblings (only relevant if showFullConnectors is true).
      Note that showFullConnectors governs whether connector lines will be displayed for all indent levels, or just for the innermost level of the tree.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node. Assuming the connectorImage is set to {baseName}.{extension}, the full set of images to be displayed will be:

      {baseName}_ancestor[_rtl].{extension} if showFullConnectors is true, this is the URL for the vertical continuation image to be displayed at the appropriate indent levels for ancestor nodes with subsequent children.

      For nodes with no children:

      • {baseName}_single[_rtl].{extension}: Shown when there is no connector line attached to the parent or previous sibling, and no connector line to the next sibling. For showFullConnectors:true trees, there will always be a connector leading to the parent or previous sibling if its present in the tree so this icon can only be displayed for the first row.
      • {baseName}_start[_rtl].{extension}: Shown when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling. As with _single this will only ever be used for the first row if showFullConnectors is true
      • {baseName}_end[_rtl].{extension}: Shown if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_middle[_rtl].{extension}: Shown where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      For folders with children. Note that if showFullConnectors is false, open folders will never show a connector to subsequent siblings:
      • {baseName}_opened_single[_rtl].{extension} opened folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_opened_start[_rtl].{extension}: opened folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_opened_end[_rtl].{extension}: opened folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_opened_middle[_rtl].{extension}: opened folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      • {baseName}_closed_single[_rtl].{extension} closed folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_closed_start[_rtl].{extension}: closed folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_closed_end[_rtl].{extension}: closed folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_closed_middle[_rtl].{extension}: closed folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      (Note '[_rtl]' means that "_rtl" will be attached if isRTL() is true for this widget).

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for a connectorImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_ancestor[_rtl]_selected.{extension}, {baseName}_single[_rtl]_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states listed above. These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      Parameters:
      connectorImage - New connectorImage value. Default value is "[SKIN]connector.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getConnectorImageAsSCStatefulImgConfig

      public SCStatefulImgConfig getConnectorImageAsSCStatefulImgConfig()
      The base filename or stateful image block for the connector icons shown when showConnectors is true. Connector icons are rendered into the title field of each row and show the dotted hierarchy lines between siblings of the same parent node. For each node, a connector icon may be shown:
      • As an opener icon for folder nodes, next to the folder icon
      • In place of an opener icon for leaf nodes, next to the leaf icon
      • As a standalone vertical continuation line in the indent to the left of the node, to show a connection between some ancestor node's siblings (only relevant if showFullConnectors is true).
      Note that showFullConnectors governs whether connector lines will be displayed for all indent levels, or just for the innermost level of the tree.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node. Assuming the connectorImage is set to {baseName}.{extension}, the full set of images to be displayed will be:

      {baseName}_ancestor[_rtl].{extension} if showFullConnectors is true, this is the URL for the vertical continuation image to be displayed at the appropriate indent levels for ancestor nodes with subsequent children.

      For nodes with no children:

      • {baseName}_single[_rtl].{extension}: Shown when there is no connector line attached to the parent or previous sibling, and no connector line to the next sibling. For showFullConnectors:true trees, there will always be a connector leading to the parent or previous sibling if its present in the tree so this icon can only be displayed for the first row.
      • {baseName}_start[_rtl].{extension}: Shown when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling. As with _single this will only ever be used for the first row if showFullConnectors is true
      • {baseName}_end[_rtl].{extension}: Shown if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_middle[_rtl].{extension}: Shown where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      For folders with children. Note that if showFullConnectors is false, open folders will never show a connector to subsequent siblings:
      • {baseName}_opened_single[_rtl].{extension} opened folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_opened_start[_rtl].{extension}: opened folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_opened_end[_rtl].{extension}: opened folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_opened_middle[_rtl].{extension}: opened folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      • {baseName}_closed_single[_rtl].{extension} closed folder node with children when no connector line is shown attaching to either the folder's previous sibling or parent, or to any subsequent siblings.
      • {baseName}_closed_start[_rtl].{extension}: closed folder with children when the there is no connector line attached to the parent or previous sibling, but there is a connector to the next sibling.
      • {baseName}_closed_end[_rtl].{extension}: closed folder with children if we are not showing a connector line attached to the next sibling of this node (but are showing a connection to the previous sibling or parent).
      • {baseName}_closed_middle[_rtl].{extension}: closed folder with children where the we have a connector line leading to both the previous sibling (or parent) and the next sibling.
      (Note '[_rtl]' means that "_rtl" will be attached if isRTL() is true for this widget).

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for a connectorImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_ancestor[_rtl]_selected.{extension}, {baseName}_single[_rtl]_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states listed above. These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      Returns:
      Current connectorImage value. Default value is "[SKIN]connector.gif"
      See Also:
    • setCreateDefaultTreeField

      public TreeGrid setCreateDefaultTreeField(Boolean createDefaultTreeField) throws IllegalStateException
      If no fields are specified, create a single field with TreeGridField.treeField set to true to show the tree.

      This automatically generated field will display values derived by calling getNodeTitle(), and have the column title set to the specified treeFieldTitle.

      Has no effect if fields are explicitly specified.

      This is a convenience setting to allow a TreeGrid to be created without specifying a field list. If fields are specified, refer to the documentation on property autoAssignTreeField for a way to automatically have one of the fields be use as the tree field if no fields have TreeGridField.treeField set.

      For databound treeGrids, if there is no explicit fields array specified, developers who wish to pick up all fields from the DataSource definition rather than displaying this single automatically generated tree field may either set this property to false, or set useAllDataSourceFields to true.

      Parameters:
      createDefaultTreeField - New createDefaultTreeField value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getCreateDefaultTreeField

      public Boolean getCreateDefaultTreeField()
      If no fields are specified, create a single field with TreeGridField.treeField set to true to show the tree.

      This automatically generated field will display values derived by calling getNodeTitle(), and have the column title set to the specified treeFieldTitle.

      Has no effect if fields are explicitly specified.

      This is a convenience setting to allow a TreeGrid to be created without specifying a field list. If fields are specified, refer to the documentation on property autoAssignTreeField for a way to automatically have one of the fields be use as the tree field if no fields have TreeGridField.treeField set.

      For databound treeGrids, if there is no explicit fields array specified, developers who wish to pick up all fields from the DataSource definition rather than displaying this single automatically generated tree field may either set this property to false, or set useAllDataSourceFields to true.

      Returns:
      Current createDefaultTreeField value. Default value is true
    • setCustomIconDropProperty

      public TreeGrid setCustomIconDropProperty(String customIconDropProperty)
      This property allows the developer to rename the default node.showDropIcon property.

      Note : This is an advanced setting

      Parameters:
      customIconDropProperty - New customIconDropProperty value. Default value is "showDropIcon"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCustomIconDropProperty

      public String getCustomIconDropProperty()
      This property allows the developer to rename the default node.showDropIcon property.
      Returns:
      Current customIconDropProperty value. Default value is "showDropIcon"
      See Also:
    • setCustomIconOpenProperty

      public TreeGrid setCustomIconOpenProperty(String customIconOpenProperty)
      This property allows the developer to rename the default node.showOpenIcon property.

      Note : This is an advanced setting

      Parameters:
      customIconOpenProperty - New customIconOpenProperty value. Default value is "showOpenIcon"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCustomIconOpenProperty

      public String getCustomIconOpenProperty()
      This property allows the developer to rename the default node.showOpenIcon property.
      Returns:
      Current customIconOpenProperty value. Default value is "showOpenIcon"
      See Also:
    • setCustomIconProperty

      public TreeGrid setCustomIconProperty(String customIconProperty)
      This property allows the developer to rename the default node.icon property.
      Parameters:
      customIconProperty - New customIconProperty value. Default value is "icon"
      Returns:
      TreeGrid instance, for chaining setter calls
    • getCustomIconProperty

      public String getCustomIconProperty()
      This property allows the developer to rename the default node.icon property.
      Returns:
      Current customIconProperty value. Default value is "icon"
    • setCustomIconSelectedProperty

      public TreeGrid setCustomIconSelectedProperty(String customIconSelectedProperty)
      This property allows the developer to rename the default node.showSelectedIcon property.

      Note : This is an advanced setting

      Parameters:
      customIconSelectedProperty - New customIconSelectedProperty value. Default value is "showSelectedIcon"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getCustomIconSelectedProperty

      public String getCustomIconSelectedProperty()
      This property allows the developer to rename the default node.showSelectedIcon property.
      Returns:
      Current customIconSelectedProperty value. Default value is "showSelectedIcon"
      See Also:
    • setDataArity

      public TreeGrid setDataArity(String dataArity)
      A TreeGrid is a dataArity:multiple component.

      Note : This is an advanced setting

      Overrides:
      setDataArity in class ListGrid
      Parameters:
      dataArity - New dataArity value. Default value is "multiple"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getDataArity

      public String getDataArity()
      A TreeGrid is a dataArity:multiple component.
      Overrides:
      getDataArity in class ListGrid
      Returns:
      Current dataArity value. Default value is "multiple"
      See Also:
    • setDataFetchMode

      public TreeGrid setDataFetchMode(FetchMode dataFetchMode) throws IllegalStateException
      Mode of fetching records from server.

      fetchMode:"local" implies that local filtering will always be performed. See keepParentsOnFilter for additional filtering details.

      fetchMode:"basic" or "paged" implies that if search criteria change, the entire tree will be discarded and re-fetched from the server. When retrieving the replacement tree data, the default behavior will be to preserve the openState for any nodes that the server returns which were previously opened by the user. Note that this implies that if loadDataOnDemand is enabled and the server returns only root-level nodes, open state will be preserved only for root-level nodes, and children of open root-level nodes will be immediately fetched from the server if they are not included in the server's initial response.

      fetchMode:"paged" enables paging for nodes that have very large numbers of children. Whenever the children of a folder are loaded, the resultTree will set DSRequest.startRow and endRow when requesting children from the DataSource, and will manage loading of further children on demand, similar to how a ResultSet manages paging for lists. For a deeper discussion see the Paging large sets of children section of the TreeDataBinding overview.

      Specified by:
      setDataFetchMode in interface DataBoundComponent
      Overrides:
      setDataFetchMode in class ListGrid
      Parameters:
      dataFetchMode - New dataFetchMode value. Default value is "basic"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getDataFetchMode

      public FetchMode getDataFetchMode()
      Mode of fetching records from server.

      fetchMode:"local" implies that local filtering will always be performed. See keepParentsOnFilter for additional filtering details.

      fetchMode:"basic" or "paged" implies that if search criteria change, the entire tree will be discarded and re-fetched from the server. When retrieving the replacement tree data, the default behavior will be to preserve the openState for any nodes that the server returns which were previously opened by the user. Note that this implies that if loadDataOnDemand is enabled and the server returns only root-level nodes, open state will be preserved only for root-level nodes, and children of open root-level nodes will be immediately fetched from the server if they are not included in the server's initial response.

      fetchMode:"paged" enables paging for nodes that have very large numbers of children. Whenever the children of a folder are loaded, the resultTree will set DSRequest.startRow and endRow when requesting children from the DataSource, and will manage loading of further children on demand, similar to how a ResultSet manages paging for lists. For a deeper discussion see the Paging large sets of children section of the TreeDataBinding overview.

      Specified by:
      getDataFetchMode in interface DataBoundComponent
      Overrides:
      getDataFetchMode in class ListGrid
      Returns:
      Current dataFetchMode value. Default value is "basic"
      See Also:
    • getDataProperties

      public Tree getDataProperties()
      For a TreeGrid that uses a DataSource, these properties will be passed to the automatically-created ResultTree. This can be used for various customizations such as modifying the automatically-chosen Tree.parentIdField.
      Returns:
      Current dataProperties value. Default value is null
      See Also:
    • setDisplayNodeType

      public TreeGrid setDisplayNodeType(DisplayNodeType displayNodeType)
      Specifies the type of nodes displayed in the treeGrid.
      Parameters:
      displayNodeType - New displayNodeType value. Default value is Tree.FOLDERS_AND_LEAVES
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getDisplayNodeType

      public DisplayNodeType getDisplayNodeType()
      Specifies the type of nodes displayed in the treeGrid.
      Returns:
      Current displayNodeType value. Default value is Tree.FOLDERS_AND_LEAVES
      See Also:
    • setDropEndSpace

      public TreeGrid setDropEndSpace(Integer dropEndSpace)
      If showDropEndSpace is set to true, this property governs how large the space under the last node during drop should be. If unset, the spacer will be sized to be half the specified cellHeight for the grid.

      Note : This is an advanced setting

      Parameters:
      dropEndSpace - New dropEndSpace value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getDropEndSpace

      public Integer getDropEndSpace()
      If showDropEndSpace is set to true, this property governs how large the space under the last node during drop should be. If unset, the spacer will be sized to be half the specified cellHeight for the grid.
      Returns:
      Current dropEndSpace value. Default value is null
    • setDropIconSuffix

      public TreeGrid setDropIconSuffix(String dropIconSuffix) throws IllegalStateException
      If showDropIcons is true, this suffix will be appended to the folderIcon when the user drop-hovers over some folder.
      Parameters:
      dropIconSuffix - New dropIconSuffix value. Default value is "drop"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getDropIconSuffix

      public String getDropIconSuffix()
      If showDropIcons is true, this suffix will be appended to the folderIcon when the user drop-hovers over some folder.
      Returns:
      Current dropIconSuffix value. Default value is "drop"
    • setExtraIconGap

      public TreeGrid setExtraIconGap(int extraIconGap) throws IllegalStateException
      The amount of gap (in pixels) between the extraIcon (see getExtraIcon()) or checkbox icon and the nodeIcon/ folderIcon or node text.
      Parameters:
      extraIconGap - New extraIconGap value. Default value is 2
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getExtraIconGap

      public int getExtraIconGap()
      The amount of gap (in pixels) between the extraIcon (see getExtraIcon()) or checkbox icon and the nodeIcon/ folderIcon or node text.
      Returns:
      Current extraIconGap value. Default value is 2
      See Also:
    • setFields

      public TreeGrid setFields(TreeGridField... fields)
      An array of field objects, specifying the order, layout, dynamic calculation, and sorting behavior of each field in the treeGrid object. In TreeGrids, the fields array specifies columns. Each field in the fields array is TreeGridField object.

      If dataSource is also set, this value acts as a set of overrides as explained in DataBoundComponent.fields.

      Parameters:
      fields - New fields value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • setFolderIcon

      public TreeGrid setFolderIcon(String folderIcon)
      The URL of the base icon for all folder nodes in this treeGrid. Note that this URL will have openIconSuffix, closedIconSuffix or dropIconSuffix appended to indicate state changes if appropriate - see documentation on showOpenIcons, showSelectedIcons and showDropIcons.

      See showNodeIcons and showFolderIcons for details on suppressing display of icons

      Parameters:
      folderIcon - New folderIcon value. Default value is "[SKIN]folder.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getFolderIcon

      public String getFolderIcon()
      The URL of the base icon for all folder nodes in this treeGrid. Note that this URL will have openIconSuffix, closedIconSuffix or dropIconSuffix appended to indicate state changes if appropriate - see documentation on showOpenIcons, showSelectedIcons and showDropIcons.

      See showNodeIcons and showFolderIcons for details on suppressing display of icons

      Returns:
      Current folderIcon value. Default value is "[SKIN]folder.gif"
      See Also:
    • setFolderIconPadding

      public TreeGrid setFolderIconPadding(Integer folderIconPadding) throws IllegalStateException
      Default padding to show between folder icon and cell value in the tree cell. This property is only consulted for folder nodes. If unset, iconPadding will be applied to both folder and leaf nodes.

      To set the icon padding for individual nodes, use iconPaddingProperty

      Parameters:
      folderIconPadding - New folderIconPadding value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getFolderIconPadding

      public Integer getFolderIconPadding()
      Default padding to show between folder icon and cell value in the tree cell. This property is only consulted for folder nodes. If unset, iconPadding will be applied to both folder and leaf nodes.

      To set the icon padding for individual nodes, use iconPaddingProperty

      Returns:
      Current folderIconPadding value. Default value is null
    • setGroupByField

      public TreeGrid setGroupByField(String groupByField) throws IllegalStateException
      Not applicable to TreeGrids, as the data already represents a tree.
      Overrides:
      setGroupByField in class ListGrid
      Parameters:
      groupByField - New groupByField value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getGroupByField

      public String getGroupByField()
      Not applicable to TreeGrids, as the data already represents a tree.
      Returns:
      Current groupByField value. Default value is null
      See Also:
    • setGroupByField

      public TreeGrid setGroupByField(String... groupByField) throws IllegalStateException
      Not applicable to TreeGrids, as the data already represents a tree.
      Overrides:
      setGroupByField in class ListGrid
      Parameters:
      groupByField - New groupByField value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getGroupByFieldAsStringArray

      public String[] getGroupByFieldAsStringArray()
      Not applicable to TreeGrids, as the data already represents a tree.
      Returns:
      Current groupByField value. Default value is null
      See Also:
    • setIconBaseStyle

      public TreeGrid setIconBaseStyle(String iconBaseStyle)
      The base CSS class to apply to icons used in this grid. Used to affect the colors of SVG graphics.
      Parameters:
      iconBaseStyle - New iconBaseStyle value. Default value is "icon"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getIconBaseStyle

      public String getIconBaseStyle()
      The base CSS class to apply to icons used in this grid. Used to affect the colors of SVG graphics.
      Returns:
      Current iconBaseStyle value. Default value is "icon"
      See Also:
    • setIconPadding

      public TreeGrid setIconPadding(Integer iconPadding) throws IllegalStateException
      Default padding to show between the folder or leaf node icon and cell value in the tree cell.

      May be overridden for folderIcons via folderIconPadding. May also be overridden for individual nodes by setting the iconPaddingProperty value on individual nodes

      Overrides:
      setIconPadding in class ListGrid
      Parameters:
      iconPadding - New iconPadding value. Default value is 2
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getIconPadding

      public Integer getIconPadding()
      Default padding to show between the folder or leaf node icon and cell value in the tree cell.

      May be overridden for folderIcons via folderIconPadding. May also be overridden for individual nodes by setting the iconPaddingProperty value on individual nodes

      Overrides:
      getIconPadding in class ListGrid
      Returns:
      Current iconPadding value. Default value is 2
    • setIconPaddingProperty

      public TreeGrid setIconPaddingProperty(String iconPaddingProperty) throws IllegalStateException
      This property allows the developer to specify custom iconPadding for specific nodes
      Parameters:
      iconPaddingProperty - New iconPaddingProperty value. Default value is "iconPadding"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getIconPaddingProperty

      public String getIconPaddingProperty()
      This property allows the developer to specify custom iconPadding for specific nodes
      Returns:
      Current iconPaddingProperty value. Default value is "iconPadding"
    • setIconSize

      public TreeGrid setIconSize(int iconSize)
      The standard size (same height and width, in pixels) of node icons in this treeGrid.
      Parameters:
      iconSize - New iconSize value. Default value is 16
      Returns:
      TreeGrid instance, for chaining setter calls
    • getIconSize

      public int getIconSize()
      The standard size (same height and width, in pixels) of node icons in this treeGrid.
      Returns:
      Current iconSize value. Default value is 16
    • setIndentRecordComponents

      public TreeGrid setIndentRecordComponents(Boolean indentRecordComponents)
      For record components placed "within" the treeField column, should the component be indented to the position where a title would normally show?

      For more general placement of embedded components, see addEmbeddedComponent.

      Parameters:
      indentRecordComponents - New indentRecordComponents value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getIndentRecordComponents

      public Boolean getIndentRecordComponents()
      For record components placed "within" the treeField column, should the component be indented to the position where a title would normally show?

      For more general placement of embedded components, see addEmbeddedComponent.

      Returns:
      Current indentRecordComponents value. Default value is true
    • setIndentSize

      public TreeGrid setIndentSize(int indentSize)
      The amount of indentation (in pixels) to add to a node's icon/title for each level down in this tree's hierarchy.

      This value is ignored when showConnectors is true because fixed-size images are used to render the connectors.

      Parameters:
      indentSize - New indentSize value. Default value is 20
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getIndentSize

      public int getIndentSize()
      The amount of indentation (in pixels) to add to a node's icon/title for each level down in this tree's hierarchy.

      This value is ignored when showConnectors is true because fixed-size images are used to render the connectors.

      Returns:
      Current indentSize value. Default value is 20
      See Also:
    • setKeepParentsOnFilter

      public TreeGrid setKeepParentsOnFilter(Boolean keepParentsOnFilter) throws IllegalStateException
      If set, tree-based filtering is performed such that parent nodes are kept as long as they have children that match the filter criteria, even if the parents themselves do not match the filter criteria. If not set, filtering will exclude parent nodes not matching the criteria, and all nodes below them in the tree.

      If some criteria must be sent to the server in order to produce a valid tree of data, but keepParentsOnFilter is also required, the ResultTree.serverFilterFields attribute may be used to specify a list of field names that will be sent to the server whenever they are present in the criteria. Note that for the subset of criteria applied to these fields, keepParentsInFilter behavior will not occur without custom logic in the DataSource fetch operation.

      If FetchMode is explicitly set to "paged", it is not possible to implement keepParentsOnFilter, either by local filtering or with the automatic client-driven handling mentioned below. Support for keepParentsOnFilter for a paged ResultTree therefore also requires custom logic in the DataSource fetch operation. To support this a developer must ensure that their fetch operation returns the appropriate set of nodes - all nodes that match the specified criteria plus their ancestor nodes even if they do not match the specified criteria.

      keepParentsOnFilter with load-on-demand trees

      The combination of keepParentsOnFilter and loadDataOnDemand presents additional difficulties that require special handling. The problem is that in order to determine even the top-level folders, you have to examine every node in the entire tree. For example, say there is one top-level folder that has thousands of folders and nodes underneath it, and there is just one leaf node, 6 levels deep, that matches the filter criteria. You have to find out about that node, because it implies the top-level folder must be retained.

      So the server basically has to examine every node in the dataset to determine even what shows up at the top level of the tree. If it does not do this, parent nodes that don't match the filter criteria will be excluded from the tree, with the upshot that the child nodes that do match the criteria will be inaccessible because nodes in load-on-demand trees are only loaded when their parent node is opened

      By default, Smart GWT solves this with a client-driven implementation of this special handling. This algorithm involves finding the nodes that match the filter criteria - which we term matching leaves - and then recursively travelling back up the tree, determining the ancestors of the matching leaves - the so-called dangling parents. When we have traversed all the way back to the root node from every matching leaf, we have recorded every dangling parent and have what we term the skeleton of the tree. The skeleton is then added to fetch criteria whenever a load-on-demand fetch request is made, ensuring that we fetch both dangling parents and matching leaves.

      There are three ways this recursive traversal can be implemented:

      • For dataSources that support dynamic tree joins, we use the additionalOutputs feature to declare self-joins that fetch multiple levels of parent in one query (the number of levels is configurable, see ResultTree.matchingLeafJoinDepth). Of Smart GWT's built-in DataSource types, only SQLDataSource is currently capable of this approach
      • For server-side dataSources that do not support self-joins, we combine individual single-level fetches into a queue, using fieldValueExpressions with responseData "allRecords" so that each fetch in the queue uses the output of the previous fetch as its criteria (so the first fetch returns the parents of the matching nodes, the second fetch returns the parents of those nodes, and so on). Again, the number of fetches per queue can be configured with the matchingLeafJoinDepth property. This approach works for any server-side DataSource implementation, including your own custom implementations
      • For client-side dataSources, which support neither self-joins not queueing, the algorithm simply makes as many single-level requests as necessary to build the entire skeleton. Note, this is exactly what would happen with previously-mentioned queueing approach, if you set matchingLeafJoinDepth to 1
      If you want to disable the automatic handling of keepParentsOnFilter on load-on-demand trees, see ResultTree.serverKeepParentsOnFilter
      Parameters:
      keepParentsOnFilter - New keepParentsOnFilter value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getKeepParentsOnFilter

      public Boolean getKeepParentsOnFilter()
      If set, tree-based filtering is performed such that parent nodes are kept as long as they have children that match the filter criteria, even if the parents themselves do not match the filter criteria. If not set, filtering will exclude parent nodes not matching the criteria, and all nodes below them in the tree.

      If some criteria must be sent to the server in order to produce a valid tree of data, but keepParentsOnFilter is also required, the ResultTree.serverFilterFields attribute may be used to specify a list of field names that will be sent to the server whenever they are present in the criteria. Note that for the subset of criteria applied to these fields, keepParentsInFilter behavior will not occur without custom logic in the DataSource fetch operation.

      If FetchMode is explicitly set to "paged", it is not possible to implement keepParentsOnFilter, either by local filtering or with the automatic client-driven handling mentioned below. Support for keepParentsOnFilter for a paged ResultTree therefore also requires custom logic in the DataSource fetch operation. To support this a developer must ensure that their fetch operation returns the appropriate set of nodes - all nodes that match the specified criteria plus their ancestor nodes even if they do not match the specified criteria.

      keepParentsOnFilter with load-on-demand trees

      The combination of keepParentsOnFilter and loadDataOnDemand presents additional difficulties that require special handling. The problem is that in order to determine even the top-level folders, you have to examine every node in the entire tree. For example, say there is one top-level folder that has thousands of folders and nodes underneath it, and there is just one leaf node, 6 levels deep, that matches the filter criteria. You have to find out about that node, because it implies the top-level folder must be retained.

      So the server basically has to examine every node in the dataset to determine even what shows up at the top level of the tree. If it does not do this, parent nodes that don't match the filter criteria will be excluded from the tree, with the upshot that the child nodes that do match the criteria will be inaccessible because nodes in load-on-demand trees are only loaded when their parent node is opened

      By default, Smart GWT solves this with a client-driven implementation of this special handling. This algorithm involves finding the nodes that match the filter criteria - which we term matching leaves - and then recursively travelling back up the tree, determining the ancestors of the matching leaves - the so-called dangling parents. When we have traversed all the way back to the root node from every matching leaf, we have recorded every dangling parent and have what we term the skeleton of the tree. The skeleton is then added to fetch criteria whenever a load-on-demand fetch request is made, ensuring that we fetch both dangling parents and matching leaves.

      There are three ways this recursive traversal can be implemented:

      • For dataSources that support dynamic tree joins, we use the additionalOutputs feature to declare self-joins that fetch multiple levels of parent in one query (the number of levels is configurable, see ResultTree.matchingLeafJoinDepth). Of Smart GWT's built-in DataSource types, only SQLDataSource is currently capable of this approach
      • For server-side dataSources that do not support self-joins, we combine individual single-level fetches into a queue, using fieldValueExpressions with responseData "allRecords" so that each fetch in the queue uses the output of the previous fetch as its criteria (so the first fetch returns the parents of the matching nodes, the second fetch returns the parents of those nodes, and so on). Again, the number of fetches per queue can be configured with the matchingLeafJoinDepth property. This approach works for any server-side DataSource implementation, including your own custom implementations
      • For client-side dataSources, which support neither self-joins not queueing, the algorithm simply makes as many single-level requests as necessary to build the entire skeleton. Note, this is exactly what would happen with previously-mentioned queueing approach, if you set matchingLeafJoinDepth to 1
      If you want to disable the automatic handling of keepParentsOnFilter on load-on-demand trees, see ResultTree.serverKeepParentsOnFilter
      Returns:
      Current keepParentsOnFilter value. Default value is null
      See Also:
    • setLeaveSelectionCheckboxGap

      public TreeGrid setLeaveSelectionCheckboxGap(Boolean leaveSelectionCheckboxGap) throws IllegalStateException
      If selectionAppearance:"checkbox" is set on the treegrid, and a node can't be selected, should a gap be left where the checkbox icon would normally appear, in order to make the node's icon and title line up with the content for other nodes in the same parent?

      Has no effect if showDisabledSelectionCheckbox is true

      Parameters:
      leaveSelectionCheckboxGap - New leaveSelectionCheckboxGap value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getLeaveSelectionCheckboxGap

      public Boolean getLeaveSelectionCheckboxGap()
      If selectionAppearance:"checkbox" is set on the treegrid, and a node can't be selected, should a gap be left where the checkbox icon would normally appear, in order to make the node's icon and title line up with the content for other nodes in the same parent?

      Has no effect if showDisabledSelectionCheckbox is true

      Returns:
      Current leaveSelectionCheckboxGap value. Default value is true
      See Also:
    • setLoadDataOnDemand

      public TreeGrid setLoadDataOnDemand(Boolean loadDataOnDemand)
      For databound treeGrid instances, should the entire tree of data be loaded on initial fetch, or should folders load their children as they are opened.

      If unset, calling fetchData() will default it to true, otherwise, if a ResultTree is passed to setData(), the ResultTree.loadDataOnDemand setting is respected. Must be enabled on the underlying ResultTree when using dataFetchMode: "paged".

      Note that when using loadDataOnDemand, every node returned by the server is assumed be a folder which may load further children. See ResultTree.defaultIsFolder for how to control this behavior.

      Parameters:
      loadDataOnDemand - New loadDataOnDemand value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getLoadDataOnDemand

      public Boolean getLoadDataOnDemand()
      For databound treeGrid instances, should the entire tree of data be loaded on initial fetch, or should folders load their children as they are opened.

      If unset, calling fetchData() will default it to true, otherwise, if a ResultTree is passed to setData(), the ResultTree.loadDataOnDemand setting is respected. Must be enabled on the underlying ResultTree when using dataFetchMode: "paged".

      Note that when using loadDataOnDemand, every node returned by the server is assumed be a folder which may load further children. See ResultTree.defaultIsFolder for how to control this behavior.

      Returns:
      Current loadDataOnDemand value. Default value is null
      See Also:
    • setLoadingIcon

      public TreeGrid setLoadingIcon(String loadingIcon)
      If showLoadingIcons is set, this icon will be used when the folder is loading children from the server.
      Parameters:
      loadingIcon - New loadingIcon value. Default value is "[SKIN]folder_loading.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getLoadingIcon

      public String getLoadingIcon()
      If showLoadingIcons is set, this icon will be used when the folder is loading children from the server.
      Returns:
      Current loadingIcon value. Default value is "[SKIN]folder_loading.gif"
      See Also:
    • setManyItemsImage

      public TreeGrid setManyItemsImage(String manyItemsImage)
      The filename of the icon displayed use as the default drag tracker when for multiple files and/or folders are being dragged.
      Parameters:
      manyItemsImage - New manyItemsImage value. Default value is "[SKIN]folder_file.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getManyItemsImage

      public String getManyItemsImage()
      The filename of the icon displayed use as the default drag tracker when for multiple files and/or folders are being dragged.
      Returns:
      Current manyItemsImage value. Default value is "[SKIN]folder_file.gif"
      See Also:
    • setNodeIcon

      public TreeGrid setNodeIcon(String nodeIcon)
      The filename of the default icon for all leaf nodes in this grid. To specify a custom image for an individual node, set the customIconProperty directly on the node.

      See showNodeIcons and showFolderIcons for details on suppressing display of icons

      If this method is called after the component has been drawn/initialized: Set the icon for a particular treenode to a specified URL

      Parameters:
      nodeIcon - tree node. Default value is "[SKIN]file.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getNodeIcon

      public String getNodeIcon()
      The filename of the default icon for all leaf nodes in this grid. To specify a custom image for an individual node, set the customIconProperty directly on the node.

      See showNodeIcons and showFolderIcons for details on suppressing display of icons

      Returns:
      Current nodeIcon value. Default value is "[SKIN]file.gif"
      See Also:
    • setOfflineNodeMessage

      public TreeGrid setOfflineNodeMessage(String offlineNodeMessage)
      For TreeGrids with loadDataOnDemand: true, a message to show the user if an attempt is made to open a folder, and thus load that node's children, while we are offline and there is no offline cache of that data. The message will be presented to the user in in a pop-up dialog box.
      Parameters:
      offlineNodeMessage - New offlineNodeMessage value. Default value is "This data not available while offline"
      Returns:
      TreeGrid instance, for chaining setter calls
    • getOfflineNodeMessage

      public String getOfflineNodeMessage()
      For TreeGrids with loadDataOnDemand: true, a message to show the user if an attempt is made to open a folder, and thus load that node's children, while we are offline and there is no offline cache of that data. The message will be presented to the user in in a pop-up dialog box.
      Returns:
      Current offlineNodeMessage value. Default value is "This data not available while offline"
    • setOpenerIconHeight

      public TreeGrid setOpenerIconHeight(Integer openerIconHeight)
      Height in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol.

      If not specified, openerIconSize is used instead.

      Parameters:
      openerIconHeight - New openerIconHeight value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getOpenerIconHeight

      public Integer getOpenerIconHeight()
      Height in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol.

      If not specified, openerIconSize is used instead.

      Returns:
      Current openerIconHeight value. Default value is null
    • setOpenerIconSize

      public TreeGrid setOpenerIconSize(Integer openerIconSize)
      Default width and height in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol, if not overridden by openerIconWidth/openerIconHeight.

      If showConnectors is true, the opener icon includes the connector line, and defaults to cellHeight.

      Otherwise, openerIconSize defaults to iconSize.

      Parameters:
      openerIconSize - New openerIconSize value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getOpenerIconSize

      public Integer getOpenerIconSize()
      Default width and height in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol, if not overridden by openerIconWidth/openerIconHeight.

      If showConnectors is true, the opener icon includes the connector line, and defaults to cellHeight.

      Otherwise, openerIconSize defaults to iconSize.

      Returns:
      Current openerIconSize value. Default value is null
    • setOpenerIconWidth

      public TreeGrid setOpenerIconWidth(Integer openerIconWidth)
      Width in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol.

      If not specified, openerIconSize is used instead.

      Parameters:
      openerIconWidth - New openerIconWidth value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getOpenerIconWidth

      public Integer getOpenerIconWidth()
      Width in pixels of the opener icons, that is, the icons which show the open or closed state of the node, typically a [+] or [-] symbol.

      If not specified, openerIconSize is used instead.

      Returns:
      Current openerIconWidth value. Default value is null
    • setOpenerImage

      public TreeGrid setOpenerImage(String openerImage) throws IllegalStateException
      The base filename or stateful image block for the opener icon for folder nodes when "showConnectors" is false for this TreeGrid. The opener icon is displayed beside the folder icon in the Tree column for folder nodes. Clicking on this icon will toggle the open state of the folder.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node, as follows: If the openerImage is set to {baseName}.{extension}, {baseName}_opened.{extension} will be displayed next to opened folders, and {baseName}_closed.{extension} will be displayed next to closed folders, or if this page is in RTL mode, {baseName}_opened_rtl.{extension} and {baseName}_closed_rtl.{extension} will be used.

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for an openerImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_opened_selected.{extension}, {baseName}_closed_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states: opened, closed, opened_selected and closed_selected (RTL styles are also available, see above). These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      The following code shows using SVG Symbols from a sprite-file:

         openerImage: {
             // _base state is required, although will not be displayed in this case 
             _base: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             // closed and closed_selected states - make the selected icon blue 
             closed: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             closed_selected: "sprite:svg:fileName.svg#arrowRight;size:12,12;color:blue;",
             // opened and opened_selected states - make the selected icon blue
             opened: "sprite:svg:fileName.svg#arrowDown;size:12,12;",
             opened_selected: "sprite:svg:fileName.svg#arrowDown;size:12,12;color:blue;"
         }
        
      Parameters:
      openerImage - New openerImage value. Default value is "[SKIN]opener.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getOpenerImage

      public String getOpenerImage()
      The base filename or stateful image block for the opener icon for folder nodes when "showConnectors" is false for this TreeGrid. The opener icon is displayed beside the folder icon in the Tree column for folder nodes. Clicking on this icon will toggle the open state of the folder.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node, as follows: If the openerImage is set to {baseName}.{extension}, {baseName}_opened.{extension} will be displayed next to opened folders, and {baseName}_closed.{extension} will be displayed next to closed folders, or if this page is in RTL mode, {baseName}_opened_rtl.{extension} and {baseName}_closed_rtl.{extension} will be used.

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for an openerImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_opened_selected.{extension}, {baseName}_closed_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states: opened, closed, opened_selected and closed_selected (RTL styles are also available, see above). These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      The following code shows using SVG Symbols from a sprite-file:

         openerImage: {
             // _base state is required, although will not be displayed in this case 
             _base: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             // closed and closed_selected states - make the selected icon blue 
             closed: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             closed_selected: "sprite:svg:fileName.svg#arrowRight;size:12,12;color:blue;",
             // opened and opened_selected states - make the selected icon blue
             opened: "sprite:svg:fileName.svg#arrowDown;size:12,12;",
             opened_selected: "sprite:svg:fileName.svg#arrowDown;size:12,12;color:blue;"
         }
        
      Returns:
      Current openerImage value. Default value is "[SKIN]opener.gif"
      See Also:
    • setOpenerImage

      public TreeGrid setOpenerImage(SCStatefulImgConfig openerImage) throws IllegalStateException
      The base filename or stateful image block for the opener icon for folder nodes when "showConnectors" is false for this TreeGrid. The opener icon is displayed beside the folder icon in the Tree column for folder nodes. Clicking on this icon will toggle the open state of the folder.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node, as follows: If the openerImage is set to {baseName}.{extension}, {baseName}_opened.{extension} will be displayed next to opened folders, and {baseName}_closed.{extension} will be displayed next to closed folders, or if this page is in RTL mode, {baseName}_opened_rtl.{extension} and {baseName}_closed_rtl.{extension} will be used.

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for an openerImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_opened_selected.{extension}, {baseName}_closed_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states: opened, closed, opened_selected and closed_selected (RTL styles are also available, see above). These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      The following code shows using SVG Symbols from a sprite-file:

         openerImage: {
             // _base state is required, although will not be displayed in this case 
             _base: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             // closed and closed_selected states - make the selected icon blue 
             closed: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             closed_selected: "sprite:svg:fileName.svg#arrowRight;size:12,12;color:blue;",
             // opened and opened_selected states - make the selected icon blue
             opened: "sprite:svg:fileName.svg#arrowDown;size:12,12;",
             opened_selected: "sprite:svg:fileName.svg#arrowDown;size:12,12;color:blue;"
         }
        
      Parameters:
      openerImage - New openerImage value. Default value is "[SKIN]opener.gif"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getOpenerImageAsSCStatefulImgConfig

      public SCStatefulImgConfig getOpenerImageAsSCStatefulImgConfig()
      The base filename or stateful image block for the opener icon for folder nodes when "showConnectors" is false for this TreeGrid. The opener icon is displayed beside the folder icon in the Tree column for folder nodes. Clicking on this icon will toggle the open state of the folder.

      When set to an SCImgURL: the stateful filenames for these icons are assembled from this base filename and the state of the node, as follows: If the openerImage is set to {baseName}.{extension}, {baseName}_opened.{extension} will be displayed next to opened folders, and {baseName}_closed.{extension} will be displayed next to closed folders, or if this page is in RTL mode, {baseName}_opened_rtl.{extension} and {baseName}_closed_rtl.{extension} will be used.

      If showSelectedOpener is true the URL for selected nodes will append the string "_selected" to the image URLs described above. So for an openerImage set to {baseName}.{extension}, the URLs for selected records would be {baseName}_opened_selected.{extension}, {baseName}_closed_selected.{extension}, etc.

      When set to an SCStatefulImgConfig</>: it should contain entries for the default _base state, as well as the custom states: opened, closed, opened_selected and closed_selected (RTL styles are also available, see above). These entries may be set to any combination of supported src strings, including file-paths and sprite-strings.

      The following code shows using SVG Symbols from a sprite-file:

         openerImage: {
             // _base state is required, although will not be displayed in this case 
             _base: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             // closed and closed_selected states - make the selected icon blue 
             closed: "sprite:svg:fileName.svg#arrowRight;size:12,12;",
             closed_selected: "sprite:svg:fileName.svg#arrowRight;size:12,12;color:blue;",
             // opened and opened_selected states - make the selected icon blue
             opened: "sprite:svg:fileName.svg#arrowDown;size:12,12;",
             opened_selected: "sprite:svg:fileName.svg#arrowDown;size:12,12;color:blue;"
         }
        
      Returns:
      Current openerImage value. Default value is "[SKIN]opener.gif"
      See Also:
    • setOpenIconPadding

      public TreeGrid setOpenIconPadding(Integer openIconPadding) throws IllegalStateException
      Default padding to show between the openIcon and the extra or folder icon in the tree cell.
      Parameters:
      openIconPadding - New openIconPadding value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getOpenIconPadding

      public Integer getOpenIconPadding()
      Default padding to show between the openIcon and the extra or folder icon in the tree cell.
      Returns:
      Current openIconPadding value. Default value is null
    • setOpenIconSuffix

      public TreeGrid setOpenIconSuffix(String openIconSuffix) throws IllegalStateException
      If showOpenIcons is true, this suffix will be appended to the folderIcon for open folders in this grid.
      Parameters:
      openIconSuffix - New openIconSuffix value. Default value is "open"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getOpenIconSuffix

      public String getOpenIconSuffix()
      If showOpenIcons is true, this suffix will be appended to the folderIcon for open folders in this grid.
      Returns:
      Current openIconSuffix value. Default value is "open"
    • setParentAlreadyContainsChildMessage

      public TreeGrid setParentAlreadyContainsChildMessage(String parentAlreadyContainsChildMessage) throws IllegalStateException
      Message displayed when user attempts to drag a node into a parent that already contains a child of the same name/ID.
      Parameters:
      parentAlreadyContainsChildMessage - New parentAlreadyContainsChildMessage value. Default value is "This item already contains a child item with that name."
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getParentAlreadyContainsChildMessage

      public String getParentAlreadyContainsChildMessage()
      Message displayed when user attempts to drag a node into a parent that already contains a child of the same name/ID.
      Returns:
      Current parentAlreadyContainsChildMessage value. Default value is "This item already contains a child item with that name."
      See Also:
    • setRecordDropAppearance

      public TreeGrid setRecordDropAppearance(RecordDropAppearance recordDropAppearance)
      If canAcceptDroppedRecords is true for this treeGrid, this property governs whether the user can drop between, or over records within the grid. This controls what RecordDropPosition is passed to the recordDrop() event handler.
      Overrides:
      setRecordDropAppearance in class ListGrid
      Parameters:
      recordDropAppearance - New recordDropAppearance value. Default value is ListGrid.BOTH
      Returns:
      TreeGrid instance, for chaining setter calls
    • getRecordDropAppearance

      public RecordDropAppearance getRecordDropAppearance()
      If canAcceptDroppedRecords is true for this treeGrid, this property governs whether the user can drop between, or over records within the grid. This controls what RecordDropPosition is passed to the recordDrop() event handler.
      Overrides:
      getRecordDropAppearance in class ListGrid
      Returns:
      Current recordDropAppearance value. Default value is ListGrid.BOTH
    • setSaveOpenStateInViewState

      public TreeGrid setSaveOpenStateInViewState(Boolean saveOpenStateInViewState)
      Should the current open state of the tree be included along with other details when saving this grid's view-state?
      Parameters:
      saveOpenStateInViewState - New saveOpenStateInViewState value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getSaveOpenStateInViewState

      public Boolean getSaveOpenStateInViewState()
      Should the current open state of the tree be included along with other details when saving this grid's view-state?
      Returns:
      Current saveOpenStateInViewState value. Default value is true
    • setSelectedIconSuffix

      public TreeGrid setSelectedIconSuffix(String selectedIconSuffix) throws IllegalStateException
      If showSelectedIcons is true, this suffix will be appended to the folderIcon for selected nodes in this grid.
      Parameters:
      selectedIconSuffix - New selectedIconSuffix value. Default value is "selected"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getSelectedIconSuffix

      public String getSelectedIconSuffix()
      If showSelectedIcons is true, this suffix will be appended to the folderIcon for selected nodes in this grid.
      Returns:
      Current selectedIconSuffix value. Default value is "selected"
    • setSelectionProperty

      public TreeGrid setSelectionProperty(String selectionProperty) throws IllegalStateException
      If specified, the selection object for this list will use this property to mark records as selected. In other words, if this attribute were set to "isSelected" any records in the listGrid data where "isSelected" is true will show up as selected in the grid. Similarly if records are selected within the grid after the grid has been created, this property will be set to true on the selected records.

      Note : This is an advanced setting

      Overrides:
      setSelectionProperty in class ListGrid
      Parameters:
      selectionProperty - New selectionProperty value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getSelectionProperty

      public String getSelectionProperty()
      If specified, the selection object for this list will use this property to mark records as selected. In other words, if this attribute were set to "isSelected" any records in the listGrid data where "isSelected" is true will show up as selected in the grid. Similarly if records are selected within the grid after the grid has been created, this property will be set to true on the selected records.
      Overrides:
      getSelectionProperty in class ListGrid
      Returns:
      Current selectionProperty value. Default value is null
      See Also:
    • setSeparateFolders

      public TreeGrid setSeparateFolders(Boolean separateFolders) throws IllegalStateException
      If specified, this attribute will override Tree.separateFolders on the data for this treeGrid.

      Specifies whether folders and leaves should be segregated in the treeGrid display. Use Tree.sortFoldersBeforeLeaves to customize whether folders appear before or after their sibling leaves.

      If unset, at the treeGrid level, the property can be set directly on the tree data object or for dataBound TreeGrids on the dataProperties.

      Parameters:
      separateFolders - New separateFolders value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getSeparateFolders

      public Boolean getSeparateFolders()
      If specified, this attribute will override Tree.separateFolders on the data for this treeGrid.

      Specifies whether folders and leaves should be segregated in the treeGrid display. Use Tree.sortFoldersBeforeLeaves to customize whether folders appear before or after their sibling leaves.

      If unset, at the treeGrid level, the property can be set directly on the tree data object or for dataBound TreeGrids on the dataProperties.

      Returns:
      Current separateFolders value. Default value is null
    • setServerFilterFields

      public TreeGrid setServerFilterFields(String... serverFilterFields) throws IllegalStateException
      For fetchMode:"local" ResultTrees, this property lists field names that will be sent to the server if they are present in the criteria.

      This property may be used to ensure a dataSource receives the necessary criteria to populate a ResultTree's data, and also support keepParentsOnFilter.

      Note that for some AdvancedCriteria it will not be possible to extract the subcriteria that apply to certain fields. See DataSource.splitCriteria() for details on how serverFilterFields-applicable subcriteria are extracted from the specified criteria for the tree.

      Parameters:
      serverFilterFields - New serverFilterFields value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getServerFilterFields

      public String[] getServerFilterFields()
      For fetchMode:"local" ResultTrees, this property lists field names that will be sent to the server if they are present in the criteria.

      This property may be used to ensure a dataSource receives the necessary criteria to populate a ResultTree's data, and also support keepParentsOnFilter.

      Note that for some AdvancedCriteria it will not be possible to extract the subcriteria that apply to certain fields. See DataSource.splitCriteria() for details on how serverFilterFields-applicable subcriteria are extracted from the specified criteria for the tree.

      Returns:
      Current serverFilterFields value. Default value is null
    • setShowConnectors

      public TreeGrid setShowConnectors(Boolean showConnectors)
      Should this treeGrid show connector lines illustrating the tree's hierarchy?

      For the set of images used to show connectors, see connectorImage.

      Note: in order for connector images to be perfectly connected, all styles for cells must have no top or bottom border or padding. If you see small gaps in connector lines, check your CSS files. See the example below for an example of correct configuration, including example CSS.

      Parameters:
      showConnectors - New showConnectors value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getShowConnectors

      public Boolean getShowConnectors()
      Should this treeGrid show connector lines illustrating the tree's hierarchy?

      For the set of images used to show connectors, see connectorImage.

      Note: in order for connector images to be perfectly connected, all styles for cells must have no top or bottom border or padding. If you see small gaps in connector lines, check your CSS files. See the example below for an example of correct configuration, including example CSS.

      Returns:
      Current showConnectors value. Default value is false
      See Also:
    • setShowCustomIconDrop

      public TreeGrid setShowCustomIconDrop(Boolean showCustomIconDrop)
      Should folder nodes showing custom icons (set via the customIconProperty, default TreeNode.icon), show drop state images when the user is drop-hovering over the folder. If true, the dropIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_drop.gif").
      Can be overridden at the node level via the default property TreeNode.showDropIcon and that property can be renamed via customIconDropProperty.

      Note : This is an advanced setting

      Parameters:
      showCustomIconDrop - New showCustomIconDrop value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowCustomIconDrop

      public Boolean getShowCustomIconDrop()
      Should folder nodes showing custom icons (set via the customIconProperty, default TreeNode.icon), show drop state images when the user is drop-hovering over the folder. If true, the dropIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_drop.gif").
      Can be overridden at the node level via the default property TreeNode.showDropIcon and that property can be renamed via customIconDropProperty.
      Returns:
      Current showCustomIconDrop value. Default value is false
    • setShowCustomIconOpen

      public TreeGrid setShowCustomIconOpen(Boolean showCustomIconOpen)
      Should folder nodes showing custom icons (set via the customIconProperty), show open state images when the folder is opened. If true, the openIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_open.gif").
      Note that the closedIconSuffix is never appended to custom folder icons.
      Can be overridden at the node level via the default property TreeNode.showOpenIcon and that property can be renamed via customIconOpenProperty.

      Note : This is an advanced setting

      Parameters:
      showCustomIconOpen - New showCustomIconOpen value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowCustomIconOpen

      public Boolean getShowCustomIconOpen()
      Should folder nodes showing custom icons (set via the customIconProperty), show open state images when the folder is opened. If true, the openIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_open.gif").
      Note that the closedIconSuffix is never appended to custom folder icons.
      Can be overridden at the node level via the default property TreeNode.showOpenIcon and that property can be renamed via customIconOpenProperty.
      Returns:
      Current showCustomIconOpen value. Default value is false
    • setShowCustomIconSelected

      public TreeGrid setShowCustomIconSelected(Boolean showCustomIconSelected)
      Should folder nodes showing custom icons (set via the customIconProperty), show selected state images when the folder is selected, if showSelectedIcons is true?

      If true, the selectedIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_selected.gif").
      Can be overridden at the node level via the default property TreeNode.showSelectedIcon and that property can be renamed via customIconSelectedProperty.

      Note : This is an advanced setting

      Parameters:
      showCustomIconSelected - New showCustomIconSelected value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowCustomIconSelected

      public Boolean getShowCustomIconSelected()
      Should folder nodes showing custom icons (set via the customIconProperty), show selected state images when the folder is selected, if showSelectedIcons is true?

      If true, the selectedIconSuffix will be appended to the image URL (so "customFolder.gif" might be replaced with "customFolder_selected.gif").
      Can be overridden at the node level via the default property TreeNode.showSelectedIcon and that property can be renamed via customIconSelectedProperty.

      Returns:
      Current showCustomIconSelected value. Default value is false
    • setShowDisabledSelectionCheckbox

      public TreeGrid setShowDisabledSelectionCheckbox(Boolean showDisabledSelectionCheckbox) throws IllegalStateException
      Should tree nodes show a disabled checkbox selectionAppearance:"checkbox" is set on the treegrid, and a node can't be selected?

      If set to false the treeGrid will use leaveSelectionCheckboxGap to determine whether to leave a blank space where the checkbox would normally appear.

      Parameters:
      showDisabledSelectionCheckbox - New showDisabledSelectionCheckbox value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowDisabledSelectionCheckbox

      public Boolean getShowDisabledSelectionCheckbox()
      Should tree nodes show a disabled checkbox selectionAppearance:"checkbox" is set on the treegrid, and a node can't be selected?

      If set to false the treeGrid will use leaveSelectionCheckboxGap to determine whether to leave a blank space where the checkbox would normally appear.

      Returns:
      Current showDisabledSelectionCheckbox value. Default value is false
      See Also:
    • setShowDropEndSpace

      public TreeGrid setShowDropEndSpace(boolean showDropEndSpace)
      When the user drags over the treeGrid body, should the grid show some space under the last node in the grid allowing the user to drop after the last node? The height of this space can be customized via dropEndSpace

      See also canDropInEmptyArea and canDropSiblingAfterLastNode

      Note : This is an advanced setting

      Parameters:
      showDropEndSpace - New showDropEndSpace value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getShowDropEndSpace

      public boolean getShowDropEndSpace()
      When the user drags over the treeGrid body, should the grid show some space under the last node in the grid allowing the user to drop after the last node? The height of this space can be customized via dropEndSpace

      See also canDropInEmptyArea and canDropSiblingAfterLastNode

      Returns:
      Current showDropEndSpace value. Default value is true
      See Also:
    • setShowDropIcons

      public TreeGrid setShowDropIcons(Boolean showDropIcons)
      If true, when the user drags a droppable target over a folder in this TreeGrid, show a different folder icon. This is achieved by appending the dropIconSuffix onto the folderIcon URL (for example "[SKIN]/folder.gif" may be replaced by "[SKIN]/folder_drop.gif").
      Parameters:
      showDropIcons - New showDropIcons value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getShowDropIcons

      public Boolean getShowDropIcons()
      If true, when the user drags a droppable target over a folder in this TreeGrid, show a different folder icon. This is achieved by appending the dropIconSuffix onto the folderIcon URL (for example "[SKIN]/folder.gif" may be replaced by "[SKIN]/folder_drop.gif").
      Returns:
      Current showDropIcons value. Default value is true
      See Also:
    • setShowFolderIcons

      public TreeGrid setShowFolderIcons(Boolean showFolderIcons)
      Should folder nodes in this TreeGrid show icons by default?

      If unset, folder node icons will be shown if showNodeIcons is true

      See getIcon() for more details on treeGrid icons

      Parameters:
      showFolderIcons - New showFolderIcons value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowFolderIcons

      public Boolean getShowFolderIcons()
      Should folder nodes in this TreeGrid show icons by default?

      If unset, folder node icons will be shown if showNodeIcons is true

      See getIcon() for more details on treeGrid icons

      Returns:
      Current showFolderIcons value. Default value is null
    • setShowFullConnectors

      public TreeGrid setShowFullConnectors(Boolean showFullConnectors)
      If showConnectors is true, this property determines whether we should show vertical continuation lines for each level of indenting within the tree. Setting to false will show only the hierarchy lines for the most indented path ("sparse" connectors).
      Parameters:
      showFullConnectors - New showFullConnectors value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowFullConnectors

      public Boolean getShowFullConnectors()
      If showConnectors is true, this property determines whether we should show vertical continuation lines for each level of indenting within the tree. Setting to false will show only the hierarchy lines for the most indented path ("sparse" connectors).
      Returns:
      Current showFullConnectors value. Default value is true
    • setShowLoadingIcons

      public TreeGrid setShowLoadingIcons(boolean showLoadingIcons) throws IllegalStateException
      If set, when a folder is loading its children from the server (Tree.getLoadState() returns "loading"), it uses a distinct icon image given by loadingIcon. This is typically used to show a small animating "spinner" icon to let the user know data is being fetched.
      Parameters:
      showLoadingIcons - New showLoadingIcons value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowLoadingIcons

      public boolean getShowLoadingIcons()
      If set, when a folder is loading its children from the server (Tree.getLoadState() returns "loading"), it uses a distinct icon image given by loadingIcon. This is typically used to show a small animating "spinner" icon to let the user know data is being fetched.
      Returns:
      Current showLoadingIcons value. Default value is true
    • setShowNodeIcons

      public TreeGrid setShowNodeIcons(Boolean showNodeIcons)
      Should nodes in this TreeGrid show folder / leaf node icons by default?

      May be overridden for folder nodes via showFolderIcons

      See getIcon() for more details on treeGrid icons

      Parameters:
      showNodeIcons - New showNodeIcons value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowNodeIcons

      public Boolean getShowNodeIcons()
      Should nodes in this TreeGrid show folder / leaf node icons by default?

      May be overridden for folder nodes via showFolderIcons

      See getIcon() for more details on treeGrid icons

      Returns:
      Current showNodeIcons value. Default value is true
    • setShowOpener

      public TreeGrid setShowOpener(Boolean showOpener)
      Should the opener icon be displayed next to folder nodes? This is an icon which visually indicates whether the folder is opened or closed (typically via a [+] or [-] image, or a turn-down arrow) and may be clicked to expand or collapse the folder.

      For folders with no children, this icon is not shown unless alwaysShowOpener is true. Note that for trees which load data on demand, we may not know if a folder has any descendants if it has never been opened. As such we will show the opener icon next to the folder. Once the user opens the icon and a fetch occurs, if the folder is empty, and alwaysShowOpener is false, the opener icon will be hidden.

      For more information on load on demand trees, and how we determine whether a node is a a folder or a leaf, please refer to the TreeDataBinding documentation.

      The opener icon URL is derived from the specified openerImage or connectorImage depending on showConnectors. If showSelectedOpener is specified a separate opener icon will be displayed for selected nodes.

      Parameters:
      showOpener - New showOpener value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowOpener

      public Boolean getShowOpener()
      Should the opener icon be displayed next to folder nodes? This is an icon which visually indicates whether the folder is opened or closed (typically via a [+] or [-] image, or a turn-down arrow) and may be clicked to expand or collapse the folder.

      For folders with no children, this icon is not shown unless alwaysShowOpener is true. Note that for trees which load data on demand, we may not know if a folder has any descendants if it has never been opened. As such we will show the opener icon next to the folder. Once the user opens the icon and a fetch occurs, if the folder is empty, and alwaysShowOpener is false, the opener icon will be hidden.

      For more information on load on demand trees, and how we determine whether a node is a a folder or a leaf, please refer to the TreeDataBinding documentation.

      The opener icon URL is derived from the specified openerImage or connectorImage depending on showConnectors. If showSelectedOpener is specified a separate opener icon will be displayed for selected nodes.

      Returns:
      Current showOpener value. Default value is true
    • setShowOpenIcons

      public TreeGrid setShowOpenIcons(Boolean showOpenIcons)
      If true, show a different icon for open folders than closed folders. This is achieved by appending the openIconSuffix onto the folderIcon URL [for example "[SKIN]/folder.gif" might be replaced by "[SKIN]/folder_open.gif".
      Note If this property is set to false the same icon is shown for open folders as for closed folders, unless a custom folder icon was specified. This will be determined by folderIcon plus the closedIconSuffix.
      Parameters:
      showOpenIcons - New showOpenIcons value. Default value is true
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getShowOpenIcons

      public Boolean getShowOpenIcons()
      If true, show a different icon for open folders than closed folders. This is achieved by appending the openIconSuffix onto the folderIcon URL [for example "[SKIN]/folder.gif" might be replaced by "[SKIN]/folder_open.gif".
      Note If this property is set to false the same icon is shown for open folders as for closed folders, unless a custom folder icon was specified. This will be determined by folderIcon plus the closedIconSuffix.
      Returns:
      Current showOpenIcons value. Default value is true
      See Also:
    • setShowPartialSelection

      public TreeGrid setShowPartialSelection(Boolean showPartialSelection)
      Should partially selected parents be shown with special icon?
      Overrides:
      setShowPartialSelection in class ListGrid
      Parameters:
      showPartialSelection - New showPartialSelection value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getShowPartialSelection

      public Boolean getShowPartialSelection()
      Should partially selected parents be shown with special icon?
      Overrides:
      getShowPartialSelection in class ListGrid
      Returns:
      Current showPartialSelection value. Default value is false
      See Also:
    • setShowRoot

      public TreeGrid setShowRoot(Boolean showRoot) throws IllegalStateException
      Specifies whether the root node should be displayed in the treeGrid.

      This property is only available for "children" modelType trees, hence is not allowed for trees that load data from the server dynamically via fetchData().

      To get the equivalent of a visible "root" node in a tree that loads data dynamically, add a singular, top-level parent to the data. However, note that this top-level parent will technically be the only child of root, and the implicit root object will be returned by this.data.getRoot().

      Parameters:
      showRoot - New showRoot value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowRoot

      public Boolean getShowRoot()
      Specifies whether the root node should be displayed in the treeGrid.

      This property is only available for "children" modelType trees, hence is not allowed for trees that load data from the server dynamically via fetchData().

      To get the equivalent of a visible "root" node in a tree that loads data dynamically, add a singular, top-level parent to the data. However, note that this top-level parent will technically be the only child of root, and the implicit root object will be returned by this.data.getRoot().

      Returns:
      Current showRoot value. Default value is false
    • setShowSelectedIcons

      public TreeGrid setShowSelectedIcons(Boolean showSelectedIcons)
      If true, show a different icon for selected nodes than unselected nodes. This is achieved by appending the selectedIconSuffix onto the folderIcon URL or nodeIcon for selected records.

      If appropriate, this suffix will be combined with the openIconSuffix or closedIconSuffix (see showOpenIcons. So a treeGrid with its folderIcon property set to "[SKIN]/folder.gif", with both showSelectedIcons and showOpenIcons set to true would show an icon with the URL "[SKIN]/folder_open_selected.gif" for a folder that was both selected and opened.

      Parameters:
      showSelectedIcons - New showSelectedIcons value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowSelectedIcons

      public Boolean getShowSelectedIcons()
      If true, show a different icon for selected nodes than unselected nodes. This is achieved by appending the selectedIconSuffix onto the folderIcon URL or nodeIcon for selected records.

      If appropriate, this suffix will be combined with the openIconSuffix or closedIconSuffix (see showOpenIcons. So a treeGrid with its folderIcon property set to "[SKIN]/folder.gif", with both showSelectedIcons and showOpenIcons set to true would show an icon with the URL "[SKIN]/folder_open_selected.gif" for a folder that was both selected and opened.

      Returns:
      Current showSelectedIcons value. Default value is false
    • setShowSelectedOpener

      public TreeGrid setShowSelectedOpener(Boolean showSelectedOpener)
      If showOpener is true, should a different opener icon be displayed for selected nodes? This provides a way for developers to show a "selected" version of the opener icon set which looks optimal with the selected appearance applied the selected record.

      The selected icon URL is created by appending the suffix "_selected" to the openerImage or connectorImage.

      Parameters:
      showSelectedOpener - New showSelectedOpener value. Default value is false
      Returns:
      TreeGrid instance, for chaining setter calls
    • getShowSelectedOpener

      public Boolean getShowSelectedOpener()
      If showOpener is true, should a different opener icon be displayed for selected nodes? This provides a way for developers to show a "selected" version of the opener icon set which looks optimal with the selected appearance applied the selected record.

      The selected icon URL is created by appending the suffix "_selected" to the openerImage or connectorImage.

      Returns:
      Current showSelectedOpener value. Default value is false
    • setSortFoldersBeforeLeaves

      public TreeGrid setSortFoldersBeforeLeaves(Boolean sortFoldersBeforeLeaves) throws IllegalStateException
      If specified, this attribute will override Tree.sortFoldersBeforeLeaves on the data for this treeGrid.

      Specifies whether when Tree.separateFolders is true, folders should be displayed before or after their sibling leaves in a sorted tree. If set to true, with sortDirection set to Array.ASCENDING, folders are displayed before their sibling leaves and with sort direction set to Array.DESCENDING they are displayed after. To invert this behavior, set this property to false.

      Parameters:
      sortFoldersBeforeLeaves - New sortFoldersBeforeLeaves value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getSortFoldersBeforeLeaves

      public Boolean getSortFoldersBeforeLeaves()
      If specified, this attribute will override Tree.sortFoldersBeforeLeaves on the data for this treeGrid.

      Specifies whether when Tree.separateFolders is true, folders should be displayed before or after their sibling leaves in a sorted tree. If set to true, with sortDirection set to Array.ASCENDING, folders are displayed before their sibling leaves and with sort direction set to Array.DESCENDING they are displayed after. To invert this behavior, set this property to false.

      Returns:
      Current sortFoldersBeforeLeaves value. Default value is null
      See Also:
    • setTreeFieldMinWidth

      public TreeGrid setTreeFieldMinWidth(int treeFieldMinWidth) throws IllegalStateException
      Default minimum width for the treeField. If unset, the default minimum width will be derived from minFieldWidth, like any every other field.
      Parameters:
      treeFieldMinWidth - New treeFieldMinWidth value. Default value is 100
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getTreeFieldMinWidth

      public int getTreeFieldMinWidth()
      Default minimum width for the treeField. If unset, the default minimum width will be derived from minFieldWidth, like any every other field.
      Returns:
      Current treeFieldMinWidth value. Default value is 100
    • setTreeFieldTitle

      public TreeGrid setTreeFieldTitle(String treeFieldTitle) throws IllegalStateException
      Visible title for the tree column (field).
      Parameters:
      treeFieldTitle - New treeFieldTitle value. Default value is "Name"
      Returns:
      TreeGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getTreeFieldTitle

      public String getTreeFieldTitle()
      Visible title for the tree column (field).
      Returns:
      Current treeFieldTitle value. Default value is "Name"
    • setUseAllDataSourceFields

      public TreeGrid setUseAllDataSourceFields(Boolean useAllDataSourceFields)
      If true, the set of fields given by the "default binding" (see DataBoundComponent.fields) is used, with any fields specified in component.fields acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.

      If component.fields contains fields that are not found in the DataSource, they will be shown after the most recently referred to DataSource field. If the new fields appear first, they will be shown first.

      This example shows a mixture of component fields and DataSource fields, and how they interact for validation.

      This setting may be cleared if a FieldPicker is used to edit the component's field order.

      Specified by:
      setUseAllDataSourceFields in interface DataBoundComponent
      Overrides:
      setUseAllDataSourceFields in class ListGrid
      Parameters:
      useAllDataSourceFields - New useAllDataSourceFields value. Default value is null
      Returns:
      TreeGrid instance, for chaining setter calls
      See Also:
    • getUseAllDataSourceFields

      public Boolean getUseAllDataSourceFields()
      If true, the set of fields given by the "default binding" (see DataBoundComponent.fields) is used, with any fields specified in component.fields acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.

      If component.fields contains fields that are not found in the DataSource, they will be shown after the most recently referred to DataSource field. If the new fields appear first, they will be shown first.

      This example shows a mixture of component fields and DataSource fields, and how they interact for validation.

      This setting may be cleared if a FieldPicker is used to edit the component's field order.

      Specified by:
      getUseAllDataSourceFields in interface DataBoundComponent
      Overrides:
      getUseAllDataSourceFields in class ListGrid
      Returns:
      Current useAllDataSourceFields value. Default value is null
      See Also:
    • canEditCell

      public Boolean canEditCell()
      Overridden to disallow editing of the name field of this grid's data tree. Also disallows editing of the auto-generated tree field, which displays the result of Tree.getTitle() on the node.
      Returns:
      Whether to allow editing this cell
    • closeFolder

      public void closeFolder(TreeNode node)
      Closes a folder.
      Parameters:
      node - node to close
      See Also:
    • addDataArrivedHandler

      public HandlerRegistration addDataArrivedHandler(DataArrivedHandler handler)
      Add a dataArrived handler.

      Notification method fired whenever this TreeGrid receives new data nodes from the dataSource. Only applies to databound TreeGrids where TreeGrid.data is a ResultTree - either explicitly created and applied via TreeGrid.setData() or automatically generated via a fetchData() call.

      Note that dataArrived(), unlike TreeGrid.dataChanged(), only fires in limited circumstances - when data for a ResultTree arrives from the server due to a fetch or cache invalidation, or as a result of filtering. If you want to catch all data changes, you should instead react to TreeGrid.dataChanged().

      Specified by:
      addDataArrivedHandler in interface HasDataArrivedHandlers
      Parameters:
      handler - the dataArrived handler
      Returns:
      HandlerRegistration used to remove this handler
    • addDataChangedHandler

      public HandlerRegistration addDataChangedHandler(DataChangedHandler handler)
      Add a dataChanged handler.

      Notification method fired when the TreeGrid's data changes, for any reason.

      Examples of why data changed might be:

      Calling TreeGrid.setData() doesn't call this notification directly, but it may fire if one of the above listed events is triggered (e.g. a server fetch for ResultTree data).

      Note that the operationType parameter is optional and will be passed and contain the operation (e.g. "update") if this notification was triggered by a fetch, an addData(), updateData(), or removeData(), or a DataSource update for ResultTree data (the first three reasons listed above) but otherwise will be null.

      Specified by:
      addDataChangedHandler in interface HasDataChangedHandlers
      Parameters:
      handler - the dataChanged handler
      Returns:
      HandlerRegistration used to remove this handler
    • exportClientData

      public void exportClientData()
      Exports this component's data with client-side formatters applied, so is suitable for direct display to users. See ListGrid.exportClientData() for details of the general requirements and restrictions when exporting client data.

      The following notes apply when exporting client data from TreeGrids:

      • Export only works correctly if you specify fields; if you allow it to generate a default field, nothing will be exported
      • Only visible nodes are exported; if you close a node, its children are not exported even if they are loaded and known to the client
      • Tree nodes are exported as a flat list, in the same order they are displayed in the TreeGrid

      If your TreeGrid has custom formatters, formatted values will be exported by default, with HTML normalized to text where possible. Since some levels of HTML normalizing aren't possible, this may result in missing or incorrect export values. In this case, you have two possible approaches:

      • Set exportRawValues on the field. This will export the raw underlying value of the field; your formatter will not be called
      • Have your formatter call isExportingClientData() and perform whatever alternative formatting you require if that method returns true
      Overrides:
      exportClientData in class ListGrid
      See Also:
    • exportClientData

      public void exportClientData(DSRequest requestProperties)
      Overrides:
      exportClientData in class ListGrid
      See Also:
    • exportClientData

      public void exportClientData(DSRequest requestProperties, RPCCallback callback)
      Exports this component's data with client-side formatters applied, so is suitable for direct display to users. See ListGrid.exportClientData() for details of the general requirements and restrictions when exporting client data.

      The following notes apply when exporting client data from TreeGrids:

      • Export only works correctly if you specify fields; if you allow it to generate a default field, nothing will be exported
      • Only visible nodes are exported; if you close a node, its children are not exported even if they are loaded and known to the client
      • Tree nodes are exported as a flat list, in the same order they are displayed in the TreeGrid

      If your TreeGrid has custom formatters, formatted values will be exported by default, with HTML normalized to text where possible. Since some levels of HTML normalizing aren't possible, this may result in missing or incorrect export values. In this case, you have two possible approaches:

      • Set exportRawValues on the field. This will export the raw underlying value of the field; your formatter will not be called
      • Have your formatter call isExportingClientData() and perform whatever alternative formatting you require if that method returns true
      Overrides:
      exportClientData in class ListGrid
      Parameters:
      requestProperties - Request properties for the export. Note that specifying exportData on the request properties allows the developer to pass in an explicit data set to export.
      callback - Optional callback. If you specify exportToClient: false in the request properties, this callback will fire after export completes. Otherwise the callback will fire right before the download request is made to the server.
      See Also:
    • addFolderClickHandler

      public HandlerRegistration addFolderClickHandler(FolderClickHandler handler)
      Add a folderClick handler.

      This method is called when a folder record is clicked on.

      Specified by:
      addFolderClickHandler in interface HasFolderClickHandlers
      Parameters:
      handler - the folderClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addFolderClosedHandler

      public HandlerRegistration addFolderClosedHandler(FolderClosedHandler handler)
      Add a folderClosed handler.

      This method is called when a folder is closed either via the user manipulating the expand/collapse control in the UI or via TreeGrid.closeFolder(). You can return false to cancel the close.

      Specified by:
      addFolderClosedHandler in interface HasFolderClosedHandlers
      Parameters:
      handler - the folderClosed handler
      Returns:
      HandlerRegistration used to remove this handler
    • addFolderContextClickHandler

      public HandlerRegistration addFolderContextClickHandler(FolderContextClickHandler handler)
      Add a folderContextClick handler.

      This method is called when a context click occurs on a folder record.

      Specified by:
      addFolderContextClickHandler in interface HasFolderContextClickHandlers
      Parameters:
      handler - the folderContextClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addFolderOpenedHandler

      public HandlerRegistration addFolderOpenedHandler(FolderOpenedHandler handler)
      Add a folderOpened handler.

      This method is called when a folder is opened either via the user manipulating the expand/collapse control in the UI or via TreeGrid.openFolder(). You can return false to cancel the open.

      Specified by:
      addFolderOpenedHandler in interface HasFolderOpenedHandlers
      Parameters:
      handler - the folderOpened handler
      Returns:
      HandlerRegistration used to remove this handler
    • getDraggedNodeLocators

      public NodeLocator[] getDraggedNodeLocators(TreeGrid source)
      NOTE: Applicable only to multi-link trees; if called on a regular TreeGrid, returns an empty array.

      During a drag-and-drop interaction, this method returns the set of node occurrences being dragged out of the component, wrapped inside NodeLocators. In the default implementation, this is the list of currently selected node occurrences

      Parameters:
      source - source grid from which the records will be transferred
      Returns:
      Array of NodeLocators unambiguously identifying the node occurrences that are currently selected
    • getEventRow

      public int getEventRow()
      Returns the row number of the provided Y-coordinate, or the most recent mouse event if a Y-coordinate is not provided.
      Overrides:
      getEventRow in class ListGrid
      Returns:
      row number, or -2 if beyond last drawn row
    • getEventRow

      public int getEventRow(Integer y)
      Returns the row number of the provided Y-coordinate, or the most recent mouse event if a Y-coordinate is not provided.
      Overrides:
      getEventRow in class ListGrid
      Parameters:
      y - Y-coordinate relative to the top edge of the content to obtain the row number for. If not provided, then Canvas.getOffsetY() will be used.
      Returns:
      row number, or -2 if beyond last drawn row
    • getOpenIcon

      public String getOpenIcon(TreeNode node)
      Get the appropriate open/close opener icon for a node. Returns null if showOpener is set to false.
      Parameters:
      node - tree node in question
      Returns:
      URL for the icon to show the node's open state. See URL
    • getOpenState

      public String getOpenState()
      Returns a snapshot of the current open state of this grid's data as a TreeGridOpenState object.
      This object can be passed to setOpenState() to open the same set of folders within the treeGrid's data (assuming the nodes are still present in the data).
      Returns:
      current open state for the grid. See TreeGridOpenState
      See Also:
    • getSelectedPaths

      public String getSelectedPaths()
      Returns a snapshot of the current selection within this treeGrid as a ListGridSelectedState object.
      This object can be passed to setSelectedPaths() to reset this grid's selection the current state (assuming the same data is present in the grid).
      Returns:
      current state of this grid's selection. See ListGridSelectedState
      See Also:
    • groupBy

      public void groupBy()
      Not applicable to TreeGrids, as the data already represents a tree.
      See Also:
    • isExportingClientData

      public boolean isExportingClientData()
      Returns true if this component is currently exporting client data. This method can be called from custom cell formatters if you need to return a different formatted value for an export than for a live TreeGrid
      Overrides:
      isExportingClientData in class ListGrid
      Returns:
      returns true if this component is currently exporting client data
      See Also:
    • isOverExtraIcon

      public Boolean isOverExtraIcon()
      Returns true if the last event occurred over extra icon for the current node.

      Returns false if the event did not occur over an extraIcon, or if no extraIcon is showing for the node in question.

      Returns:
      true if the user clicked the extra icon
    • isOverOpenArea

      public Boolean isOverOpenArea()
      Returns true if the last event occurred over the indented area or over the open / close icon of a folder node in this TreeGrid. Returns false if the event did not occur over a folder node.
      Returns:
      true if the user clicked the open icon
    • addLeafClickHandler

      public HandlerRegistration addLeafClickHandler(LeafClickHandler handler)
      Add a leafClick handler.

      This method is called when a leaf record is clicked on.

      Specified by:
      addLeafClickHandler in interface HasLeafClickHandlers
      Parameters:
      handler - the leafClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addLeafContextClickHandler

      public HandlerRegistration addLeafContextClickHandler(LeafContextClickHandler handler)
      Add a leafContextClick handler.

      This method is called when a context click occurs on a leaf record.

      Specified by:
      addLeafContextClickHandler in interface HasLeafContextClickHandlers
      Parameters:
      handler - the leafContextClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • loadAllRecords

      public Boolean loadAllRecords()
      This method is not currently supported for this grid-type. See ListGrid.loadAllRecords() for more information.
      Overrides:
      loadAllRecords in class ListGrid
      Returns:
      true if a fetch was made or was not needed - false otherwise
    • loadAllRecords

      public Boolean loadAllRecords(Integer maxRecords)
      Overrides:
      loadAllRecords in class ListGrid
      See Also:
    • loadAllRecords

      public Boolean loadAllRecords(Integer maxRecords, DSCallback callback)
      This method is not currently supported for this grid-type. See ListGrid.loadAllRecords() for more information.
      Overrides:
      loadAllRecords in class ListGrid
      Parameters:
      maxRecords - optional maximum record count - if passed, no fetch takes place if maxRecords is below the known length of the data
      callback - callback to fire if a fetch is issued - if all data was already loaded, the callback is fired with no parameters
      Returns:
      true if a fetch was made or was not needed - false otherwise
    • addNodeClickHandler

      public HandlerRegistration addNodeClickHandler(NodeClickHandler handler)
      Add a nodeClick handler.

      This method is called when a leaf or folder record is clicked on. Note that if you set up a callback for nodeClick() and e.g. TreeGrid.leafClick(), then both will fire (in that order) if a leaf is clicked on.

      Specified by:
      addNodeClickHandler in interface HasNodeClickHandlers
      Parameters:
      handler - the nodeClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addNodeContextClickHandler

      public HandlerRegistration addNodeContextClickHandler(NodeContextClickHandler handler)
      Add a nodeContextClick handler.

      This method is called when a context click occurs on a leaf or folder record. Note that if you set up a callback for nodeContextClick() and e.g. TreeGrid.leafContextClick(), then both will fire (in that order) if a leaf is contextclicked - unless nodeContextClick() returns false, in which case no further contextClick callbacks will be called.

      Specified by:
      addNodeContextClickHandler in interface HasNodeContextClickHandlers
      Parameters:
      handler - the nodeContextClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addFolderDropHandler

      public HandlerRegistration addFolderDropHandler(FolderDropHandler handler)
      Add a folderDrop handler.

      Process a drop of one or more nodes on a TreeGrid folder.
      Note: See TreeGridDrop for an overview of TreeGrid drag and drop behavior. Add logic in your drop handler to perform custom drop behaviors; to suppress the built-in behavior described below, use event.cancel()

      The default behavior is to simply delegate to the TreeGrid.transferNodes() method; thus, the correct way to perform a programmatic folder drop, with all the built-in behaviors described below, is to call transferNodes()

      If this is a self-drop, nodes are simply reordered. An "update" operation will be submitted to update the parentId field of the moved node(s).

      For a drop from another widget, TreeGrid.transferDragData() is called which, depending on the dragDataAction specified on the source widget, may either remove the source nodes from the original list (dragDataAction:"move") or just provide a copy to this tree (dragDataAction:"copy").

      In either case the new row(s) appear in the folder at the index specified by the arguments of the same name.

      If this grid is databound, the new nodes will be added to the dataset by calling DataSource.addData(). Further, if the new nodes were dragged from another databound component, and addDropValues is true, getDropValues will be called for every item being dropped.

      As a special case, if the sourceWidget is also databound and a foreignKey relationship is declared from the sourceWidget's DataSource to this TreeGrid's DataSource, the interaction will be treated as a "drag recategorization" use case such as files being placed in folders, employees being assigned to teams, etc. "update" DSRequests will be submitted that change the foreignKey field in the dropped records to point to the tree folder that was the target of the drop. In this case no change will be made to the Tree data as such, only to the dropped records.

      For multi-record drops, Queuing is automatically used to combine all DSRequests into a single HTTP Request (see QuickStart Guide, Server Framework chapter). This allows the server to persist all changes caused by the drop in a single transaction (and this is automatically done when using the built-in server DataSources with Power Edition and above).

      If these default persistence behaviors are undesirable, use event.cancel(), then implement your own behavior, typically by using grid.updateData() or addData() to add new records.

      NOTE: the records you receive in this event are the actual Records from the source component. Use DataSource.copyRecords() to create a copy before modifying the records or using them with updateData() or addData().

      Specified by:
      addFolderDropHandler in interface HasFolderDropHandlers
      Parameters:
      handler - the folderDrop handler
      Returns:
      HandlerRegistration used to remove this handler
    • openFolder

      public void openFolder(TreeNode node)
      Opens a folder.

      Executed when a folder node receives a 'doubleClick' event.

      See the ListGrid Widget Class for inherited recordClick and recordDoubleClick events.

      Parameters:
      node - node to open
      See Also:
    • openFolder

      public void openFolder(TreeNode node, String path)
      Opens a folder.

      Executed when a folder node receives a 'doubleClick' event.

      See the ListGrid Widget Class for inherited recordClick and recordDoubleClick events.

      Parameters:
      node - node to open
      path - optional parameter containing the full path to the node. This is essential context for a multi-link tree, but is not required in ordinary trees
      See Also:
    • recordDoubleClick

      public boolean recordDoubleClick(TreeGrid viewer, TreeNode record, int recordNum, TreeGridField field, int fieldNum, Map value, Map rawValue)
      Handle a doubleClick on a tree node - override of ListGrid stringMethod of same name. If the node is a folder, this implementation calls toggleFolder() on it. If the node is a leaf, calls openLeaf() on it.
      Parameters:
      viewer - the treeGrid that contains doubleclick event
      record - the record that was double-clicked
      recordNum - number of the record clicked on in the current set of displayed records (starts with 0)
      field - the field that was clicked on (field definition)
      fieldNum - number of the field clicked on in the treeGrid.fields array
      value - value of the cell (after valueMap, etc. applied)
      rawValue - raw value of the cell (before valueMap, etc applied)
      Returns:
      false to stop event bubbling
      See Also:
    • setOpenState

      public void setOpenState(String openState)
      Reset this set of open folders within this grid's data to match the TreeGridOpenState object passed in.
      Used to restore previous state retrieved from the grid by a call to getOpenState().
      Parameters:
      openState - Object describing the desired set of open folders. See TreeGridOpenState
      See Also:
    • setSelectedPaths

      public void setSelectedPaths(String selectedPaths)
      Reset this grid's selection to match the ListGridSelectedState object passed in.
      Used to restore previous state retrieved from the grid by a call to getSelectedPaths().
      Parameters:
      selectedPaths - Object describing the desired selection state of the grid. See ListGridSelectedState
      See Also:
    • toggleFolder

      public void toggleFolder(TreeNode node)
      Opens the folder specified by node if it's closed, and closes it if it's open. TreeGrid will redraw if there's a change in the folder's open/closed state.
      Parameters:
      node - the node in question, or the the node's ID, or a NodeLocator object
    • toggleFolder

      public void toggleFolder(String node)
      Opens the folder specified by node if it's closed, and closes it if it's open. TreeGrid will redraw if there's a change in the folder's open/closed state.
      Parameters:
      node - the node in question, or the the node's ID, or a NodeLocator object
    • toggleFolder

      public void toggleFolder(Integer node)
      Opens the folder specified by node if it's closed, and closes it if it's open. TreeGrid will redraw if there's a change in the folder's open/closed state.
      Parameters:
      node - the node in question, or the the node's ID, or a NodeLocator object
    • toggleFolder

      public void toggleFolder(NodeLocator node)
      Opens the folder specified by node if it's closed, and closes it if it's open. TreeGrid will redraw if there's a change in the folder's open/closed state.
      Parameters:
      node - the node in question, or the the node's ID, or a NodeLocator object
    • setDefaultProperties

      public static void setDefaultProperties(TreeGrid treeGridProperties)
      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
      treeGridProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • onInit

      protected void onInit()
      Overrides:
      onInit in class ListGrid
    • startEditingNew

      public void startEditingNew()
      This inherited ListGrid API is not supported by the TreeGrid since adding a new tree node arbitrarily at the end of the tree is usually not useful. Instead, to add a new tree node and begin editing it, use either of these two strategies:
      1. add a new node to the client-side Tree model via Tree.add, then use startEditing to begin editing this node. Note that if using a DataSource, when the node is saved, an "update" operation will be used since adding a node directly to the client-side ResultTree effectively means a new node has been added server side.
      2. use DataSource.addData to immediately save a new node. Automatic cache sync by the ResultTree will cause the node to be integrated into the tree. When the callback to addData() fires, locate the new node by matching primary key and call startEditing to begin editing it.
      Overrides:
      startEditingNew in class ListGrid
      See Also:
    • getNodeTitle

      protected String getNodeTitle(Record node, int recordNum, ListGridField field)
      &#010 Returns the title to show for a node in the tree column. If the field specifies the&#010 name attribute, then the current node[field.name] is returned.&#010 Otherwise, the result of calling Tree.getTitle(com.smartgwt.client.widgets.tree.TreeNode) on the node is called.&#010

      &#010 You can override this method to return a custom title for node titles in the tree column.&#010&#010 Note : This is an override point
      Parameters:
      node - The node for which the title is being requested.
      recordNum - The index of the node.
      field - The field for which the title is being requested.
      Returns:
      the title to display.
    • getIcon

      protected String getIcon(Record node, boolean defaultState)
      Get the appropriate icon for a node.&#010

      &#010 By default icons are derived from folderIcon and nodeIcon.&#010 Custom icons for individual nodes can be overridden by setting the customIconProperty&#010 on a node.&#010

      &#010 If you want to suppress icons altogether, provide an override of this method that simply&#010 returns null.&#010

      &#010 Note that the full icon URL will be derived by applying Canvas.getImgURL(java.lang.String) to the&#010 value returned from this method.&#010&#010

      Note: This is an override point

      Parameters:
      node - tree node in question
      defaultState - defaultState
      Returns:
      URL for icon to show for this node
    • setCustomNodeIcon

      public void setCustomNodeIcon(Record node, String icon)
      Set the icon for a particular TreeNode to a specified URL
      Parameters:
      node - the tree node
      icon - path to the resource
    • getExtraIcon

      public String getExtraIcon(TreeNode node)
      Get an additional icon to show between the open icon and folder/node icon for a particular node.

      NOTE: If selectionAppearance is "checkbox", this method will NOT be called. Extra icons cannot be shown for that appearance.

      Note: This is an override point

      Parameters:
      node - tree node in question
      Returns:
      URL for the extra icon (null if none required). See TreeNode
    • getDropFolder

      public TreeNode getDropFolder()
      When the user is dragging a droppable element over this grid, this method returns the folder&#010 which would contain the item if dropped. This is the current drop node if the user is hovering&#010 over a folder, or the node's parent if the user is hovering over a leaf.&#010
      Returns:
      target drop folder
    • setData

      public void setData(Tree data)
      A Tree object containing of nested TreeNodes to display as rows in this TreeGrid. The data property will typically not be explicitly specified for databound TreeGrids, where the data is returned from the server via databound component methods such as fetchData()

      If this method is called after the component has been drawn/initialized: Set the Tree object this TreeGrid will view and manipulate.
      Parameters:
      data - Tree to show. Default value is null
    • getData

      public Tree getData()
      A Tree object containing of nested TreeNodes to display as rows in this TreeGrid. The data property will typically not be explicitly specified for databound TreeGrids, where the data is returned from the server via databound component methods such as fetchData()
      Returns:
      Tree
    • getTree

      public Tree getTree()
      Synonym for getData()
      Returns:
      the underlying tree
    • setDataProperties

      public void setDataProperties(Tree resultTreeProperties)
      For databound TreeGrids, this attribute can be used to customize the com.smartgwt.client.tree.ResultTree object created for this grid when data is fetched.

      Note : This is an advanced setting

      Class overrides for ResultTree cannot be applied to the grid using this API. Instead, consider setting the resultTreeClass property in the file defining your DataSource. Your class must be registered for reflection.
      Parameters:
      resultTreeProperties - the data properties
      See Also:
    • getRecords

      public ListGridRecord[] getRecords()
      Return the tree nodes as a flat array of ListGridRecords. Internally this method retrieves all the nodes via Tree.getOpenList(TreeNode). You should favor working with the underlying Tree data structure when working with a TreeGrid.
      Overrides:
      getRecords in class ListGrid
      Returns:
      the tree nodes as ListGridRecord's
    • setInitialData

      public void setInitialData(TreeNode[] initialData) throws IllegalStateException
      You can specify the initial set of data for a databound TreeGrid using this property. The value of this attribute should be a list of parentId-linked TreeNodes in a format equivalent to that documented on Tree.data or, for TreeGrids with dataFetchMode set to "paged", on ResultTree.data.

      If you create a standalone Tree or ResultTree as the TreeGrid's data then you may equivalently specify this initial set of tree nodes in that tree's data property.

      Note : This is an advanced setting

      Parameters:
      initialData - New initialData value. Default value is null
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • fetchData

      public void fetchData()
      Uses a "fetch" operation on the current DataSource to retrieve data that matches the provided criteria, and displays the matching data in this component as a tree.

      This method will create a com.smartgwt.client.data.ResultTree to manage tree data, which will subsequently be available as treeGrid.data. DataSource records returned by the "fetch" operation are linked into a tree structure according to primaryKey and foreignKey declarations on DataSource fields. See the TreeDataBinding topic for complete details.

      By default, the created ResultTree will use folder-by-folder load on demand, asking the server for the children of each folder as the user opens it.

      The com.smartgwt.client.data.ResultTree created by fetchData() can be customized by setting dataProperties to an Object containing properties and methods to apply to the created ResultTree. For example, the property that determines whether a node is a folder (isFolderProperty) can be customized, or level-by-level loading can be disabled via loadDataOnDemand.

      The callback passed to fetchData will fire once, the first time that data is loaded from the server. If using folder-by-folder load on demand, use the com.smartgwt.client.data.ResultTree#dataArrived notification to be notified each time new nodes are loaded.

      Note that, if criteria are passed to fetchData(), they will be passed every time a new "fetch" operation is sent to the server. This allows you to retrieve multiple different tree structures from the same DataSource. However note that the server is expected to always respond with an intact tree - returned nodes which do not have parents are dropped from the dataset and not displayed.

      Specified by:
      fetchData in interface DataBoundComponent
      Overrides:
      fetchData in class ListGrid
    • fetchData

      public void fetchData(Criteria criteria)
      Uses a "fetch" operation on the current DataSource to retrieve data that matches the provided criteria, and displays the matching data in this component as a tree.

      This method will create a com.smartgwt.client.data.ResultTree to manage tree data, which will subsequently be available as treeGrid.data. DataSource records returned by the "fetch" operation are linked into a tree structure according to primaryKey and foreignKey declarations on DataSource fields. See the TreeDataBinding topic for complete details.

      By default, the created ResultTree will use folder-by-folder load on demand, asking the server for the children of each folder as the user opens it.

      The com.smartgwt.client.data.ResultTree created by fetchData() can be customized by setting dataProperties to an Object containing properties and methods to apply to the created ResultTree. For example, the property that determines whether a node is a folder (isFolderProperty) can be customized, or level-by-level loading can be disabled via loadDataOnDemand.

      The callback passed to fetchData will fire once, the first time that data is loaded from the server. If using folder-by-folder load on demand, use the com.smartgwt.client.data.ResultTree#dataArrived notification to be notified each time new nodes are loaded.

      Note that, if criteria are passed to fetchData(), they will be passed every time a new "fetch" operation is sent to the server. This allows you to retrieve multiple different tree structures from the same DataSource. However note that the server is expected to always respond with an intact tree - returned nodes which do not have parents are dropped from the dataset and not displayed.

      Specified by:
      fetchData in interface DataBoundComponent
      Overrides:
      fetchData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
    • fetchData

      public void fetchData(Criteria criteria, DSCallback callback)
      Uses a "fetch" operation on the current DataSource to retrieve data that matches the provided criteria, and displays the matching data in this component as a tree.

      This method will create a com.smartgwt.client.data.ResultTree to manage tree data, which will subsequently be available as treeGrid.data. DataSource records returned by the "fetch" operation are linked into a tree structure according to primaryKey and foreignKey declarations on DataSource fields. See the TreeDataBinding topic for complete details.

      By default, the created ResultTree will use folder-by-folder load on demand, asking the server for the children of each folder as the user opens it.

      The com.smartgwt.client.data.ResultTree created by fetchData() can be customized by setting dataProperties to an Object containing properties and methods to apply to the created ResultTree. For example, the property that determines whether a node is a folder (isFolderProperty) can be customized, or level-by-level loading can be disabled via loadDataOnDemand.

      The callback passed to fetchData will fire once, the first time that data is loaded from the server. If using folder-by-folder load on demand, use the com.smartgwt.client.data.ResultTree#dataArrived notification to be notified each time new nodes are loaded.

      Note that, if criteria are passed to fetchData(), they will be passed every time a new "fetch" operation is sent to the server. This allows you to retrieve multiple different tree structures from the same DataSource. However note that the server is expected to always respond with an intact tree - returned nodes which do not have parents are dropped from the dataset and not displayed.

      Specified by:
      fetchData in interface DataBoundComponent
      Overrides:
      fetchData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required
    • fetchData

      public void fetchData(Criteria criteria, DSCallback callback, DSRequest requestProperties)
      Uses a "fetch" operation on the current DataSource to retrieve data that matches the provided criteria, and displays the matching data in this component as a tree.

      This method will create a com.smartgwt.client.data.ResultTree to manage tree data, which will subsequently be available as treeGrid.data. DataSource records returned by the "fetch" operation are linked into a tree structure according to primaryKey and foreignKey declarations on DataSource fields. See the TreeDataBinding topic for complete details.

      By default, the created ResultTree will use folder-by-folder load on demand, asking the server for the children of each folder as the user opens it.

      The com.smartgwt.client.data.ResultTree created by fetchData() can be customized by setting dataProperties to an Object containing properties and methods to apply to the created ResultTree. For example, the property that determines whether a node is a folder (isFolderProperty) can be customized, or level-by-level loading can be disabled via loadDataOnDemand.

      The callback passed to fetchData will fire once, the first time that data is loaded from the server. If using folder-by-folder load on demand, use the com.smartgwt.client.data.ResultTree#dataArrived notification to be notified each time new nodes are loaded.

      Note that, if criteria are passed to fetchData(), they will be passed every time a new "fetch" operation is sent to the server. This allows you to retrieve multiple different tree structures from the same DataSource. However note that the server is expected to always respond with an intact tree - returned nodes which do not have parents are dropped from the dataset and not displayed.

      Specified by:
      fetchData in interface DataBoundComponent
      Overrides:
      fetchData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required
      requestProperties - additional properties to set on the DSRequest that will be issued
    • filterData

      public void filterData(Criteria criteria)
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Overrides:
      filterData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
    • filterData

      public void filterData(Criteria criteria, DSCallback callback)
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Overrides:
      filterData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required; see DataBoundComponent.fetchData() for details
    • filterData

      public void filterData(Criteria criteria, DSCallback callback, DSRequest requestProperties)
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Overrides:
      filterData in class ListGrid
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required; see DataBoundComponent.fetchData() for details
      requestProperties - for databound components only - optional additional properties to set on the DSRequest that will be issued
    • getSelectedRecord

      public TreeNode getSelectedRecord()
      Return the first selected record in this component.

      This method is appropriate if selectionType is "single", or if you only care about the first selected record in a multiple-record selection. To access all selected records, use ListGrid.getSelection() instead.
      Overrides:
      getSelectedRecord in class ListGrid
      Returns:
      first selected record, or null if nothing selected
      See Also:
    • getRecord

      public TreeNode getRecord(int recordNum)
      Return the pointer to a particular record by record number. Synonym for com.smartgwt.client.widgets.grid.ListGrid#getCellRecord.
      Overrides:
      getRecord in class ListGrid
      Parameters:
      recordNum - row index of record to return.
      Returns:
      Record object for the row.
      See Also:
    • setTreeRootValue

      public void setTreeRootValue(String treeRootValue) throws IllegalStateException
      For databound trees, use this attribute to supply a DataSourceField.rootValue for this component's generated data object.

      This property allows you to have a particular component navigate a tree starting from any given node as the root.

      Note : This is an advanced setting

      Parameters:
      treeRootValue - New treeRootValue value. Default value is null
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • setTreeRootValue

      public void setTreeRootValue(Integer treeRootValue) throws IllegalStateException
      For databound trees, use this attribute to supply a DataSourceField.rootValue for this component's generated data object.

      This property allows you to have a particular component navigate a tree starting from any given node as the root.

      Note : This is an advanced setting

      Parameters:
      treeRootValue - New treeRootValue value. Default value is null
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getTreeRootValue

      public String getTreeRootValue()
      For databound trees, use this attribute to supply a DataSourceField.rootValue for this component's generated data object.

      This property allows you to have a particular component navigate a tree starting from any given node as the root.

      Returns:
      Current treeRootValue value. Default value is null
      See Also:
    • getCellAlign

      public Alignment getCellAlign(ListGridRecord record, int rowNum, int colNum)
      Return the horizontal alignment for cell contents. Default implementation will always left-align the special treeField [or right-align if the page is in RTL mode] - otherwise will return cellAlign if specified, otherwise align.
      Parameters:
      record - this cell's record
      rowNum - row number for the cell
      colNum - column number of the cell
      Returns:
      Horizontal alignment of cell contents: 'right', 'center', or 'left'
    • setCellValueHoverFormatter

      public void setCellValueHoverFormatter(CellValueHoverFormatter formatter)
      Description copied from class: ListGrid
      Provide a custom implementation of ListGrid.cellValueHoverHTML(ListGridRecord, int, int, String).

      The CellValueHoverFormatter should return the HTML to display in the hover canvas that is displayed by default if a registered CellValueHoverHandler does not cancel a CellValueHoverEvent. The formatter can return null or an empty string to cancel the hover.

      Overrides:
      setCellValueHoverFormatter in class ListGrid
      Parameters:
      formatter - the cell value hover formatter
    • willAcceptDrop

      public Boolean willAcceptDrop()
      This method overrides ListGrid.willAcceptDrop() and works as follows:

      First, ListGrid.willAcceptDrop() (the superclass definition) is consulted. If it returns false, then this method returns false immediately.
      This handles the following cases:
      - reordering of records within this TreeGrid when canReorderRecords is true
      - accepting dropped records from another dragTarget when canAcceptDroppedRecords is true and the dragTarget gives us a valid set of records to drop into place.
      - disallowing drop over disabled nodes, or nodes with canAcceptDrop:false
      This method will also return false if the drop occurred over a leaf node whose immediate parent has canAcceptDrop set to false
      If canReparentNodes is true, and the user is dragging a node from one folder to another, this method will return true to allow the change of parent folder.


      Otherwise this method returns true. Note: This is an override point.
      Overrides:
      willAcceptDrop in class ListGrid
      Returns:
      true if this component will accept a drop of the dragData
    • transferNodes

      public void transferNodes(TreeNode[] nodes, TreeNode folder, Integer index, Canvas sourceWidget, TransferNodesCallback callback)
      Transfer a list of TreeNodes from another component (does not have to be a databound component) into this TreeGrid.

      This method implements the automatic drag-copy and drag-move behavior and calling it is equivalent to completing a drag and drop of the nodes (the default folder drop behavior is simply to call transferNodes(), passing in the dropped nodes)

      Note that this method is asynchronous - it may need to perform server turnarounds to prevent duplicates in the target component's data. If you wish to be notified when the transfer process has completed, you can either pass a non-null callback to this method or add a DropCompleteHandler to this component.

      See also transferSelectedData()

      Parameters:
      nodes - Nodes to transfer to this component
      folder - The target folder (eg, of a drop interaction), for context
      index - (Insert point within the target folder data for the transferred nodes
      sourceWidget - The databound or non-databound component from which the nodes are to be transferred.
      callback - optional TransferNodesCallback to be fired when the transfer process has completed (pass null if your code does not need to be called back). The callback will be passed the list of nodes actually transferred to this component
    • addRecordDropHandler

      public HandlerRegistration addRecordDropHandler(RecordDropHandler handler) throws UnsupportedOperationException
      This ListGrid superclass event does not fire on a TreeGrid, use addFolderDropHandler(com.smartgwt.client.widgets.tree.events.FolderDropHandler) instead.
      Specified by:
      addRecordDropHandler in interface HasRecordDropHandlers
      Overrides:
      addRecordDropHandler in class ListGrid
      Parameters:
      handler - the onRecordDrop handler
      Returns:
      HandlerRegistration used to remove this handler
      Throws:
      UnsupportedOperationException
    • setLogicalStructure

      public LogicalStructureObject setLogicalStructure(TreeGridLogicalStructure s)
      Setter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
    • getLogicalStructure

      public LogicalStructureObject getLogicalStructure()
      Getter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
      getLogicalStructure in interface LogicalStructure
      Overrides:
      getLogicalStructure in class ListGrid