Example usage for com.google.gwt.user.client.ui TreeItem remove

List of usage examples for com.google.gwt.user.client.ui TreeItem remove

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui TreeItem remove.

Prototype

public void remove() 

Source Link

Document

Removes this item from its tree.

Usage

From source file:org.iucn.sis.client.ui.TreeTable.java

License:Apache License

/**
 * Constructs an empty tree.//from  w ww . j av a 2  s  .  c o m
 */
public TreeTable() {
    Element tableElem = getElement();
    headElem = DOM.createElement("thead");
    Element tr = DOM.createTR();
    DOM.appendChild(headElem, tr);
    DOM.insertChild(tableElem, headElem, 0);

    DOM.setStyleAttribute(getElement(), "position", "relative");
    // focusable = impl.createFocusable();
    // DOM.setStyleAttribute(focusable, "fontSize", "0");
    // DOM.setStyleAttribute(focusable, "position", "absolute");
    // DOM.setIntStyleAttribute(focusable, "zIndex", -1);
    // DOM.appendChild(getElement(), focusable);

    sinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.KEYEVENTS);
    // DOM.sinkEvents(focusable, Event.FOCUSEVENTS | Event.KEYEVENTS |
    // DOM.getEventsSunk(focusable));

    // The 'root' item is invisible and serves only as a container
    // for all top-level items.
    root = new TreeItem() {
        @Override
        public void addItem(TreeItem item) {
            // If this element already belongs to a tree or tree item,
            // remove it.
            if ((item.getParentItem() != null) || (item.getTreeTable() != null)) {
                item.remove();
            }
            item.setTreeTable(this.getTreeTable());

            // Explicitly set top-level items' parents to null.
            item.setParentItem(null);
            getChildren().add(item);

            // Use no margin on top-most items.
            DOM.setIntStyleAttribute(item.getElement(), "marginLeft", 0);
        }

        @Override
        public void removeItem(TreeItem item) {
            if (!getChildren().contains(item)) {
                return;
            }
            // Update Item state.
            item.setTreeTable(null);
            item.setParentItem(null);
            getChildren().remove(item);
        }
    };
    root.setTreeTable(this);
    setStyleName("gwt-TreeTable");
}

From source file:org.openxdata.designer.client.view.FormsTreeView.java

/**
 * Removes a given tree item from the tree widget.
 * /*www . ja v  a  2s .  c om*/
 * @param item the tree item to delete.
 */
private void deleteItem(TreeItem item) {
    TreeItem parent = item.getParentItem();
    int index;
    if (parent != null) {
        index = parent.getChildIndex(item);

        //If last item is the one selected, the select the previous, else the next.
        if (index == parent.getChildCount() - 1)
            index -= 1;

        removeFormDefItem(item, parent);

        //Remove the selected item.
        item.remove();

        //If no more kids, then select the parent.
        if (parent.getChildCount() == 0)
            tree.setSelectedItem(parent);
        else
            tree.setSelectedItem(parent.getChild(index));
    } else { //Must be the form root
        index = getRootItemIndex(item);
        item.remove();

        int count = tree.getItemCount();

        //If we have any items left, select the one which was after
        //the one we have just removed.
        if (count > 0) {

            //If we have deleted the last item, select the item which was before it.
            if (index == count)
                index--;

            tree.setSelectedItem(tree.getItem(index));
        }
    }

    if (tree.getSelectedItem() == null) {
        Context.setFormDef(null);
        formDef = null;
        fireFormItemSelected(null);

        if (tree.getItemCount() == 0) {
            nextFormId = 0;
            nextOptionId = 0;
            nextPageId = 0;
            nextQuestionId = 0;
        }
    }
}

From source file:org.openxdata.designer.client.view.FormsTreeView.java

/**
 * @see org.openxdata.designer.client.controller.IFormActionListener#moveItemUp()
 *///w ww  .ja  v  a 2s.  c o  m
