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

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

Introduction

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

Prototype

public TreeItem getParentItem() 

Source Link

Document

Gets this item's parent.

Usage

From source file:cc.alcina.framework.gwt.client.ide.widget.FilterableTree.java

License:Apache License

public void collapseToFirstLevel() {
    TreeItem item = getSelectedItem();/* w  ww . jav  a 2s. com*/
    new TreeNodeWalker().walk(this, new Callback<TreeItem>() {
        public void apply(TreeItem target) {
            boolean open = target.getParentItem() == null;
            if (shouldExpandCallback != null && !shouldExpandCallback.allow(target)) {
                open = false;
            }
            target.setState(open);
        }
    });
    if (item != null) {
        setSelectedItem(item, false);
        ensureSelectedItemVisible();
    }
}

From source file:cc.alcina.framework.gwt.client.ide.widget.FilterableTree.java

License:Apache License

public TreeItem getNextNode(TreeItem item, boolean ignoreChildAxis, int direction) {
    if (item == null) {
        return null;
    }/*  w w  w  .java2 s  .co m*/
    TreeOrItem parent = TreeOrItemTree.create(item).getParent();
    if (direction == 1) {
        if (!ignoreChildAxis && item.getState() && item.getChildCount() > 0) {
            return item.getChild(0);
        }
        int childIndex = parent.getChildIndex(item);
        if (childIndex < parent.getChildCount() - 1) {
            return parent.getChild(childIndex + 1);
        }
        if (item.getParentItem() == null) {
            return null;
        }
        return getNextNode(item.getParentItem(), true, direction);
    } else {
        int childIndex = parent.getChildIndex(item);
        if (childIndex > 0) {
            return findDeepestOpenChild(parent.getChild(childIndex - 1));
        }
        return item.getParentItem();
    }
}

From source file:cc.alcina.framework.gwt.client.ide.widget.FilterableTree.java

License:Apache License

private TreeItem findVisibleChild(TreeItem item, int direction) {
    TreeItem parent = item.getParentItem();
    if (parent == null) {
        return null;
    }/*from   w  w  w  .j ava  2 s. com*/
    while (true) {
        item = getNextNode(item, false, direction);
        if (item == null) {
            return null;
        }
        if (item.isVisible()) {
            return item;
        }
    }
}

From source file:com.ephesoft.dcma.gwt.admin.bm.client.view.batch.ImportBatchClassView.java

License:Open Source License

private void createUI(final boolean isMandatory, final CheckBox checkBox, final Node newNode,
        final TreeItem childTree) {
    if (newNode.getParent().getLabel().getKey().equals("BatchClassModules")
            || newNode.getLabel().getKey().equals("BatchClassModules")) {
        checkBox.setEnabled(Boolean.FALSE);
        checkBox.setValue(Boolean.TRUE);
        newNode.getLabel().setMandatory(Boolean.TRUE);
    } else {/*from ww  w  .ja v a  2  s  . co m*/
        if (isMandatory) {
            checkBox.setEnabled(Boolean.TRUE);
            checkBox.setValue(Boolean.FALSE);
        } else {
            if (importExisting.getValue().equalsIgnoreCase(TRUE)) {
                checkBox.setEnabled(Boolean.TRUE);
                checkBox.setValue(Boolean.FALSE);
                newNode.getLabel().setMandatory(Boolean.FALSE);
            } else if (importExisting.getValue().equalsIgnoreCase(FALSE)) {
                checkBox.setEnabled(Boolean.FALSE);
                checkBox.setValue(Boolean.TRUE);
                newNode.getLabel().setMandatory(Boolean.TRUE);
            }
        }

        if (checkBox != null && checkBox.isEnabled()) {
            checkBox.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    boolean checked = ((CheckBox) event.getSource()).getValue();
                    newNode.getLabel().setMandatory(checked);
                    setParentItemsUI(childTree.getParentItem(), checked, newNode);
                    setChildItemsUI(childTree, checked, newNode);
                }

            });
        }
    }

}

From source file:com.ephesoft.dcma.gwt.admin.bm.client.view.batch.ImportBatchClassView.java

License:Open Source License

