Example usage for org.eclipse.jface.viewers TreeViewer isExpandable

List of usage examples for org.eclipse.jface.viewers TreeViewer isExpandable

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer isExpandable.

Prototype

@Override
    public boolean isExpandable(Object element) 

Source Link

Usage

From source file:org.eclipse.ui.internal.dialogs.NewWizardNewPage.java

License:Open Source License

/**
 * Create a new FilteredTree in the parent.
 * //from  w  w w .j a  v  a 2s . co  m
 * @param parent the parent <code>Composite</code>.
 * @since 3.0
 */
protected FilteredTree createFilteredTree(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = SIZING_VIEWER_WIDTH;
    data.horizontalSpan = 2;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;

    boolean needsHint = DialogUtil.inRegularFontMode(parent);

    //Only give a height hint if the dialog is going to be too small
    if (needsHint) {
        data.heightHint = SIZING_LISTS_HEIGHT;
    }
    composite.setLayoutData(data);

    filteredTreeFilter = new WizardPatternFilter();
    FilteredTree filterTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);
    filterTree.setQuickSelectionMode(true);

    final TreeViewer treeViewer = filterTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new DelegatingLabelProviderWithTooltip(new WorkbenchLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(ContributingPluginDecorator.ID)) {
        protected Object unwrapElement(Object element) {
            if (element instanceof WorkbenchWizardElement) {
                element = ((WorkbenchWizardElement) element).getConfigurationElement();
            }
            if (element instanceof WizardCollectionElement) {
                element = ((WizardCollectionElement) element).getConfigurationElement();
            }
            return element;
        }
    });
    treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE);
    treeViewer.addSelectionChangedListener(this);

    ArrayList inputArray = new ArrayList();

    for (int i = 0; i < primaryWizards.length; i++) {
        inputArray.add(primaryWizards[i]);
    }

    boolean expandTop = false;

    if (wizardCategories != null) {
        if (wizardCategories.getParent() == null) {
            IWizardCategory[] children = wizardCategories.getCategories();
            for (int i = 0; i < children.length; i++) {
                inputArray.add(children[i]);
            }
        } else {
            expandTop = true;
            inputArray.add(wizardCategories);
        }
    }

    // ensure the category is expanded.  If there is a remembered expansion it will be set later.
    if (expandTop) {
        treeViewer.setAutoExpandLevel(2);
    }

    AdaptableList input = new AdaptableList(inputArray);

    treeViewer.setInput(input);

    filterTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));

    treeViewer.getTree().setFont(parent.getFont());

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
         */
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            selectionChanged(new SelectionChangedEvent(event.getViewer(), s));

            Object element = s.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                treeViewer.setExpandedState(element, !treeViewer.getExpandedState(element));
            } else if (element instanceof WorkbenchWizardElement) {
                page.advanceToNextPageOrFinish();
            }
        }
    });

    treeViewer.addFilter(filter);

    if (projectsOnly) {
        treeViewer.addFilter(projectFilter);
    }

    Dialog.applyDialogFont(filterTree);
    return filterTree;
}

From source file:org.eclipse.ui.navigator.CommonNavigator.java

License:Open Source License

/**
 * <p>/*from  w ww .java  2 s.c om*/
 * Note: This method is for internal use only. Clients should not call this
 * method.
 * </p>
 * 
 * @param anEvent
 *            Supplied by the DoubleClick listener.
 */
protected void handleDoubleClick(DoubleClickEvent anEvent) {

    IAction openHandler = getViewSite().getActionBars().getGlobalActionHandler(ICommonActionConstants.OPEN);

    if (openHandler == null) {
        IStructuredSelection selection = (IStructuredSelection) anEvent.getSelection();
        Object element = selection.getFirstElement();

        TreeViewer viewer = getCommonViewer();
        if (viewer.isExpandable(element)) {
            viewer.setExpandedState(element, !viewer.getExpandedState(element));
        }
    }
}

From source file:org.eclipse.wst.jsdt.internal.ui.packageview.PackageExplorerActionGroup.java

License:Open Source License

