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

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

Introduction

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

Prototype

public TreeViewer(Composite parent, int style) 

Source Link

Document

Creates a tree viewer on a newly-created tree control under the given parent.

Usage

From source file:com.application.areca.launcher.gui.composites.SearchComposite.java

License:Open Source License

private Composite buildBottomComposite(Composite parent) {
    Composite panel = new Composite(parent, SWT.NONE);
    panel.setLayout(new GridLayout(2, false));

    TreeViewer tv = new TreeViewer(panel, SWT.BORDER);
    tree = tv.getTree();/*from w  w  w  .j a  v  a  2s  . c o m*/
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    tree.setLinesVisible(AbstractWindow.getTableLinesVisible());
    tree.addMouseListener(this);

    lblLog = new Label(panel, SWT.NONE);
    lblLog.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    btnClear = new Button(panel, SWT.PUSH);
    btnClear.setLayoutData(new GridData(SWT.RIGHT, SWT.BOTTOM, false, false));
    btnClear.setText(RM.getLabel("search.clearall.label"));
    btnClear.addListener(SWT.Selection, this);

    return panel;
}

From source file:com.application.areca.launcher.gui.composites.TreeComposite.java

License:Open Source License

public TreeComposite(Composite parent) {
    super(parent, SWT.NONE);
    setLayout(new FillLayout());

    TreeViewer viewer = new TreeViewer(this, SWT.BORDER);
    tree = viewer.getTree();// w ww  . ja va 2 s  . c om
    tree.addMouseListener(this);
    tree.addListener(SWT.Selection, this);

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (application.isCurrentObjectTarget()) {
                application.showEditTarget(application.getCurrentTarget());
            } else if (application.isCurrentObjectProcess()) {
                application.showEditGroup(application.getCurrentTargetGroup());
            }
        }
    });

    Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
    final int operation = DND.DROP_MOVE;

    final DragSource source = new DragSource(tree, operation);
    source.setTransfer(types);
    source.addDragListener(new DragSourceAdapter() {
        public void dragStart(DragSourceEvent event) {
            TreeItem[] selection = tree.getSelection();
            if (selection.length > 0 && selection[0].getData() instanceof AbstractRecoveryTarget) {
                event.doit = true;
            } else {
                event.doit = false;
            }
        };

        public void dragSetData(DragSourceEvent event) {
            event.data = "dummy data";
        }
    });

    DropTarget target = new DropTarget(tree, 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;
            if (event.item != null && isValidTreeItem((TreeItem) event.item)) {
                event.feedback |= DND.FEEDBACK_SELECT;
                event.detail = operation;
            } else {
                event.feedback |= DND.FEEDBACK_NONE;
                event.detail = DND.DROP_NONE;
            }
        }

        public void drop(DropTargetEvent event) {
            if (event.item != null) {
                TreeItem item = (TreeItem) event.item;
                AbstractRecoveryTarget draggedTarget = Application.getInstance().getCurrentTarget();
                TargetGroup sourceProcess = draggedTarget.getGroup();
                TargetGroup destinationProcess = extractRecoveryProcess(item);

                if (!destinationProcess.equals(sourceProcess)) {
                    sourceProcess.removeTarget(draggedTarget);

                    if (destinationProcess.getTargetById(draggedTarget.getId()) != null) {
                        // A target with same ID already exists
                        draggedTarget.setId(destinationProcess.getNextFreeTargetId());
                    }

                    destinationProcess.addTarget(draggedTarget);
                    draggedTarget.setGroup(destinationProcess);
                }

                application.saveProcess(sourceProcess);
                application.saveProcess(destinationProcess);
                refresh();
            }
        }
    });

    refresh();
}

From source file:com.application.areca.launcher.gui.TargetEditionWindow.java

License:Open Source License

private void initFiltersTab(Composite composite) {
    composite.setLayout(initLayout(4));/*  w  w  w  .j av a  2 s .  c om*/

    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.appnativa.studio.views.ToolboxView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.// w  w  w . jav a 2  s .co m
 */
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    drillDownAdapter = new DrillDownAdapter(viewer);
    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    viewer.setInput(getViewSite());
    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "com.appnativa.studio.viewer");
    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();

    if (viewer.getTree().getItemCount() > 2) {
        Object item = viewer.getTree().getItem(1);

        viewer.setExpandedState(item, true);
        viewer.refresh();
    }
}

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 www. jav  a  2  s . c  om*/
            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.ide.server.ui.views.GenericServersView.java