private void setParentItemsUI(TreeItem parentItem, boolean checked, Node childNode) {
    Node parentNode = childNode.getParent();
    if (!checked && parentNode.getParent() != null) {
        CheckBox checkBox = (CheckBox) parentItem.getWidget();
        if (checkBox.isEnabled()) {
            checkBox.setValue(checked);/*from  w  w  w  .  j  a v a  2s. c o  m*/
            parentNode.getLabel().setMandatory(checked);
        }
        setParentItemsUI(parentItem.getParentItem(), checked, parentNode);
    }
}

From source file:com.ephesoft.dcma.gwt.foldermanager.client.presenter.FolderSystemTreePresenter.java

License:Open Source License

@Override
public void injectEvents(HandlerManager eventBus) {
    eventBus.addHandler(FolderUpEvent.type, new FolderUpEventHandler() {

        @Override/*from ww  w.ja va 2 s. c  o  m*/
        public void onFolderUp(FolderUpEvent tableRefreshEvent) {
            TreeItem parentItem = currentTreeItem.getParentItem();
            if (parentItem != null) {
                currentTreeItem = parentItem;
                view.getTree().setSelectedItem(currentTreeItem);
            } else {
                ConfirmationDialogUtil.showConfirmationDialogError(
                        LocaleDictionary.get().getMessageValue(FolderManagementMessages.NO_PARENT_FOLDER),
                        true);
            }
        }
    });

    eventBus.addHandler(FolderTreeRefreshEvent.type, new FolderTreeRefreshEventHandler() {

        @Override
        public void refreshTree(FolderTreeRefreshEvent treeRefreshEvent) {
            if (view.getTree().getItemCount() == 0) {
                createTree();
            }
            boolean state = currentTreeItem.getState();
            currentTreeItem.setState(state, false);
            String fileName = treeRefreshEvent.getFileName();
            if (fileName != null) {
                for (int i = 0; i < currentTreeItem.getChildCount(); i++) {
                    TreeItem child = currentTreeItem.getChild(i);
                    if (child != null && child.getText().equals(fileName)) {
                        currentTreeItem = child;
                        break;
                    }
                }
            }
            setFooterPath(treeRefreshEvent.getFolderPath());
            TreeItem parentItem = currentTreeItem.getParentItem();
            while (parentItem != null) {
                parentItem.setState(true, false);
                parentItem = parentItem.getParentItem();
            }
            view.getTree().setSelectedItem(currentTreeItem);
        }

    });

    eventBus.addHandler(BatchClassChangeEvent.type, new BatchClassChangeEventHandler() {

        @Override
        public void onBatchClassChange(BatchClassChangeEvent batchClassChangeEvent) {
            selectedBatchClassID = batchClassChangeEvent.getBatchClassID();
            parentFolderName = batchClassChangeEvent.getBatchClassName();
            createTree();
        }

    });
}

From source file:com.ephesoft.dcma.gwt.foldermanager.client.presenter.FolderSystemTreePresenter.java

License:Open Source License

public void fetchTreeItems(final TreeItem father, String path) {

    controller.getRpcService().getContents(path, new EphesoftAsyncCallback<List<FileWrapper>>() {

        @Override//w  ww  . j a  v  a2s  .co  m
        public void customFailure(Throwable throwable) {
            String errorMessage = throwable.getLocalizedMessage();
            if (!isErrorDialogShown) {
                ConfirmationDialogUtil.showConfirmationDialogError(LocaleDictionary.get()
                        .getMessageValue(FolderManagementMessages.UNABLE_TO_LOAD_FOLDER_ITEMS), true);
                isErrorDialogShown = true;
            }
            if (null != father && errorMessage.contains(FolderManagementConstants.ERROR_TYPE_1)) {
                TreeItem parentItem = father.getParentItem();
                if (null != parentItem) {
                    view.getTree().setSelectedItem(parentItem, true);
                }
                view.getTree().removeItem(father);
            }
        }

        @Override
        public void onSuccess(List<FileWrapper> results) {
            isErrorDialogShown = false;
            view.expandTreeItem(father, results);
        }
    });

}

From source file:com.ephesoft.dcma.gwt.foldermanager.client.presenter.FolderSystemTreePresenter.java

License:Open Source License