void handleDoubleClick(DoubleClickEvent event) {
    TreeViewer viewer = fPart.getTreeViewer();
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();
    if (viewer.isExpandable(element)) {
        if (doubleClickGoesInto()) {
            // don't zoom into compilation units and class files
            if (element instanceof IJavaScriptUnit || element instanceof IClassFile)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();/*ww w . j a  v a  2s.c  o  m*/
            }
        } else {
            IAction openAction = fNavigateActionGroup.getOpenAction();
            if (openAction != null && openAction.isEnabled()
                    && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK)
                return;
            if (selection instanceof ITreeSelection) {
                TreePath[] paths = ((ITreeSelection) selection).getPathsFor(element);
                for (int i = 0; i < paths.length; i++) {
                    viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i]));
                }
            } else {
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
            }
        }
    } else if (element instanceof IProject && !((IProject) element).isOpen()) {
        OpenProjectAction openProjectAction = fProjectActionGroup.getOpenProjectAction();
        if (openProjectAction.isEnabled()) {
            openProjectAction.run();
        }
    }
}

From source file:org.python.pydev.navigator.actions.PyOpenPythonFileAction.java

License:Open Source License

public synchronized void run() {
    // clear them
    fillSelections();/*from  w  ww . jav  a 2 s . c  o  m*/

    if (filesSelected.size() > 0) {
        openFiles(filesSelected);

    } else if (nodesSelected.size() > 0) {
        PythonNode node = nodesSelected.iterator().next();
        ParsedItem actualObject = node.getActualObject();
        ASTEntryWithChildren astThis = actualObject.getAstThis();
        if (astThis != null) {
            new PyOpenAction().run(new ItemPointer(node.getPythonFile().getActualObject(),
                    NodeUtils.getNameTokFromNode(astThis.node)));
        }

    } else if (pythonPathZipFilesSelected.size() > 0) {
        openFiles(pythonPathZipFilesSelected
                .toArray(new PythonpathZipChildTreeNode[pythonPathZipFilesSelected.size()]));

    } else if (pythonPathFilesSelected.size() > 0) {
        openFiles(pythonPathFilesSelected.toArray(new PythonpathTreeNode[pythonPathFilesSelected.size()]));

    } else if (containersSelected.size() > 0) {
        if (this.provider instanceof TreeViewer) {
            TreeViewer viewer = (TreeViewer) this.provider;
            for (Object container : containersSelected) {
                if (viewer.isExpandable(container)) {
                    viewer.setExpandedState(container, !viewer.getExpandedState(container));
                }
            }
        } else {
            Log.log("Expecting the provider to be a TreeViewer -- it is:" + this.provider.getClass());
        }
    }
}

From source file:org.rubypeople.rdt.internal.ui.packageview.RubyExplorerActionGroup.java

License:Open Source License

void handleDoubleClick(DoubleClickEvent event) {
    TreeViewer viewer = fPart.getViewer();
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();
    if (viewer.isExpandable(element)) {
        if (doubleClickGoesInto()) {
            // don't zoom into ruby scripts
            if (element instanceof IRubyScript)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();//  w  w w . ja v a 2s .c  o  m
            }
        } else {
            IAction openAction = fNavigateActionGroup.getOpenAction();
            if (openAction != null && openAction.isEnabled()
                    && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK)
                return;
            if (selection instanceof ITreeSelection) {
                TreePath[] paths = ((ITreeSelection) selection).getPathsFor(element);
                for (int i = 0; i < paths.length; i++) {
                    viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i]));
                }
            } else {
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
            }
        }
    }
}

From source file:org.talend.designer.core.ui.views.properties.DynamicComposite.java

License:Open Source License

/**
 * DOC qzhang Comment method "getConnectionItems".
 * /*from  w  w w .ja  va 2  s .c o  m*/
 * @return
 * @throws PersistenceException
 */