public void moveItemUp() {
    if (inReadOnlyMode())
        return;

    TreeItem item = tree.getSelectedItem();

    //Check if there is any selection.
    if (item == null)
        return;

    TreeItem parent = item.getParentItem();

    //We don't move root node (which has no parent, that is the form itself, since we design one form at a time)
    if (parent == null)
        return;

    //One item can't move against itself.
    int count = parent.getChildCount();
    if (count == 1)
        return;

    int index = parent.getChildIndex(item);
    if (index == 0)
        return; //Can't move any further upwards.

    //move the item in the form object model.
    moveFormItemUp(item, parent);

    TreeItem currentItem; // = parent.getChild(index - 1);
    List<TreeItem> list = new ArrayList<TreeItem>();

    item.remove();

    while (parent.getChildCount() >= index) {
        currentItem = parent.getChild(index - 1);
        list.add(currentItem);
        currentItem.remove();
    }

    parent.addItem(item);
    for (int i = 0; i < list.size(); i++)
        parent.addItem((TreeItem) list.get(i));

    tree.setSelectedItem(item);
}

From source file:org.openxdata.designer.client.view.FormsTreeView.java

/**
 * @see org.openxdata.designer.client.controller.IFormActionListener#moveItemDown()
 *//*from www  .  ja  v a  2 s  . com*/
public void moveItemDown() {
    if (inReadOnlyMode())
        return;

    TreeItem item = tree.getSelectedItem();

    //Check if there is any selection.
    if (item == null)
        return;

    TreeItem parent = item.getParentItem();

    //We don't move root node (which has no parent, that is the form itself, since we design one form at a time)
    if (parent == null)
        return;

    //One item can't move against itself.
    int count = parent.getChildCount();
    if (count == 1)
        return;

    int index = parent.getChildIndex(item);
    if (index == count - 1)
        return; //Can't move any further downwards.

    //move the item in the form object model.
    moveFormItemDown(item, parent);

    TreeItem currentItem; // = parent.getChild(index - 1);
    List<TreeItem> list = new ArrayList<TreeItem>();

    item.remove();

    while (parent.getChildCount() > 0 && parent.getChildCount() > index) {
        currentItem = parent.getChild(index);
        list.add(currentItem);
        currentItem.remove();
    }

    for (int i = 0; i < list.size(); i++) {
        if (i == 1)
            parent.addItem(item); //Add after the first item.
        parent.addItem((TreeItem) list.get(i));
    }

    if (list.size() == 1)
        parent.addItem(item);

    tree.setSelectedItem(item);
}

From source file:org.rstudio.studio.client.workbench.views.source.DocumentOutlineWidget.java

License:Open Source License

private void rebuildScopeTree(JsArray<Scope> scopeTree, Scope currentScope) {
    scopeTree_ = scopeTree;//w w w.j a v a2 s  . c  o m
    currentScope_ = currentScope;
    currentVisibleScope_ = getCurrentVisibleScope(currentScope_);

    if (scopeTree_.length() == 0) {
        setActiveWidget(emptyPlaceholder_);
        return;
    }

    setActiveWidget(tree_);

    int h1Count = 0;
    for (int i = 0; i < scopeTree_.length(); i++) {
        Scope node = scopeTree_.get(i);
        if (node.isMarkdownHeader()) {
            if (node.getDepth() == 1)
                h1Count++;
        }
    }

    int initialDepth = h1Count == 1 ? -1 : 0;

    Counter counter = new Counter(-1);
    for (int i = 0; i < scopeTree_.length(); i++)
        buildScopeTreeImpl(scopeTree_.get(i), initialDepth, counter);

    // Clean up leftovers in the tree. 
    int oldTreeSize = tree_.getItemCount();
    int newTreeSize = counter.increment();

    for (int i = oldTreeSize - 1; i >= newTreeSize; i--) {
        TreeItem item = tree_.getItem(i);
        if (item != null)
            item.remove();
    }
}