public String findPath(TreeItem item) {
    TreeItem parent = item.getParentItem();
    String path = null;//from w  w w  .ja  va 2  s. c om
    if (parent == null) {
        path = parentFolderPath;
        if (selectedBatchClassID != null) {
            StringBuilder stringBuilder = new StringBuilder(path);
            stringBuilder.append(FolderManagementConstants.URL_SEPARATOR);
            stringBuilder.append(selectedBatchClassID);
            path = stringBuilder.toString();
        }
    } else {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(findPath(parent));
        stringBuilder.append(FolderManagementConstants.URL_SEPARATOR);
        stringBuilder.append(item.getText());
        path = stringBuilder.toString();
    }
    return path;
}

From source file:com.gmail.cjbooms.thesis.pythonappengine.client.filebrowser.FileSystemTreeWidget.java

License:Open Source License

private String findPath(TreeItem item) {
    TreeItem parent = item.getParentItem();
    //TODO - Dynamically set folder root at user login
    if (parent == null) {
        return rootFolder;
    } else {/* www. j a v a 2s  .co  m*/
        return findPath(parent) + "/" + item.getText();
    }
}

From source file:com.ikon.frontend.client.widget.Dragable.java

License:Open Source License

/**
 * Dragable/*from   w w w . j a v  a 2  s . co m*/
 */
