List of usage examples for org.eclipse.jface.viewers TreeViewer getTree
public Tree getTree()
From source file:com.application.areca.launcher.gui.TargetEditionWindow.java
License:Open Source License
private void initFiltersTab(Composite composite) { composite.setLayout(initLayout(4));//from w ww . ja v a2 s . com TreeViewer viewer = new TreeViewer(composite, SWT.BORDER | SWT.SINGLE); treFilters = viewer.getTree(); GridData dt = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1); dt.heightHint = computeHeight(50); treFilters.setLayoutData(dt); TreeColumn col1 = new TreeColumn(treFilters, SWT.NONE); col1.setText(RM.getLabel("targetedition.filterstable.type.label")); col1.setWidth(computeWidth(200)); col1.setMoveable(true); TreeColumn col2 = new TreeColumn(treFilters, SWT.NONE); col2.setText(RM.getLabel("targetedition.filterstable.parameters.label")); col2.setWidth(computeWidth(200)); col2.setMoveable(true); TreeColumn col3 = new TreeColumn(treFilters, SWT.NONE); col3.setText(RM.getLabel("targetedition.filterstable.mode.label")); col3.setWidth(computeWidth(100)); col3.setMoveable(true); treFilters.setHeaderVisible(true); treFilters.setLinesVisible(AbstractWindow.getTableLinesVisible()); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { editCurrentFilter(); } }); treFilters.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent evt) { if (evt.character == SWT.DEL) { deleteCurrentFilter(); } } public void keyReleased(KeyEvent evt) { } }); Transfer[] types = new Transfer[] { TextTransfer.getInstance() }; final int operation = DND.DROP_MOVE; final DragSource source = new DragSource(treFilters, operation); source.setTransfer(types); source.addDragListener(new DragSourceAdapter() { public void dragStart(DragSourceEvent event) { TreeItem[] selection = treFilters.getSelection(); if (selection.length > 0 && selection[0].getParentItem() != null) { event.doit = true; transfered = selection[0]; } else { event.doit = false; } }; public void dragSetData(DragSourceEvent event) { event.data = "dummy data"; } }); DropTarget target = new DropTarget(treFilters, operation); target.setTransfer(types); target.addDropListener(new DropTargetAdapter() { public void dragEnter(DropTargetEvent event) { event.detail = DND.DROP_NONE; event.feedback = DND.FEEDBACK_NONE; } public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; TreeItem selected = getSelected(event); if (selected != null && (selected.getData() instanceof FilterGroup) && (!contains(transfered, selected))) { event.feedback |= DND.FEEDBACK_SELECT; event.detail = operation; } else { event.feedback |= DND.FEEDBACK_NONE; event.detail = DND.DROP_NONE; } } public void drop(DropTargetEvent event) { TreeItem targetItem = getSelected(event); if (targetItem != null) { FilterGroup target = (FilterGroup) targetItem.getData(); ArchiveFilter filter = (ArchiveFilter) transfered.getData(); FilterGroup parent = (FilterGroup) transfered.getParentItem().getData(); parent.remove(filter); target.addFilter(filter); updateFilterData(null); expandAll(treFilters.getItem(0)); } } }); btnAddFilter = new Button(composite, SWT.PUSH); btnAddFilter.setText(RM.getLabel("targetedition.addfilteraction.label")); btnAddFilter.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { if (treFilters.getSelectionCount() != 0) { TreeItem parentItem = treFilters.getSelection()[0]; ArchiveFilter parent = (ArchiveFilter) parentItem.getData(); if (parent instanceof FilterGroup) { ArchiveFilter newFilter = showFilterEditionFrame(null); if (newFilter != null) { ((FilterGroup) parent).addFilter(newFilter); addFilter(parentItem, newFilter); expandAll(treFilters.getItem(0)); registerUpdate(); } } } } }); btnModifyFilter = new Button(composite, SWT.PUSH); btnModifyFilter.setText(RM.getLabel("targetedition.editfilteraction.label")); btnModifyFilter.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { editCurrentFilter(); } }); btnRemoveFilter = new Button(composite, SWT.PUSH); btnRemoveFilter.setText(RM.getLabel("targetedition.removefilteraction.label")); btnRemoveFilter.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { deleteCurrentFilter(); } }); treFilters.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { updateFilterListState(); } }); }
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 ava 2s . c o m 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); }
From source file:com.aptana.editor.common.outline.CommonQuickOutlinePage.java
License:Open Source License
/** * createTreeViewer//from w ww . jav a 2 s .co m * * @param parent * @return TreeViewer */ private TreeViewer createTreeViewer(Composite parent) { TreeViewer result = new TreeViewer(new Tree(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL)); Tree tree = result.getTree(); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = tree.getItemHeight() * 12; tree.setLayoutData(gd); result.setLabelProvider(_editor.getOutlineLabelProvider()); result.setContentProvider(_editor.getOutlineContentProvider()); result.setInput(this._editor); result.setComparer(new IElementComparer() { /** * @see org.eclipse.jface.viewers.IElementComparer#equals(java.lang.Object, java.lang.Object) */ public boolean equals(Object a, Object b) { boolean result = false; if (a instanceof CommonOutlineItem && b instanceof CommonOutlineItem) { CommonOutlineItem item1 = (CommonOutlineItem) a; CommonOutlineItem item2 = (CommonOutlineItem) b; result = item1.equals(item2); } else if (a instanceof IParseNode && b instanceof IParseNode) { if (a == b) { result = true; } else { IParseNode node1 = (IParseNode) a; IParseNode node2 = (IParseNode) b; result = node1.equals(node2); } } else { result = (a == b); } return result; } /** * @see org.eclipse.jface.viewers.IElementComparer#hashCode(java.lang.Object) */ public int hashCode(Object element) { return 0; } }); return result; }
From source file:com.aptana.ide.editors.views.actions.ActionsView.java
License:Open Source License
/** * createTreeViewer/*w ww. j a v a 2 s. c om*/ * * @param parent * @return TreeViewer */ protected TreeViewer createTreeViewer(Composite parent) { final TreeViewer treeViewer = new TreeViewer(new Tree(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL)); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { StyledText label = (StyledText) event.widget; Shell shell = (Shell) label.getData("_SHELL"); // label.getShell(); //$NON-NLS-1$ switch (event.type) { // case SWT.MouseDown: case SWT.MouseDoubleClick: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //$NON-NLS-1$ // Assuming table is single select, set the selection as if // the mouse down event went through to the table treeViewer.getTree().setSelection(new TreeItem[] { (TreeItem) e.item }); actionDoubleClick.run(); // treeViewer.getTree().notifyListeners(SWT.Selection, e); shell.dispose(); // fallthrough case SWT.MouseExit: shell.dispose(); break; default: break; } } }; final Shell shell = getSite().getShell(); Listener tableListener = new Listener() { UnifiedInformationControl info = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: { if (info == null || info.getShell() == null) { break; } info.getShell().dispose(); info = null; break; } case SWT.MouseHover: { TreeItem item = treeViewer.getTree().getItem(new Point(event.x, event.y)); if (item != null) { if (info != null && info.getShell() != null && !info.getShell().isDisposed()) { info.getShell().dispose(); } info = new UnifiedInformationControl(shell, SWT.NONE, new HTMLTextPresenter(false)); info.getStyledTextWidget().setData("_TREEITEM", item); //$NON-NLS-1$ info.getStyledTextWidget().setData("_SHELL", info.getShell()); //$NON-NLS-1$ info.getStyledTextWidget().addListener(SWT.MouseExit, labelListener); // info.getStyledTextWidget().addListener(SWT.MouseDown, labelListener); info.getStyledTextWidget().addListener(SWT.MouseDoubleClick, labelListener); Object data = item.getData(); String txt = null; if (data instanceof IAction) { IAction action = (IAction) data; txt = action.getToolTipText(); } else if (data instanceof IPath) { IPath path = (IPath) data; txt = path.toOSString(); } if (txt != null) { if (txt.indexOf("<") != -1) //$NON-NLS-1$ { txt = txt.replaceAll("<", "<"); //$NON-NLS-1$ //$NON-NLS-2$ } info.setSizeConstraints(300, 500); info.setInformation(txt); StyledText styledText = info.getStyledTextWidget(); GC gc = new GC(styledText); int width = gc.getFontMetrics().getAverageCharWidth(); width = ((txt.length() + 2) * width); Rectangle rect = item.getBounds(0); Point pt = treeViewer.getTree().toDisplay(20 + rect.x, rect.y); info.setSize(width, 0); info.setLocation(pt); info.setVisible(true); } } } default: break; } } }; treeViewer.getTree().addListener(SWT.Dispose, tableListener); treeViewer.getTree().addListener(SWT.KeyDown, tableListener); treeViewer.getTree().addListener(SWT.MouseMove, tableListener); treeViewer.getTree().addListener(SWT.MouseHover, tableListener); return treeViewer; }
From source file:com.aptana.ide.editors.views.profiles.ProfilesView.java
License:Open Source License
/** * createTreeViewer/*w w w . j av a 2 s . c o m*/ * * @param parent * @return TreeViewer */ protected TreeViewer createTreeViewer(Composite parent) { final TreeViewer treeViewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL)); GridData tvData = new GridData(SWT.FILL, SWT.FILL, true, true); treeViewer.getTree().setLayoutData(tvData); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { Object[] paths = ((ITreeSelection) treeViewer.getSelection()).toArray(); actionMakeCurrent.setEnabled(paths.length == 1 && paths[0] instanceof Profile); for (int i = 0; i < paths.length; i++) { if (paths[i] instanceof Profile) { actionMoveDown.setEnabled(false); actionMoveUp.setEnabled(false); return; } } actionMoveDown.setEnabled(true); actionMoveUp.setEnabled(true); } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { StyledText label = (StyledText) event.widget; Shell shell = (Shell) label.getData("_SHELL"); //$NON-NLS-1$ switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //$NON-NLS-1$ // Assuming table is single select, set the selection as if // the mouse down event went through to the table treeViewer.getTree().setSelection(new TreeItem[] { (TreeItem) e.item }); treeViewer.getTree().notifyListeners(SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; default: break; } } }; final Shell shell = getSite().getShell(); Listener tableListener = new Listener() { UnifiedInformationControl info = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: { if (info == null || info.getShell() == null) { break; } info.getShell().dispose(); info = null; break; } case SWT.MouseHover: { TreeItem item = treeViewer.getTree().getItem(new Point(event.x, event.y)); if (item != null) { if (info != null && info.getShell() != null && !info.getShell().isDisposed()) { info.getShell().dispose(); } info = new UnifiedInformationControl(shell, SWT.NONE, new HTMLTextPresenter(false)); info.getStyledTextWidget().setData("_TREEITEM", item); //$NON-NLS-1$ info.getStyledTextWidget().setData("_SHELL", info.getShell()); //$NON-NLS-1$ info.getStyledTextWidget().addListener(SWT.MouseExit, labelListener); info.getStyledTextWidget().addListener(SWT.MouseDown, labelListener); Object data = item.getData(); String txt = null; if (data instanceof Profile) { Profile profile = (Profile) data; txt = StringUtils.format(Messages.ProfilesView_ProfileItems, new Object[] { profile.getName(), Integer.toString(profile.getURIs().length) }); } else if (data instanceof ProfileURI) { ProfileURI uri = (ProfileURI) data; txt = StringUtils.urlDecodeFilename(uri.getURI().toCharArray()); } if (txt != null) { info.setSizeConstraints(300, 500); info.setInformation(txt); StyledText styledText = info.getStyledTextWidget(); GC gc = new GC(styledText); int width = gc.getFontMetrics().getAverageCharWidth(); width = ((txt.length() + 2) * width); Rectangle rect = item.getBounds(0); Point pt = treeViewer.getTree().toDisplay(20 + rect.x, rect.y); info.setSize(width, 0); info.setLocation(pt); info.setVisible(true); } } } default: break; } } }; treeViewer.getTree().addListener(SWT.Dispose, tableListener); treeViewer.getTree().addListener(SWT.KeyDown, tableListener); treeViewer.getTree().addListener(SWT.MouseMove, tableListener); treeViewer.getTree().addListener(SWT.MouseHover, tableListener); return treeViewer; }
From source file:com.aptana.ide.syncing.ui.old.views.SmartSyncViewer.java
License:Open Source License
private TreeViewer createContents(final Composite parent) { final TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER); viewer.setContentProvider(fContentProvider = new SmartSyncContentProvider()); viewer.setLabelProvider(fLabelProvider = new SmartSyncLabelProvider(parent.getDisplay())); Tree tree = viewer.getTree(); tree.setLinesVisible(true);/*from ww w . j av a 2 s. c o m*/ tree.setHeaderVisible(true); viewer.setAutoExpandLevel(2); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fInitBackground = new Color(tree.getDisplay(), 175, 238, 238); fProgressBackground = new Color(tree.getDisplay(), 72, 209, 204); tree.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { fInitBackground.dispose(); fProgressBackground.dispose(); } }); parent.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { setWidth(parent.getSize().x); } }); // file column TreeColumn file = new TreeColumn(tree, SWT.LEFT); file.setWidth(250); file.setText(Messages.SmartSyncDialog_ColumnResources); file.setToolTipText(Messages.SmartSyncViewer_ColumnResourcesTooltip); // the column to specify whether the file should be skipped TreeColumn skip = new TreeColumn(tree, SWT.CENTER); skip.setWidth(40); skip.setText(Messages.SmartSyncDialog_ColumnSkip); skip.setToolTipText(Messages.SmartSyncViewer_ColumnSkipTooltip); // the state column on what will be done, if any, to the files from first end point fColumnEnd1 = new TreeColumn(tree, SWT.CENTER); fColumnEnd1.setWidth(125); // the state column on what will be done, if any, to the files from second end point fColumnEnd2 = new TreeColumn(tree, SWT.CENTER); fColumnEnd2.setWidth(125); Menu menu = new Menu(tree); fShowDiffs = new MenuItem(menu, SWT.PUSH); fShowDiffs.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty() && viewer.getSelection() instanceof IStructuredSelection) { Object selection = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (selection instanceof SyncFile) { SyncFile file = (SyncFile) selection; if (file.getSyncState() == SyncState.ClientItemIsNewer || file.getSyncState() == SyncState.ServerItemIsNewer) { final VirtualFileSyncPair pair = file.getPair(); FileStoreCompareEditorInput input = new FileStoreCompareEditorInput( new CompareConfiguration()); input.setLeftFileStore(pair.getSourceFile()); IFileStore destinationFile = pair.getDestinationFile(); String name = destinationFile.getName(); if (destinationFile instanceof IExtendedFileStore) { // this is a remote file, so downloads to a local temp copy first for speed purpose try { File localFile = destinationFile.toLocalFile(EFS.CACHE, null); destinationFile = EFS.getLocalFileSystem() .getStore(Path.fromOSString(localFile.getAbsolutePath())); } catch (CoreException ce) { // logs as warning since we will fall back to use the remote file store directly in // this case IdeLog.logWarning(SyncingUIPlugin.getDefault(), ce); } } input.setRightFileStore(destinationFile, name); input.initializeCompareConfiguration(); CompareUI.openCompareDialog(input); } } } } }); fShowDiffs.setImage(SyncingUIPlugin.getImage("icons/full/obj16/compare_view.gif")); //$NON-NLS-1$ fShowDiffs.setText(Messages.SmartSyncDialog_ShowDiffs); fShowDiffs.setEnabled(true); tree.setMenu(menu); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (!viewer.getSelection().isEmpty() && viewer.getSelection() instanceof IStructuredSelection) { Object selection = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (selection instanceof SyncFile) { SyncFile file = (SyncFile) selection; if (file.getSyncState() == SyncState.ClientItemIsNewer || file.getSyncState() == SyncState.ServerItemIsNewer) { fShowDiffs.setEnabled(true); return; } } } fShowDiffs.setEnabled(false); } }); viewer.setCellEditors(new CellEditor[] { null, new CheckboxCellEditor(), null, null }); viewer.setColumnProperties( new String[] { Messages.SmartSyncDialog_ColumnName, Messages.SmartSyncDialog_ColumnSkip, Messages.SmartSyncDialog_ColumnLocal, Messages.SmartSyncDialog_ColumnRemote }); return viewer; }
From source file:com.aptana.ide.syncing.ui.views.ConnectionPointComposite.java
License:Open Source License
protected Composite createControl(Composite parent) { Composite main = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = 0;/*from w w w .ja v a 2s . co m*/ layout.marginWidth = 0; layout.verticalSpacing = 0; main.setLayout(layout); Composite top = createTopComposite(main); top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); Composite path = createPathComposite(main); path.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); TreeViewer treeViewer = createTreeViewer(main); treeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); treeViewer.getTree().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { getControlThemerFactory().dispose(fTreeViewer); } }); return main; }
From source file:com.aptana.ide.syncing.ui.views.SmartSyncViewer.java
License:Open Source License
private TreeViewer createContents(final Composite parent) { final TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER); viewer.setContentProvider(fContentProvider = new SmartSyncContentProvider()); viewer.setLabelProvider(fLabelProvider = new SmartSyncLabelProvider(parent.getDisplay())); Tree tree = viewer.getTree(); tree.setLinesVisible(true);//from w w w .java 2s. c om tree.setHeaderVisible(true); viewer.setAutoExpandLevel(2); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fInitBackground = new Color(tree.getDisplay(), 175, 238, 238); fProgressBackground = new Color(tree.getDisplay(), 72, 209, 204); tree.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { fInitBackground.dispose(); fProgressBackground.dispose(); } }); parent.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { setWidth(parent.getSize().x); } }); // file column TreeColumn file = new TreeColumn(tree, SWT.LEFT); file.setWidth(250); file.setText(Messages.SmartSyncDialog_ColumnResources); file.setToolTipText(Messages.SmartSyncViewer_ColumnResourcesTooltip); // the column to specify whether the file should be skipped TreeColumn skip = new TreeColumn(tree, SWT.CENTER); skip.setWidth(40); skip.setText(Messages.SmartSyncDialog_ColumnSkip); skip.setToolTipText(Messages.SmartSyncViewer_ColumnSkipTooltip); // the state column on what will be done, if any, to the files from first end point fColumnEnd1 = new TreeColumn(tree, SWT.CENTER); fColumnEnd1.setWidth(125); // the state column on what will be done, if any, to the files from second end point fColumnEnd2 = new TreeColumn(tree, SWT.CENTER); fColumnEnd2.setWidth(125); Menu menu = new Menu(tree); fShowDiffs = new MenuItem(menu, SWT.PUSH); fShowDiffs.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty() && viewer.getSelection() instanceof IStructuredSelection) { Object selection = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (selection instanceof SyncFile) { SyncFile file = (SyncFile) selection; if (file.getSyncState() == SyncState.ClientItemIsNewer || file.getSyncState() == SyncState.ServerItemIsNewer) { final VirtualFileSyncPair pair = file.getPair(); File local = null; try { local = pair.getSourceFile().toLocalFile(EFS.CACHE, null); } catch (CoreException ex) { ex.printStackTrace(); } FileCompareEditorInput input = new FileCompareEditorInput(new CompareConfiguration()) { protected void prepareFiles() { File temp = null; try { temp = pair.getDestinationFile().toLocalFile(EFS.CACHE, null); } catch (CoreException e) { e.printStackTrace(); } setRightResource(temp); } }; input.setLeftResource(local); CompareUI.openCompareDialog(input); } } } } }); fShowDiffs.setImage(SyncingUIPlugin.getImage("icons/full/obj16/compare_view.gif")); //$NON-NLS-1$ fShowDiffs.setText(Messages.SmartSyncDialog_ShowDiffs); fShowDiffs.setEnabled(true); tree.setMenu(menu); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (!viewer.getSelection().isEmpty() && viewer.getSelection() instanceof IStructuredSelection) { Object selection = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (selection instanceof SyncFile) { SyncFile file = (SyncFile) selection; if (file.getSyncState() == SyncState.ClientItemIsNewer || file.getSyncState() == SyncState.ServerItemIsNewer) { fShowDiffs.setEnabled(true); return; } } } fShowDiffs.setEnabled(false); } }); viewer.setCellEditors(new CellEditor[] { null, new CheckboxCellEditor(), null, null }); viewer.setColumnProperties( new String[] { Messages.SmartSyncDialog_ColumnName, Messages.SmartSyncDialog_ColumnSkip, Messages.SmartSyncDialog_ColumnLocal, Messages.SmartSyncDialog_ColumnRemote }); return viewer; }
From source file:com.aptana.ide.views.outline.UnifiedOutlineProvider.java
License:Open Source License
/** * package access method called only from unified outline page * //from w w w . ja v a 2 s.c om * @param unifiedOutlinePage */ void pageActivated(IUnifiedOutlinePage unifiedOutlinePage) { setOutlinePage(unifiedOutlinePage); for (Iterator<Providers> it = _providersByLanguage.values().iterator(); it.hasNext();) { Providers name = it.next(); ITreeContentProvider contentProvider = name.contentProvider; if (contentProvider instanceof IOutlineContentProviderExtension) { IOutlineContentProviderExtension resolver = (IOutlineContentProviderExtension) contentProvider; resolver.pageActivated(_resolver); TreeViewer treeViewer = unifiedOutlinePage.getTreeViewer(); if (treeViewer != null && treeViewer.getTree() != null && !treeViewer.getTree().isDisposed()) { treeViewer.refresh(); } } } }
From source file:com.aptana.ide.views.outline.UnifiedOutlineProvider.java
License:Open Source License
/** * package access method called only from unified outline page * //from w w w .j a v a 2 s . c om * @param unifiedOutlinePage */ void pageClosed(IUnifiedOutlinePage unifiedOutlinePage) { for (Iterator<Providers> it = _providersByLanguage.values().iterator(); it.hasNext();) { Providers name = it.next(); ITreeContentProvider contentProvider = name.contentProvider; if (contentProvider instanceof IOutlineContentProviderExtension) { IOutlineContentProviderExtension resolver = (IOutlineContentProviderExtension) contentProvider; resolver.pageClosed(_resolver); TreeViewer treeViewer = unifiedOutlinePage.getTreeViewer(); if (treeViewer != null && !treeViewer.getTree().isDisposed()) { treeViewer.refresh(); } } } }