public void onSuccess(GWTFolder result) {
          // Only executes on initalization and the actualItem is root
          // element on initialization
          // We put the id on root
          actualItem.setUserObject(result);
          evaluesFolderIcon(actualItem);
          actualItem.setState(true);
          actualItem.setSelected(true);

          // Enables or disables move button ( evalues security to move to folder with permissions )
          evaluateSecurityToAction(actualItem);

          getChilds(result.getPath());
        }
  /** Resets all tree values */
  public void reset() {
    actualItem = rootItem;
    actualItem.setSelected(true);
    while (actualItem.getChildCount() > 0) {
      actualItem.getChild(0).remove();
    }

    int mainPanelView = Main.get().mainPanel.desktop.navigator.getStackIndex();

    switch (mainPanelView) {
      case UIDesktopConstants.NAVIGATOR_TAXONOMY:
      case UIDesktopConstants.NAVIGATOR_TRASH:
        Main.get().activeFolderTree.folderSelectPopup.enableTaxonomy();
        getRoot();
        break;

      case UIDesktopConstants.NAVIGATOR_CATEGORIES:
        Main.get().activeFolderTree.folderSelectPopup.enableCategories();
        getCategories();
        break;

      case UIDesktopConstants.NAVIGATOR_TEMPLATES:
        switch (Main.get().activeFolderTree.folderSelectPopup.getAction()) {
          case FolderSelectPopup.ACTION_CREATE_FROM_TEMPLATE:
            Main.get().activeFolderTree.folderSelectPopup.enableTaxonomy();
            getRoot();
            break;

          default:
            Main.get().activeFolderTree.folderSelectPopup.enableTemplates();
            getTemplatesFolder();
            break;
        }

        break;

      case UIDesktopConstants.NAVIGATOR_PERSONAL:
        Main.get().activeFolderTree.folderSelectPopup.enableMyDocuments();
        getPersonal();
        break;

      case UIDesktopConstants.NAVIGATOR_MAIL:
        Main.get().activeFolderTree.folderSelectPopup.enableMails();
        getMail();
        break;
    }
  }
 @Override
 public void onSelection(SelectionEvent<TreeItem> event) {
   TreeItem item = event.getSelectedItem();
   currentlySelected = item;
   TreeItem child = item.getChild(0);
   if (child != null && child.getText().equals(DatasetWidget.LOADING)) {
     CategorySerializable cat = (CategorySerializable) item.getUserObject();
     Util.getRPCService().getCategories(cat.getID(), null, categoryCallback);
   }
   // Open the item.  Work around double firing bug.
   // http://code.google.com/p/google-web-toolkit/issues/detail?id=3660&q=Tree%20selection&colspec=ID%20Type%20Status%20Owner%20Milestone%20Summary%20Stars
   TreeItem selItem = event.getSelectedItem();
   TreeItem parent = selItem.getParentItem();
   selItem.getTree().setSelectedItem(parent, false); // null is ok
   if (parent != null) parent.setSelected(false); // not compulsory
   selItem.setState(!selItem.getState(), false);
 }
  /** Folder Tree */
  public FolderSelectTree() {
    tree = new Tree();
    rootItem.setStyleName("okm-TreeItem");
    rootItem.setUserObject(new GWTFolder());
    rootItem.setSelected(true);
    rootItem.setState(true);
    tree.setStyleName("okm-Tree");
    tree.addItem(rootItem);
    tree.addSelectionHandler(
        new SelectionHandler<TreeItem>() {

          @Override
          public void onSelection(SelectionEvent<TreeItem> event) {
            boolean refresh = true;
            TreeItem item = event.getSelectedItem();

            // Enables or disables move button ( evalues security to move to folder with permissions
            // )
            evaluateSecurityToAction(item);

            // Case that not refreshing tree and file browser ( right click )
            if (actualItem.equals(item)) {
              refresh = false;
            } else {
              // Disables actual item because on changing active node by
              // application this it's not changed automatically
              if (!actualItem.equals(item)) {
                actualItem.setSelected(false);
                actualItem = item;
              } else {
                refresh = false;
              }
            }

            if (refresh) {
              refresh(true);
            }
          }
        });
    actualItem = tree.getItem(0);
    initWidget(tree);
  }