List of usage examples for org.eclipse.jface.viewers TreeViewer setContentProvider
@Override public void setContentProvider(IContentProvider provider)
TreeViewer
. From source file:ca.mcgill.sable.soot.ui.SootConfigManagerDialog.java
License:Open Source License
/** * creates the tree of options sections//from w w w. ja v a2 s . c o m */ private Composite createSelectionArea(Composite parent) { Composite comp = new Composite(parent, SWT.NONE); setSelectionArea(comp); GridLayout layout = new GridLayout(); layout.numColumns = 1; comp.setLayout(layout); GridData gd = new GridData(); TreeViewer tree = new TreeViewer(comp); gd = new GridData(GridData.FILL_BOTH); tree.getControl().setLayoutData(gd); tree.setContentProvider(new SootConfigContentProvider()); tree.setLabelProvider(new SootConfigLabelProvider()); tree.setInput(getInitialInput()); setTreeViewer(tree); tree.addSelectionChangedListener(this); tree.expandAll(); tree.getControl().addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { handleKeyPressed(e); } }); return comp; }
From source file:cc.warlock.rcp.stormfront.ui.prefs.AccountsPreferencePage.java
License:Open Source License
protected TreeViewer createAccountViewer(Composite parent) { final TreeViewer viewer = new TreeViewer(parent, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL); viewer.getTree().setLayoutData(new GridData(GridData.BEGINNING, GridData.FILL, true, true)); viewer.setContentProvider(new ITreeContentProvider() { public void dispose() { }// w ww.jav a 2 s.c om public Object[] getChildren(Object parentElement) { if (parentElement instanceof Account) { return ((Account) parentElement).getProfiles().toArray(); } return new Object[0]; } public Object[] getElements(Object inputElement) { if (inputElement instanceof Collection<?>) { return ((Collection<?>) inputElement).toArray(); } else if (inputElement instanceof Object[]) { return (Object[]) inputElement; } else { return new Object[] { inputElement }; } } public Object getParent(Object element) { if (element instanceof ProfileSetting) { return AccountProvider.getInstance().getAccountByProfile((ProfileSetting) element); } return null; } public boolean hasChildren(Object element) { if (element instanceof Account) { return ((Account) element).getProfiles().size() > 0; } return false; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); viewer.setLabelProvider(new ILabelProvider() { public void addListener(ILabelProviderListener listener) { } public void dispose() { } public Image getImage(Object element) { if (element instanceof ProfileSetting) return WarlockSharedImages.getImage(WarlockSharedImages.IMG_CHARACTER); return null; } public String getText(Object element) { if (element instanceof Account) { return ((Account) element).getAccountName(); } else if (element instanceof ProfileSetting) { ProfileSetting profile = (ProfileSetting) element; return profile.getGameName() + " - " + profile.getCharacterName(); } return ""; } public boolean isLabelProperty(Object element, String property) { return true; } public void removeListener(ILabelProviderListener listener) { } }); viewer.addFilter(new ViewerFilter() { public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof Account) { Account account = (Account) element; if (removedAccounts.contains(account)) return false; } else if (element instanceof ProfileSetting) { ProfileSetting profile = (ProfileSetting) element; if (removedProfiles.containsKey(profile)) return false; } return true; } }); viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.getTree().setLinesVisible(true); viewer.getTree().setSize(300, viewer.getTree().getSize().y); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() instanceof Account) { accountSelected((Account) selection.getFirstElement()); } else if (selection.getFirstElement() instanceof ProfileSetting) { profileSelected((ProfileSetting) selection.getFirstElement()); } } }); return viewer; }
From source file:ch.elexis.core.ui.views.rechnung.VerrDetailDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite ret = new Composite(parent, SWT.NONE); ret.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); ret.setLayout(new FillLayout()); TreeViewer tv = new TreeViewer(ret, SWT.V_SCROLL); tv.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { Tree[] ret = (Tree[]) ((Tree) parentElement).getChildren().toArray(new Tree[0]); Arrays.sort(ret, new Comparator<Tree>() { public int compare(Tree t1, Tree t2) { if (t1.contents instanceof Konsultation) { Konsultation k1 = (Konsultation) t1.contents; return k1.compareTo((Konsultation) t2.contents); }//from ww w .j av a2s . co m return 0; } }); return ret; } public Object getParent(Object element) { return ((Tree) element).getParent(); } public boolean hasChildren(Object element) { return ((Tree) element).hasChildren(); } public Object[] getElements(Object inputElement) { Tree[] ret = (Tree[]) tree.getChildren().toArray(new Tree[0]); return ret; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); tv.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { Object o = ((Tree) element).contents; if (o instanceof Fall) { Fall f = (Fall) o; Money sum = new Money(); List<Konsultation> list = faelle.get(f); if (list != null) { for (Konsultation k : list) { sum.addMoney(calcKons(k)); } } return f.getLabel() + " - " + sum.getAmountAsString(); //$NON-NLS-1$ } else if (o instanceof Konsultation) { Konsultation k = (Konsultation) o; return k.getLabel() + " - " + calcKons(k).getAmountAsString(); //$NON-NLS-1$ } return super.getText(element); } }); tv.setInput(this); return ret; }
From source file:com.alibaba.antx.config.gui.MainWindow.java
License:Open Source License
/** * Create contents of the application window * /*from w w w . ja v a2 s . co m*/ * @param parent */ protected Control createContents(Composite parent) { SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL); Composite leftPane = new Composite(sashForm, SWT.BORDER); Composite rightPane = new Composite(sashForm, SWT.BORDER); leftPane.setLayout(new GridLayout()); rightPane.setLayout(new GridLayout()); TreeViewer entriesViewer = new TreeViewer(leftPane, SWT.BORDER); entriesViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); entriesViewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { if (parentElement instanceof List) { List entriesList = (List) parentElement; return (ConfigEntry[]) entriesList.toArray(new ConfigEntry[entriesList.size()]); } return null; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } public Object[] getElements(Object inputElement) { if (inputElement instanceof List) { List entriesList = (List) inputElement; return (ConfigEntry[]) entriesList.toArray(new ConfigEntry[entriesList.size()]); } return null; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); gui.scan(); entriesViewer.setInput(gui.getEntries()); return sashForm; }
From source file:com.amazonaws.eclipse.cloudformation.templates.editor.TemplateContentOutlinePage.java
License:Apache License
public void createControl(Composite parent) { super.createControl(parent); final TreeViewer viewer = getTreeViewer(); viewer.setContentProvider(new TemplateOutlineContentProvider()); viewer.setLabelProvider(new TemplateOutlineLabelProvider()); viewer.addSelectionChangedListener(this); viewer.setAutoExpandLevel(2);//from w w w .ja v a2 s . c om viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { TemplateOutlineNode selectedNode = (TemplateOutlineNode) ((StructuredSelection) event .getSelection()).getFirstElement(); JsonLocation startLocation = selectedNode.getNode().getStartLocation(); JsonLocation endLocation = selectedNode.getNode().getEndLocation(); IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() .getActiveEditor(); if (activeEditor != null) { TemplateEditor templateEditor = (TemplateEditor) activeEditor; templateEditor.setHighlightRange((int) startLocation.getCharOffset(), (int) endLocation.getCharOffset() - (int) startLocation.getCharOffset(), true); } } }); document.addTemplateDocumentListener(this); updateContent(); }
From source file:com.amazonaws.eclipse.codedeploy.explorer.editor.table.DeploymentsTableView.java
License:Apache License
private TreeViewer createControls(FormToolkit toolkit) { GridLayout gridLayout = new GridLayout(1, false); gridLayout.marginWidth = 0;//from w w w . j av a 2 s . c om gridLayout.marginHeight = 0; setLayout(gridLayout); Composite sectionComp = toolkit.createComposite(this, SWT.None); sectionComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); sectionComp.setLayout(new GridLayout(1, false)); Composite headingComp = toolkit.createComposite(sectionComp, SWT.None); headingComp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); headingComp.setLayout(new GridLayout()); tableTitleLabel = toolkit.createLabel(headingComp, "Deployments"); tableTitleLabel.setFont(JFaceResources.getHeaderFont()); tableTitleLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); Composite tableHolder = toolkit.createComposite(sectionComp, SWT.None); tableHolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); FillLayout layout = new FillLayout(); layout.marginHeight = 0; layout.marginWidth = 10; layout.type = SWT.VERTICAL; tableHolder.setLayout(layout); Composite tableComp = toolkit.createComposite(tableHolder, SWT.None); final TreeColumnLayout tableColumnLayout = new TreeColumnLayout(); tableComp.setLayout(tableColumnLayout); final TreeViewer viewer = new TreeViewer(tableComp, SWT.BORDER | SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL); viewer.getTree().setLinesVisible(true); viewer.getTree().setHeaderVisible(true); viewer.setUseHashlookup(true); viewer.setLabelProvider(new DeploymentsTableViewLabelProvider()); viewer.setContentProvider(new DeploymentsTableViewContentProvider(this.viewer, this.contentCache)); Tree tree = viewer.getTree(); createColumns(tableColumnLayout, tree); viewer.setInput(loadingContentProvider); updateRefreshProgress(0, false); // Async load top-level data new Thread(new Runnable() { public void run() { Display.getDefault().syncExec(new Runnable() { public void run() { // Preserve the current column widths int[] colWidth = new int[viewer.getTree().getColumns().length]; int i = 0; for (TreeColumn col : viewer.getTree().getColumns()) { colWidth[i++] = col.getWidth(); } i = 0; for (TreeColumn col : viewer.getTree().getColumns()) { tableColumnLayout.setColumnData(col, new ColumnPixelData(colWidth[i])); } } }); // Cache the children of all the top-level elements before // updating the tree view loadAllTopLevelElements(); Display.getDefault().syncExec(new Runnable() { public void run() { viewer.setInput(contentCache); } }); } }).start(); return viewer; }
From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.OutlinePage.java
License:Open Source License
private void createOutline(Composite parent) { if (AdtUtils.isEclipse4()) { // This is a workaround for the focus behavior in Eclipse 4 where // the framework ends up calling setFocus() on the first widget in the outline // AFTER a mouse click has been received. Specifically, if the user clicks in // the embedded property sheet to for example give a Text property editor focus, // then after the mouse click, the Outline window activation event is processed, // and this event causes setFocus() to be called first on the PageBookView (which // ends up calling setFocus on the first control, normally the TreeViewer), and // then on the Page itself. We're dealing with the page setFocus() in the override // of that method in the class, such that it does nothing. // However, we have to also disable the setFocus on the first control in the // outline page. To deal with that, we create our *own* first control in the // outline, and make its setFocus() a no-op. We also make it invisible, since we // don't actually want anything but the tree viewer showing in the outline. Text text = new Text(parent, SWT.NONE) { @Override/*from ww w . j ava2 s . c o m*/ public boolean setFocus() { // Focus no-op return true; } @Override protected void checkSubclass() { // Disable the check that prevents subclassing of SWT components } }; text.setVisible(false); } super.createControl(parent); TreeViewer tv = getTreeViewer(); tv.setAutoExpandLevel(2); tv.setContentProvider(new ContentProvider()); tv.setLabelProvider(new LabelProvider()); tv.setInput(mRootWrapper); tv.expandToLevel(mRootWrapper.getRoot(), 2); int supportedOperations = DND.DROP_COPY | DND.DROP_MOVE; Transfer[] transfers = new Transfer[] { SimpleXmlTransfer.getInstance() }; tv.addDropSupport(supportedOperations, transfers, new OutlineDropListener(this, tv)); tv.addDragSupport(supportedOperations, transfers, new OutlineDragListener(this, tv)); // The tree viewer will hold CanvasViewInfo instances, however these // change each time the canvas is reloaded. OTOH layoutlib gives us // constant UiView keys which we can use to perform tree item comparisons. tv.setComparer(new IElementComparer() { @Override public int hashCode(Object element) { if (element instanceof CanvasViewInfo) { UiViewElementNode key = ((CanvasViewInfo) element).getUiViewNode(); if (key != null) { return key.hashCode(); } } if (element != null) { return element.hashCode(); } return 0; } @Override public boolean equals(Object a, Object b) { if (a instanceof CanvasViewInfo && b instanceof CanvasViewInfo) { UiViewElementNode keyA = ((CanvasViewInfo) a).getUiViewNode(); UiViewElementNode keyB = ((CanvasViewInfo) b).getUiViewNode(); if (keyA != null) { return keyA.equals(keyB); } } if (a != null) { return a.equals(b); } return false; } }); tv.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { // This used to open the property view, but now that properties are docked // let's use it for something else -- such as showing the editor source /* // Front properties panel; its selection is already linked IWorkbenchPage page = getSite().getPage(); try { page.showView(IPageLayout.ID_PROP_SHEET, null, IWorkbenchPage.VIEW_ACTIVATE); } catch (PartInitException e) { AdtPlugin.log(e, "Could not activate property sheet"); } */ TreeItem[] selection = getTreeViewer().getTree().getSelection(); if (selection.length > 0) { CanvasViewInfo vi = getViewInfo(selection[0].getData()); if (vi != null) { LayoutCanvas canvas = mGraphicalEditorPart.getCanvasControl(); canvas.show(vi); } } } }); setupContextMenu(); // Listen to selection changes from the layout editor getSite().getPage().addSelectionListener(this); getControl().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { dispose(); } }); Tree tree = tv.getTree(); tree.addKeyListener(new KeyListener() { @Override public void keyPressed(KeyEvent e) { if (e.character == '-') { if (mMoveUpAction.isEnabled()) { mMoveUpAction.run(); } } else if (e.character == '+') { if (mMoveDownAction.isEnabled()) { mMoveDownAction.run(); } } } @Override public void keyReleased(KeyEvent e) { } }); setupTooltip(); }
From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.OutlinePage2.java
License:Open Source License
@Override public void createControl(Composite parent) { super.createControl(parent); TreeViewer tv = getTreeViewer(); tv.setAutoExpandLevel(2);//from w w w. j av a 2 s . com tv.setContentProvider(new ContentProvider()); tv.setLabelProvider(new LabelProvider()); tv.setInput(mRootWrapper); // The tree viewer will hold CanvasViewInfo instances, however these // change each time the canvas is reloaded. OTOH liblayout gives us // constant UiView keys which we can use to perform tree item comparisons. tv.setComparer(new IElementComparer() { public int hashCode(Object element) { if (element instanceof CanvasViewInfo) { UiViewElementNode key = ((CanvasViewInfo) element).getUiViewKey(); if (key != null) { return key.hashCode(); } } if (element != null) { return element.hashCode(); } return 0; } public boolean equals(Object a, Object b) { if (a instanceof CanvasViewInfo && b instanceof CanvasViewInfo) { UiViewElementNode keyA = ((CanvasViewInfo) a).getUiViewKey(); UiViewElementNode keyB = ((CanvasViewInfo) b).getUiViewKey(); if (keyA != null) { return keyA.equals(keyB); } } if (a != null) { return a.equals(b); } return false; } }); // Listen to selection changes from the layout editor getSite().getPage().addSelectionListener(this); }
From source file:com.appnativa.studio.editors.SDFOutlinePage.java
License:Open Source License
public void createControl(Composite parent) { super.createControl(parent); TreeViewer viewer = getTreeViewer(); outlineContentProvider = new OutlineContentProvider(editor.getDocumentProvider()); viewer.setContentProvider(outlineContentProvider); outlineLabelProvider = new OutlineLabelProvider(); viewer.setLabelProvider(outlineLabelProvider); viewer.addSelectionChangedListener(this); viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS); //control is created after input is set if (input != null) { viewer.setInput(input);//from w ww .j a v a 2 s. c o m } }
From source file:com.aptana.editor.common.outline.CommonOutlinePage.java
License:Open Source License
@Override public void createControl(Composite parent) { fMainControl = new Composite(parent, SWT.NONE); fMainControl.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 2).create()); fMainControl.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); fSearchBox = new Text(fMainControl, SWT.SINGLE | SWT.BORDER | SWT.SEARCH); fSearchBox.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(0, 3).create()); fSearchBox.setText(INITIAL_FILTER_TEXT); fSearchBox.setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); fSearchBox.addModifyListener(fSearchModifyListener); fSearchBox.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e) { if (fSearchBox.getText().length() == 0) { fSearchBox.removeModifyListener(fSearchModifyListener); fSearchBox.setText(INITIAL_FILTER_TEXT); fSearchBox.addModifyListener(fSearchModifyListener); }//from w ww . j a va 2s. com fSearchBox .setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); } public void focusGained(FocusEvent e) { if (fSearchBox.getText().equals(INITIAL_FILTER_TEXT)) { fSearchBox.removeModifyListener(fSearchModifyListener); fSearchBox.setText(StringUtil.EMPTY); fSearchBox.addModifyListener(fSearchModifyListener); } fSearchBox.setForeground(null); } }); fTreeViewer = new TreeViewer(fMainControl, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); fTreeViewer.addSelectionChangedListener(this); fTreeViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); ((IContextService) getSite().getService(IContextService.class)).activateContext(OUTLINE_CONTEXT); final TreeViewer viewer = getTreeViewer(); viewer.setUseHashlookup(true); viewer.setContentProvider(fContentProvider); viewer.setLabelProvider(fLabelProvider); fInput = new CommonOutlinePageInput(fEditor.getAST()); // Note: the input remains the same (we change its internal contents with a new ast and call refresh, // so that the outline structure is maintained). viewer.setInput(fInput); viewer.setComparator(isSortingEnabled() ? new ViewerComparator() : null); fFilter = new PatternFilter() { @Override protected boolean isLeafMatch(Viewer viewer, Object element) { String label = null; if (element instanceof CommonOutlineItem) { label = ((CommonOutlineItem) element).getLabel(); } else if (element instanceof IParseNode) { label = ((IParseNode) element).getText(); } if (label == null) { return true; } return wordMatches(label); } }; fFilter.setIncludeLeadingWildcard(true); viewer.addFilter(fFilter); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); // expands the selection one level if applicable viewer.expandToLevel(selection.getFirstElement(), 1); // selects the corresponding text in editor if (!isLinkedWithEditor()) { setEditorSelection(selection, true); } } }); viewer.getTree().addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { if (e.keyCode == '\r' && isLinkedWithEditor()) { ISelection selection = viewer.getSelection(); if (!selection.isEmpty() && selection instanceof IStructuredSelection) { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page != null) { // brings editor to focus page.activate(fEditor); // deselects the current selection but keeps the cursor position Object widget = fEditor.getAdapter(Control.class); if (widget instanceof StyledText) fEditor.selectAndReveal(((StyledText) widget).getCaretOffset(), 0); } } } } }); hookToThemes(); IActionBars actionBars = getSite().getActionBars(); registerActions(actionBars); actionBars.updateActionBars(); fPrefs.addPropertyChangeListener(this); fFilterRefreshJob = new WorkbenchJob("Refresh Filter") //$NON-NLS-1$ { @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (isDisposed()) { return Status.CANCEL_STATUS; } fTreeViewer.refresh(); String text = fSearchBox.getText(); if (!StringUtil.isEmpty(text) && !INITIAL_FILTER_TEXT.equals(text)) { fTreeViewer.expandAll(); } return Status.OK_STATUS; } }; EclipseUtil.setSystemForJob(fFilterRefreshJob); }