private List<ConnectionItem> getConnectionItems() throws PersistenceException {
    List<ConnectionItem> list = new ArrayList<ConnectionItem>();
    IRepositoryView repositoryView = RepositoryManagerHelper.findRepositoryView();
    if (repositoryView != null) {
        TreeViewer viewer = (TreeViewer) repositoryView.getViewer();
        IContentProvider contentProvider = viewer.getContentProvider();
        if (contentProvider instanceof RepositoryContentProvider) {
            RepositoryContentProvider provider = (RepositoryContentProvider) contentProvider;
            RepositoryNode metadataConNode = provider.getRootRepositoryNode(ERepositoryObjectType.METADATA);
            for (IRepositoryNode connectionItem : metadataConNode.getChildren()) {
                if (viewer.isExpandable(connectionItem)) {
                    provider.getChildren(connectionItem);
                }
                for (IRepositoryNode node : connectionItem.getChildren()) {
                    addConnectionItem(viewer, provider, list, (RepositoryNode) node);
                }
            }
        }
    }
    return list;
}

From source file:org.talend.designer.core.ui.views.properties.DynamicComposite.java

License:Open Source License

/**
 * DOC qzhang Comment method "addConnectionItem".
 * //from ww  w . jav a  2s .c om
 * @param provider
 * @param viewer
 * 
 * @param list
 * @param repositoryNode3
 */
private void addConnectionItem(TreeViewer viewer, RepositoryContentProvider provider, List<ConnectionItem> list,
        RepositoryNode repositoryNode3) {
    IRepositoryViewObject object = repositoryNode3.getObject();
    if (object != null) {
        Item item = object.getProperty().getItem();
        if (item instanceof ConnectionItem) {
            list.add((ConnectionItem) item);
        } else if (item instanceof FolderItem) {
            for (IRepositoryNode node : repositoryNode3.getChildren()) {
                addConnectionItem(viewer, provider, list, (RepositoryNode) node);
            }
        }
    } else {
        if (viewer.isExpandable(repositoryNode3)) {
            provider.getChildren(repositoryNode3);
        }
        for (IRepositoryNode node : repositoryNode3.getChildren()) {
            addConnectionItem(viewer, provider, list, (RepositoryNode) node);
        }
    }
}

From source file:org.zamia.plugin.views.navigator.OpenFileAction.java

License:Open Source License

public void run() {
    fillSelections();/* w  w w  .  ja v  a2s  .  c  o m*/

    if (fFileSelected.size() > 0) {

        IFile file = fFileSelected.get(0);

        try {
            IDE.openEditor(fPage, file);
        } catch (Exception e) {
            el.logException(e);
        }

    } else if (fIGWrappersSelected.size() > 0) {

        IGModuleWrapper wrapper = fIGWrappersSelected.iterator().next();

        ZamiaProject zprj = wrapper.getZPrj();

        IProject prj = ZamiaProjectMap.getProject(zprj);

        SourceLocation location = wrapper.getLocation();

        if (location == null) {
            logger.error("OpenFileAction: wrapper doesn't give me a location: %s", wrapper);
            return;
        }

        IEditorPart editPart = ZamiaPlugin.showSource(fPage, prj, location, 0);

        if (editPart instanceof ZamiaEditor) {

            ZamiaEditor editor = (ZamiaEditor) editPart;

            ToplevelPath path = wrapper.getEditorPath();

            if (path != null) {
                //editor.setPath(wrapper.isBlueIG() ? path : path.getParent());
                editor.setPath(path);
            }

        }

    } else if (fRTLWrappersSelected.size() > 0) {

        RTLModuleWrapper wrapper = fRTLWrappersSelected.iterator().next();

        DMUID dmuid = wrapper.getDMUID();

        ZamiaProject zprj = wrapper.getZPrj();

        RTLManager manager = zprj.getRTLM();

        Toplevel tl = new Toplevel(dmuid, null);

        RTLModule rtlm = manager.findModule(tl);
        ;

        RTLView rtlv = ZamiaPlugin.showRTLView();

        rtlv.setRTLModule(rtlm);

    } else if (fContainersSelected.size() > 0) {
        if (this.fProvider instanceof TreeViewer) {
            TreeViewer viewer = (TreeViewer) this.fProvider;
            for (Object container : fContainersSelected) {
                if (viewer.isExpandable(container)) {
                    viewer.setExpandedState(container, !viewer.getExpandedState(container));
                }
            }
        }
    }
}