List of usage examples for org.eclipse.jface.viewers TreeViewer isExpandable
@Override public boolean isExpandable(Object element)
From source file:org.eclipse.mylyn.internal.commons.repositories.ui.wizards.NewRepositoryWizardNewPage.java
License:Open Source License
/** * Create a new FilteredTree in the parent. * //from w w w. j ava 2 s. c o m * @param parent * the parent <code>Composite</code>. * @since 3.0 */ @SuppressWarnings({ "rawtypes", "unchecked" }) 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); final TreeViewer treeViewer = filterTree.getViewer(); treeViewer.setContentProvider(new WizardContentProvider()); treeViewer.setLabelProvider(new WorkbenchLabelProvider()); treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE); treeViewer.addSelectionChangedListener(this); ArrayList inputArray = new ArrayList(); for (IWizardDescriptor primaryWizard : primaryWizards) { inputArray.add(primaryWizard); } boolean expandTop = false; if (wizardCategories != null) { if (wizardCategories.getParent() == null) { IWizardCategory[] children = wizardCategories.getCategories(); for (IWizardCategory element : children) { inputArray.add(element); } } 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.mylyn.internal.commons.ui.team.wizards.NewRepositoryWizardNewPage.java
License:Open Source License
/** * Create a new FilteredTree in the parent. * /*from ww w . j a v a 2 s .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); final TreeViewer treeViewer = filterTree.getViewer(); treeViewer.setContentProvider(new WizardContentProvider()); treeViewer.setLabelProvider(new WorkbenchLabelProvider()); treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE); treeViewer.addSelectionChangedListener(this); ArrayList inputArray = new ArrayList(); for (IWizardDescriptor primaryWizard : primaryWizards) { inputArray.add(primaryWizard); } boolean expandTop = false; if (wizardCategories != null) { if (wizardCategories.getParent() == null) { IWizardCategory[] children = wizardCategories.getCategories(); for (IWizardCategory element : children) { inputArray.add(element); } } 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.php.internal.ui.actions.newprojectwizard.NewWizardNewPage.java
License:Open Source License
/** * Create a new FilteredTree in the parent. * // ww w . j a v a 2 s. 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); final TreeViewer treeViewer = filterTree.getViewer(); treeViewer.setContentProvider(new WizardContentProvider()); treeViewer.setLabelProvider(new WorkbenchLabelProvider()); treeViewer.addSelectionChangedListener(this); ArrayList inputArray = new ArrayList(); for (int i = 0; i < primaryWizards.length; i++) { inputArray.add(primaryWizards[i]); } if (!projectsOnly) { IWizardCategory phpCategory = wizardCategories.findCategory(new Path("org.eclipse.php.project.ui")); //$NON-NLS-1$ // IWizardCategory[] children = wizardCategories.getCategories(); // for (int i = 0; i < children.length; i++) { // if ("org.eclipse.php.project.ui".equals(children[i].getId())) { // phpCategory = children[i]; // } // } if (phpCategory != null) { IWizardDescriptor[] wizards = phpCategory.getWizards(); for (int i = 0; i < wizards.length; i++) { inputArray.add(wizards[i]); } inputArray = sortWizard(inputArray); IWizardCategory[] categories = phpCategory.getCategories(); for (int i = 0; i < categories.length; i++) { inputArray.add(categories[i]); } IWizardDescriptor folder = wizardCategories.findWizard("org.eclipse.ui.wizards.new.folder"); //$NON-NLS-1$ if (folder != null) { inputArray.add(folder); } } NewWizardCollectionComparator comparator = NewWizardCollectionComparator.INSTANCE; Set set = new HashSet(); set.addAll(inputArray); comparator.setPrimaryWizards(set); treeViewer.setComparator(comparator); } else { NewWizardCollectionComparator comparator = NewWizardCollectionComparator.INSTANCE; comparator.setPrimaryWizards(null); treeViewer.setComparator(comparator); } boolean expandTop = false; if (wizardCategories != null) { if (wizardCategories.getParent() == null) { IWizardCategory[] children = wizardCategories.getCategories(); for (int i = 0; i < children.length; i++) { if (!"org.eclipse.php.project.ui".equals(children[i] //$NON-NLS-1$ .getId())) { 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.php.internal.ui.actions.PHPExplorerActionGroup.java
License:Open Source License
/** * this method call ScriptExplorerActionGroup.handleDoubleClick(event) at * most cases, except fNavigateActionGroup relative operation *//*w w w . j a va 2 s . co m*/ protected void handleDoubleClick(DoubleClickEvent event) { TreeViewer viewer = getPart().getTreeViewer(); IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object element = selection.getFirstElement(); if (viewer.isExpandable(element)) { if (doubleClickGoesInto()) { super.handleDoubleClick(event); } 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 { super.handleDoubleClick(event); } }
From source file:org.eclipse.tcf.te.ui.views.editor.pages.AbstractTreeViewerExplorerEditorPage.java
License:Open Source License
@Override public void doubleClick(final DoubleClickEvent event) { // If an handled and enabled command is registered for the ICommonActionConstants.OPEN // retargetable action id, redirect the double click handling to the command handler. ///* w ww . ja va2 s. c om*/ // Note: The default tree node expansion must be re-implemented in the active handler! String commandId = getDoubleClickCommandId(); Command cmd = null; if (commandId != null) { ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class); cmd = service != null ? service.getCommand(commandId) : null; } if (cmd != null && cmd.isDefined() && cmd.isEnabled()) { final Command command = cmd; SafeRunner.run(new SafeRunnable() { @Override public void handleException(Throwable e) { // Ignore exception } @Override public void run() throws Exception { IHandlerService handlerSvc = (IHandlerService) PlatformUI.getWorkbench() .getService(IHandlerService.class); Assert.isNotNull(handlerSvc); ISelection selection = event.getSelection(); EvaluationContext ctx = new EvaluationContext(handlerSvc.getCurrentState(), selection); ctx.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection); ctx.addVariable(ISources.ACTIVE_MENU_SELECTION_NAME, selection); ctx.setAllowPluginActivation(true); ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null); Assert.isNotNull(pCmd); handlerSvc.executeCommandInContext(pCmd, null, ctx); } }); } else { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object element = selection.getFirstElement(); TreeViewer viewer = (TreeViewer) treeControl.getViewer(); if (viewer.isExpandable(element)) { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } } }
From source file:org.eclipse.tcf.te.ui.views.handler.OpenEditorHandler.java
License:Open Source License
@Override public Object execute(ExecutionEvent event) throws ExecutionException { // The selection is the Target Explorer tree selection ISelection selection = HandlerUtil.getCurrentSelection(event); // The active part is the Target Explorer view instance IWorkbenchPart part = HandlerUtil.getActivePart(event); // Get the currently active workbench window // In Eclipse 4.x, the HandlerUtil.getActiveWorkbenchWindow(event) may return null IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); if (window == null) window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); // ALT - Key pressed? Object ctrlPressed = HandlerUtil.getVariable(event, "ctrlPressed"); //$NON-NLS-1$ boolean expand = ctrlPressed instanceof Boolean ? ((Boolean) ctrlPressed).booleanValue() : false; if (selection instanceof IStructuredSelection && !selection.isEmpty()) { // If the tree node is expandable, expand or collapse it TreeViewer viewer = ((CommonNavigator) part).getCommonViewer(); Object element = ((IStructuredSelection) selection).getFirstElement(); if (selection instanceof TreeSelection) { TreePath[] path = ((TreeSelection) selection).getPaths(); if (path != null && path.length > 0) { element = path[0].getLastSegment(); }//from w w w .ja v a 2 s .c om } if (viewer.isExpandable(element) && expand) { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } else { openEditorOnSelection(window, selection); } } return null; }
From source file:org.eclipse.tcf.te.ui.wizards.newWizard.NewWizardSelectionPage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); Label label = new Label(composite, SWT.NONE); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(Messages.NewWizardSelectionPage_wizards); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); filteredTreeFilter = new WizardPatternFilter(); filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, filteredTreeFilter, true);/*from w w w . j av a2 s. com*/ filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.heightHint = 325; layoutData.widthHint = 450; filteredTree.setLayoutData(layoutData); final TreeViewer treeViewer = filteredTree.getViewer(); treeViewer.setContentProvider(new NewWizardContentProvider()); treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider()); treeViewer.setComparator(new NewWizardViewerComparator()); treeViewer.addFilter(new NewWizardViewerFilter()); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { onSelectionChanged(); } }); treeViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { // Double-click on a connection type is triggering the sub wizard if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); // The tree is single selection, so look for the first element only. Object element = selection.getFirstElement(); if (element instanceof IWizardDescriptor) { // Double-click on a connection type is triggering the sub wizard if (canFlipToNextPage()) { getWizard().getContainer().showPage(getNextPage()); } } else if (event.getViewer() instanceof TreeViewer) { TreeViewer viewer = (TreeViewer) event.getViewer(); if (viewer.isExpandable(element)) { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } } } } }); treeViewer.setInput(category != null ? category : wizardRegistry); // apply the standard dialog font Dialog.applyDialogFont(composite); setControl(composite); // Restore the tree action restoreWidgetValues(); // Initialize the context help id PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IUIConstants.HELP_NEW_WIZARD_SELECTION_PAGE); }
From source file:org.eclipse.team.internal.ui.synchronize.AbstractTreeViewerAdvisor.java
License:Open Source License
private static boolean hasNextPrev(TreeViewer viewer, TreeItem item, boolean next) { if (item == null || !(viewer instanceof ITreeViewerAccessor)) return false; TreeItem children[] = null;/*from w w w . ja v a2s. c o m*/ if (next) { if (viewer.isExpandable(item.getData())) return true; while (item != null) { TreeItem parent = item.getParentItem(); if (parent != null) children = parent.getItems(); else children = item.getParent().getItems(); if (children != null && children.length > 0) { if (children[children.length - 1] != item) { // The item is not the last so there must be a next return true; } else { // Set the parent as the item and go up one more level item = parent; } } } } else { while (item != null) { TreeItem parent = item.getParentItem(); if (parent != null) children = parent.getItems(); else children = item.getParent().getItems(); if (children != null && children.length > 0) { if (children[0] != item) { // The item is not the first so there must be a previous return true; } else { // Set the parent as the item and go up one more level item = parent; } } } } return false; }
From source file:org.eclipse.tm.te.ui.views.handler.OpenCommandHandler.java
License:Open Source License
@Override public Object execute(ExecutionEvent event) throws ExecutionException { // The selection is the Target Explorer tree selection ISelection selection = HandlerUtil.getCurrentSelection(event); // The active part is the Target Explorer view instance IWorkbenchPart part = HandlerUtil.getActivePart(event); if (selection instanceof IStructuredSelection && !selection.isEmpty() && part instanceof CommonNavigator) { // If the tree node is expandable, expand or collapse it TreeViewer viewer = ((CommonNavigator) part).getCommonViewer(); Object element = ((IStructuredSelection) selection).getFirstElement(); if (viewer.isExpandable(element)) { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } else {// w w w . j a v a 2 s . co m // Node is not an expandable node, forward to the properties action. ICommandService service = (ICommandService) PlatformUI.getWorkbench() .getService(ICommandService.class); Command command = service != null ? service.getCommand(ActionFactory.PROPERTIES.getCommandId()) : null; if (command != null && command.isDefined() && command.isEnabled()) { try { command.executeWithChecks(event); } catch (Exception e) { // If the platform is in debug mode, we print the exception to the log view if (Platform.inDebugMode()) { IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), e.getLocalizedMessage(), e); UIPlugin.getDefault().getLog().log(status); } } } } } return null; }
From source file:org.eclipse.tm.te.ui.wizards.newWizard.NewWizardSelectionPage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); Label label = new Label(composite, SWT.NONE); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(Messages.NewWizardSelectionPage_wizards); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); filteredTreeFilter = new WizardPatternFilter(); filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, filteredTreeFilter, true);//w w w .ja va2 s . co m filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.heightHint = 325; layoutData.widthHint = 450; filteredTree.setLayoutData(layoutData); final TreeViewer treeViewer = filteredTree.getViewer(); treeViewer.setContentProvider(new WizardContentProvider()); treeViewer.setLabelProvider(new WorkbenchLabelProvider()); treeViewer.setComparator(new NewWizardViewerComparator()); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { onSelectionChanged(); } }); treeViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { // Double-click on a connection type is triggering the sub wizard if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); // The tree is single selection, so look for the first element only. Object element = selection.getFirstElement(); if (element instanceof IWizardDescriptor) { // Double-click on a connection type is triggering the sub wizard if (canFlipToNextPage()) getWizard().getContainer().showPage(getNextPage()); } else if (event.getViewer() instanceof TreeViewer) { TreeViewer viewer = (TreeViewer) event.getViewer(); if (viewer.isExpandable(element)) { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } } } } }); treeViewer.setInput(wizardRegistry.getRootCategory()); // apply the standard dialog font Dialog.applyDialogFont(composite); setControl(composite); // Restore the tree state restoreWidgetValues(); // Initialize the context help id PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IUIConstants.HELP_NEW_WIZARD_SELECTION_PAGE); }