License:Open Source License

/**
 * Helper method to create the table viewer.
 * //from  ww  w  .  j av  a  2s.com
 * @param parent
 */
private void createTableViewer(Composite parent) {
    serverViewer = new TreeViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION);
    serverViewer.getTree().setLinesVisible(true);
    serverViewer.addTreeListener(new ITreeViewerListener() {

        public void treeExpanded(TreeExpansionEvent event) {
            Object server = event.getElement();
            if (server instanceof IServer) {
                ServerUIPlugin.getDefault().getPreferenceStore().setValue(
                        IPreferenceConstants.COLLAPSE_SERVER + "." + ((IServer) server).getId(), false); //$NON-NLS-1$
            }
            updateCollapseAllAction();
        }

        public void treeCollapsed(TreeExpansionEvent event) {
            Object server = event.getElement();
            if (server instanceof IServer) {
                ServerUIPlugin.getDefault().getPreferenceStore().setValue(
                        IPreferenceConstants.COLLAPSE_SERVER + "." + ((IServer) server).getId(), true); //$NON-NLS-1$
            }
            updateCollapseAllAction();
        }

    });
    PreferenceUtils.registerBackgroundColorPreference(serverViewer.getControl(),
            "com.aptana.ide.core.ui.background.color.serversView"); //$NON-NLS-1$
    PreferenceUtils.registerForegroundColorPreference(serverViewer.getControl(),
            "com.aptana.ide.core.ui.foreground.color.serversView"); //$NON-NLS-1$
    createTree();
}

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();//from   w  w w  .j a v a2s .  co m
    tree.setLinesVisible(true);
    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

private TreeViewer createTreeViewer(Composite parent) {
    fTreeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    Tree tree = fTreeViewer.getTree();/*from ww  w . j  a  va  2 s  .c o m*/
    tree.setHeaderVisible(true);

    TreeColumn column = new TreeColumn(tree, SWT.LEFT);
    column.setWidth(300);
    column.setText(COLUMN_NAMES[0]);

    column = new TreeColumn(tree, SWT.LEFT);
    column.setWidth(50);
    column.setText(COLUMN_NAMES[1]);

    column = new TreeColumn(tree, SWT.LEFT);
    column.setWidth(150);
    column.setText(COLUMN_NAMES[2]);

    fTreeViewer.setContentProvider(new FileTreeContentProvider());
    fTreeViewer.setLabelProvider(new ConnectionPointLabelProvider());
    fTreeViewer.setComparator(new FileTreeNameSorter());
    fTreeViewer.addSelectionChangedListener(this);
    fTreeViewer.addDoubleClickListener(this);

    fTreeViewer.addDragSupport(DND.DROP_COPY | DND.DROP_DEFAULT,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, this);
    fTreeViewer.addDropSupport(DND.DROP_COPY | DND.DROP_DEFAULT,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, this);

    // builds the context menu
    tree.setMenu(createMenu(tree));

    updateMenuStates();

    return fTreeViewer;
}

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();//  w ww.  j a  v a2  s  .  c om
    tree.setLinesVisible(true);
    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.model.ModelContributer.java

License:Open Source License

/**
 * @see com.aptana.ide.editors.unified.ContributedOutline#createControl(org.eclipse.swt.widgets.Composite)
 *///from   w  w  w.  j a  va  2s .  com
public void createControl(Composite parent) {
    this._treeViewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE);

    Tree tree = this._treeViewer.getTree();
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    tree.setLayout(new GridLayout(1, true));

    this._treeViewer.setLabelProvider(new ModelLabelProvider());
    this._treeViewer.setAutoExpandLevel(1);
    this._treeViewer.setContentProvider(new ModelContentProvider());
    this._treeViewer.setComparer(new IElementComparer() {
        public boolean equals(Object a, Object b) {
            boolean result = false;

            if (a instanceof Reference && b instanceof Reference) {
                Reference ref1 = (Reference) a;
                Reference ref2 = (Reference) b;

                result = ref1.getPropertyName().equals(ref2.getPropertyName());
            } else {
                result = (a == b);
            }

            return result;
        }

        public int hashCode(Object element) {
            return 0;
        }
    });

    TreeItem item = new TreeItem(tree, SWT.NONE);
    item.setText(Messages.getString("ModelContributer.Select_model_tab_to_load_outline")); //$NON-NLS-1$

    refresh();
}