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

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

Introduction

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

Prototype

public Tree getTree() 

Source Link

Document

Returns this tree viewer's tree control.

Usage

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("<", "&lt;"); //$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();
            }
        }
    }
}