Class TreeItem

java.lang.Object
com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.TreeItem
All Implemented Interfaces:
HasSafeHtml, HasHTML, HasText, HasTreeItems, HasVisibility, IsTreeItem

public class TreeItem extends UIObject implements IsTreeItem, HasTreeItems, HasHTML, HasSafeHtml
An item that can be contained within a Tree. Each tree item is assigned a unique DOM id in order to support ARIA. See Accessibility for more information.

Example

public class TreeExample implements EntryPoint {

  @Override
  public void onModuleLoad() {
    // Create a tree with a few items in it.
    TreeItem root = new TreeItem();
    root.setText("root");
    root.addTextItem("item0");
    root.addTextItem("item1");
    root.addTextItem("item2");

    // Add a CheckBox to the tree
    TreeItem item = new TreeItem(new CheckBox("item3"));
    root.addItem(item);

    Tree t = new Tree();
    t.addItem(root);

    // Add it to the root panel.
    RootPanel.get().add(t);
  }
}

  • Field Details

  • Constructor Details

    • TreeItem

      public TreeItem()
      Creates an empty tree item.
    • TreeItem

      public TreeItem(SafeHtml html)
      Constructs a tree item with the given HTML.
      Parameters:
      html - the item's HTML
    • TreeItem

      public TreeItem(Widget widget)
      Constructs a tree item with the given Widget.
      Parameters:
      widget - the item's widget
    • TreeItem

      TreeItem(boolean isRoot)
      Creates an empty tree item.
      Parameters:
      isRoot - true if this item is the root of a tree
  • Method Details

    • addItem

      public TreeItem addItem(SafeHtml itemHtml)
      Adds a child tree item containing the specified html.
      Specified by:
      addItem in interface HasTreeItems
      Parameters:
      itemHtml - the item's HTML
      Returns:
      the item that was added
    • addItem

      public void addItem(TreeItem item)
      Adds another item as a child to this one.
      Specified by:
      addItem in interface HasTreeItems
      Parameters:
      item - the item to be added
    • addItem

      public void addItem(IsTreeItem isItem)
      Adds another item as a child to this one.
      Specified by:
      addItem in interface HasTreeItems
      Parameters:
      isItem - the wrapper of item to be added
    • addItem

      public TreeItem addItem(Widget widget)
      Adds a child tree item containing the specified widget.
      Specified by:
      addItem in interface HasTreeItems
      Parameters:
      widget - the widget to be added
      Returns:
      the item that was added
    • addTextItem

      public TreeItem addTextItem(String itemText)
      Adds a child tree item containing the specified text.
      Specified by:
      addTextItem in interface HasTreeItems
      Parameters:
      itemText - the text of the item to be added
      Returns:
      the item that was added
    • asTreeItem

      public TreeItem asTreeItem()
      Description copied from interface: IsTreeItem
      Returns the TreeItem aspect of the receiver.
      Specified by:
      asTreeItem in interface IsTreeItem
    • getChild

      public TreeItem getChild(int index)
      Gets the child at the specified index.
      Parameters:
      index - the index to be retrieved
      Returns:
      the item at that index
    • getChildCount

      public int getChildCount()
      Gets the number of children contained in this item.
      Returns:
      this item's child count.
    • getChildIndex

      public int getChildIndex(TreeItem child)
      Gets the index of the specified child item.
      Parameters:
      child - the child item to be found
      Returns:
      the child's index, or -1 if none is found
    • getHTML

      public String getHTML()
      Description copied from interface: HasHTML
      Gets this object's contents as HTML.
      Specified by:
      getHTML in interface HasHTML
      Returns:
      the object's HTML
    • getParentItem

      public TreeItem getParentItem()
      Gets this item's parent.
      Returns:
      the parent item
    • getState

      public boolean getState()
      Gets whether this item's children are displayed.
      Returns:
      true if the item is open
    • getText

      public String getText()
      Description copied from interface: HasText
      Gets this object's text.
      Specified by:
      getText in interface HasText
      Returns:
      the object's text
    • getTree

      public final Tree getTree()
      Gets the tree that contains this item.
      Returns:
      the containing tree
    • getUserObject

      public Object getUserObject()
      Gets the user-defined object associated with this item.
      Returns:
      the item's user-defined object
    • getWidget

      public Widget getWidget()
      Gets the Widget associated with this tree item.
      Returns:
      the widget
    • getTitle

      public String getTitle()
      Description copied from class: UIObject
      Gets the title associated with this object. The title is the 'tool-tip' displayed to users when they hover over the object.
      Overrides:
      getTitle in class UIObject
      Returns:
      the object's title
    • setTitle

      public void setTitle(String title)
      Description copied from class: UIObject
      Sets the title associated with this object. The title is the 'tool-tip' displayed to users when they hover over the object.
      Overrides:
      setTitle in class UIObject
      Parameters:
      title - the object's new title
    • insertItem

      public TreeItem insertItem(int beforeIndex, SafeHtml itemHtml) throws IndexOutOfBoundsException
      Inserts a child tree item at the specified index containing the specified html.
      Parameters:
      beforeIndex - the index where the item will be inserted
      itemHtml - the item's HTML
      Returns:
      the item that was added
      Throws:
      IndexOutOfBoundsException - if the index is out of range
    • insertItem

      public void insertItem(int beforeIndex, TreeItem item) throws IndexOutOfBoundsException
      Inserts an item as a child to this one.
      Parameters:
      beforeIndex - the index where the item will be inserted
      item - the item to be added
      Throws:
      IndexOutOfBoundsException - if the index is out of range
    • insertItem

      public TreeItem insertItem(int beforeIndex, Widget widget) throws IndexOutOfBoundsException
      Inserts a child tree item at the specified index containing the specified widget.
      Parameters:
      beforeIndex - the index where the item will be inserted
      widget - the widget to be added
      Returns:
      the item that was added
      Throws:
      IndexOutOfBoundsException - if the index is out of range
    • insertTextItem

      public TreeItem insertTextItem(int beforeIndex, String itemText)
      Inserts a child tree item at the specified index containing the specified text.
      Parameters:
      beforeIndex - the index where the item will be inserted
      itemText - the item's text
      Returns:
      the item that was added
      Throws:
      IndexOutOfBoundsException - if the index is out of range
    • isSelected

      public boolean isSelected()
      Determines whether this item is currently selected.
      Returns:
      true if it is selected
    • remove

      public void remove()
      Removes this item from its tree.
    • removeItem

      public void removeItem(TreeItem item)
      Removes one of this item's children.
      Specified by:
      removeItem in interface HasTreeItems
      Parameters:
      item - the item to be removed
    • removeItem

      public void removeItem(IsTreeItem isItem)
      Removes one of this item's children.
      Specified by:
      removeItem in interface HasTreeItems
      Parameters:
      isItem - the wrapper of item to be removed
    • removeItems

      public void removeItems()
      Removes all of this item's children.
      Specified by:
      removeItems in interface HasTreeItems
    • setHTML

      public void setHTML(String html)
      Description copied from interface: HasHTML
      Sets this object's contents via HTML. Use care when setting an object's HTML; it is an easy way to expose script-based security problems. Consider using HasText.setText(String) whenever possible.
      Specified by:
      setHTML in interface HasHTML
      Parameters:
      html - the object's new HTML
    • setHTML

      public void setHTML(SafeHtml html)
      Description copied from interface: HasSafeHtml
      Sets this object's contents via known-safe HTML.

      The object will behave exactly the same as when a widget's HasHTML.setHTML(String) method is invoked; however the SafeHtml passed to this method observes the contract that it can be used in an HTML context without causing unsafe script execution. Thus, unlike HasHTML.setHTML(String), using this method cannot result in Cross-Site Scripting security vulnerabilities.

      Specified by:
      setHTML in interface HasSafeHtml
      Parameters:
      html - the object's new HTML, represented as a SafeHtml object
    • setSelected

      public void setSelected(boolean selected)
      Selects or deselects this item.
      Parameters:
      selected - true to select the item, false to deselect it
    • setState

      public void setState(boolean open)
      Sets whether this item's children are displayed.
      Parameters:
      open - whether the item is open
    • setState

      public void setState(boolean open, boolean fireEvents)
      Sets whether this item's children are displayed.
      Parameters:
      open - whether the item is open
      fireEvents - true to allow open/close events to be
    • setText

      public void setText(String text)
      Description copied from interface: HasText
      Sets this object's text.
      Specified by:
      setText in interface HasText
      Parameters:
      text - the object's new text
    • setUserObject

      public void setUserObject(Object userObj)
      Sets the user-defined object associated with this item.
      Parameters:
      userObj - the item's user-defined object
    • setWidget

      public void setWidget(Widget newWidget)
      Sets the current widget. Any existing child widget will be removed.
      Parameters:
      newWidget - Widget to set
    • getFocusable

      protected Focusable getFocusable()
      Returns a suggested Focusable instance to use when this tree item is selected. The tree maintains focus if this method returns null. By default, if the tree item contains a focusable widget, that widget is returned. Note, the Tree will ignore this value if the user clicked on an input element such as a button or text area when selecting this item.
      Returns:
      the focusable item
    • getFocusableWidget

      @Deprecated protected HasFocus getFocusableWidget()
      Deprecated.
      use getFocusable() instead
      Returns the widget, if any, that should be focused on if this TreeItem is selected.
      Returns:
      widget to be focused.
    • onEnsureDebugId

      protected void onEnsureDebugId(String baseID)
      Affected Elements:
      • -content = The text or Widget next to the image.
      • -child# = The child at the specified index.
      Overrides:
      onEnsureDebugId in class UIObject
      Parameters:
      baseID - the base ID used by the main element
      See Also:
    • addTreeItems

      void addTreeItems(List<TreeItem> accum)
    • getChildren

      ArrayList<TreeItem> getChildren()
    • getContentElem

      Element getContentElem()
    • getImageElement

      Element getImageElement()
    • getImageHolderElement

      Element getImageHolderElement()
    • initChildren

      void initChildren()
    • isFullNode

      boolean isFullNode()
    • maybeRemoveItemFromParent

      void maybeRemoveItemFromParent(TreeItem item)
      Remove a tree item from its parent if it has one.
      Parameters:
      item - the tree item to remove from its parent
    • setParentItem

      void setParentItem(TreeItem parent)
    • setTree

      void setTree(Tree newTree)
    • updateState

      void updateState(boolean animate, boolean updateTreeSelection)
    • updateStateRecursive

      void updateStateRecursive()