public Dragable() {
    dragged = false;
    floater = new HTML("");
    floater.setVisible(false);
    floater.sinkEvents(Event.MOUSEEVENTS);
    floater.setVisible(false);
    floater.setWordWrap(false);
    floater.setStyleName("okm-Draggable");

    floater.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(MouseUpEvent event) {
            DOM.releaseCapture(floater.getElement());
            floater.setHTML("");
            floater.setVisible(false);

            // Only move if dragged has been enabled by timer
            if (dragged) {

                // Action depends on origin dragable
                switch (originPanel) {
                case TREE_ROOT:

                    TreeItem clickedTreeItem = Main.get().activeFolderTree
                            .elementClicked(DOM.eventGetTarget((Event) event.getNativeEvent()));
                    if (clickedTreeItem != null
                            && (((GWTFolder) clickedTreeItem.getUserObject()).getPermissions()
                                    & GWTPermission.WRITE) == GWTPermission.WRITE) {
                        final TreeItem draggedTreeItem = Main.get().activeFolderTree.getActualItem();
                        boolean isChild = DOM.isOrHasChild(draggedTreeItem.getElement(),
                                clickedTreeItem.getElement());

                        if (draggedTreeItem != clickedTreeItem && !isChild) {
                            // Actual folder
                            GWTFolder gwtFolder = ((GWTFolder) draggedTreeItem.getUserObject());

                            // Destination path
                            final String dstPath = ((GWTFolder) clickedTreeItem.getUserObject()).getPath();

                            // The parent of actual item selected
                            TreeItem parentItem = draggedTreeItem.getParentItem();
                            ObjectToMove objToMove = new ObjectToMove(gwtFolder, dstPath, null, draggedTreeItem,
                                    parentItem, clickedTreeItem);
                            Main.get().confirmPopup
                                    .setConfirm(ConfirmPopup.CONFIRM_DRAG_DROP_MOVE_FOLDER_FROM_TREE);
                            Main.get().confirmPopup.setValue(objToMove);
                            Main.get().confirmPopup.show();
                        }
                    }
                    break;

                case FILE_BROWSER:
                    clickedTreeItem = Main.get().activeFolderTree
                            .elementClicked(DOM.eventGetTarget((Event) event.getNativeEvent()));
                    TreeItem actualTreeItem = Main.get().activeFolderTree.getActualItem();

                    if (clickedTreeItem != null
                            && Main.get().mainPanel.desktop.browser.fileBrowser.isSelectedRow()
                            && (((GWTFolder) clickedTreeItem.getUserObject()).getPermissions()
                                    & GWTPermission.WRITE) == GWTPermission.WRITE) {

                        // Destination path
                        final String dstPath = ((GWTFolder) clickedTreeItem.getUserObject()).getPath();

                        // if selected path = actual path must not move
                        if (!dstPath.equals(((GWTFolder) actualTreeItem.getUserObject()).getPath())) {

                            // Unselects folder destination on tree
                            if (lastSelectElement != null) {
                                DOM.setElementProperty(lastSelectElement, "className", "gwt-TreeItem");
                            }

                            if (Main.get().mainPanel.desktop.browser.fileBrowser.isFolderSelected()) {

                                final GWTFolder gwtFolder = Main.get().mainPanel.desktop.browser.fileBrowser
                                        .getFolder(); // The dragged folder
                                String fldPath = gwtFolder.getPath(); // Folder actual path

                                // Destination path must not containt actual folder path, because folder can't
                                // be moved to his subfolders
                                if (!dstPath.startsWith(fldPath)) {
                                    // Gets the moved tree Item
                                    final TreeItem movedTreeItem = Main.get().activeFolderTree
                                            .getChildFolder(fldPath);
                                    ObjectToMove objToMove = new ObjectToMove(gwtFolder, dstPath, fldPath,
                                            movedTreeItem, actualTreeItem, clickedTreeItem);
                                    Main.get().confirmPopup.setConfirm(
                                            ConfirmPopup.CONFIRM_DRAG_DROP_MOVE_FOLDER_FROM_BROWSER);
                                    Main.get().confirmPopup.setValue(objToMove);
                                    Main.get().confirmPopup.show();
                                }

                            } else if (Main.get().mainPanel.desktop.browser.fileBrowser.isDocumentSelected()) {
                                GWTDocument gwtDocument = Main.get().mainPanel.desktop.browser.fileBrowser
                                        .getDocument(); // The dragged document
                                ObjectToMove objToMove = new ObjectToMove(gwtDocument, dstPath, null, null,
                                        null, null);
                                Main.get().confirmPopup
                                        .setConfirm(ConfirmPopup.CONFIRM_DRAG_DROP_MOVE_DOCUMENT);
                                Main.get().confirmPopup.setValue(objToMove);
                                Main.get().confirmPopup.show();

                            } else if (Main.get().mainPanel.desktop.browser.fileBrowser.isMailSelected()) {
                                GWTMail gwtMail = Main.get().mainPanel.desktop.browser.fileBrowser.getMail(); // The
                                // dragged
                                // document
                                ObjectToMove objToMove = new ObjectToMove(gwtMail, dstPath, null, null, null,
                                        null);
                                Main.get().confirmPopup.setConfirm(ConfirmPopup.CONFIRM_DRAG_DROP_MOVE_MAIL);
                                Main.get().confirmPopup.setValue(objToMove);
                                Main.get().confirmPopup.show();
                            }
                        }
                    }
                    break;
                }
            }

            dragged = false; // Sets always dragged to false

            // Always we destroy possible timers to automatic up / down scroll
            Main.get().mainPanel.desktop.navigator.scrollTaxonomyPanel.destroyTimer();

        }
    });

    floater.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(MouseMoveEvent event) {
            if (dragged && event != null) {

                floater.setVisible(true); // Sets the floater visible

                int posX = event.getClientX();
                int posY = event.getClientY();
                RootPanel.get().setWidgetPosition(Main.get().dragable, posX + 1, posY);

                // Sets selected tree style to indicate posible selected destination
                selectedTreeItem = Main.get().activeFolderTree
                        .elementClicked(DOM.eventGetTarget((Event) event.getNativeEvent()));
                TreeItem actualItem = Main.get().activeFolderTree.getActualItem();

                // Removes always style of last selected treeItem
                if (lastSelectedTreeItem != null && !actualItem.equals(lastSelectedTreeItem)
                        && lastSelectElement != null) {
                    DOM.setElementProperty(lastSelectElement, "className", "gwt-TreeItem");
                    lastSelectedTreeItem = null;
                }

                // Sets the style of actual tree item
                if (selectedTreeItem != null) {
                    selectedElement = getSelectedElement(selectedTreeItem.getElement());
                    if (selectedElement == null) {
                        Window.alert("Problem: '" + selectedTreeItem.getElement().getInnerHTML() + "'");
                    }
                    DOM.setElementProperty(selectedElement, "className", "gwt-TreeItem gwt-TreeItem-selected");

                    if (lastSelectedTreeItem != null && !selectedTreeItem.equals(lastSelectedTreeItem)
                            && !actualItem.equals(lastSelectedTreeItem) && lastSelectElement != null) {
                        DOM.setElementProperty(lastSelectElement, "className", "gwt-TreeItem");
                    }

                    lastSelectedTreeItem = selectedTreeItem;
                    lastSelectElement = selectedElement;
                }

                // Action depends dragables destinations widgets
                Main.get().mainPanel.desktop.navigator.scrollTaxonomyPanel.ScrollOnDragDrop(posX + 1, posY);
            }
        }
    });

    initWidget(floater);
}