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

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

Introduction

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

Prototype

public ViewerComparator() 

Source Link

Document

Creates a new ViewerComparator , which uses the default comparator to sort strings.

Usage

From source file:com.atlassian.connector.eclipse.internal.crucible.ui.wizards.SelectChangesetsFromCruciblePage.java

License:Open Source License

private void createChangesViewer(Composite parent) {
    Tree tree = new Tree(parent, SWT.MULTI | SWT.BORDER);
    availableTreeViewer = new TreeViewer(tree);

    GridDataFactory.fillDefaults().grab(true, true).hint(300, 220).applyTo(tree);
    availableTreeViewer.setLabelProvider(new ChangesetLabelProvider());
    availableTreeViewer.setContentProvider(new ChangesetContentProvider());
    availableTreeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
    availableTreeViewer.setComparator(new ViewerComparator() {
        @Override//from w  w  w .  j  ava2s  .  c  om
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof Change && e2 instanceof Change) {
                return ((Change) e2).getDate().compareTo(((Change) e1).getDate());
            }
            return super.compare(viewer, e1, e2);
        }
    });

    tree.setMenu(createChangesContextMenu());

    tree.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            updateButtonEnablement();
        }
    });
    availableTreeViewer.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent event) {
            // ignore
        }

        public void treeExpanded(TreeExpansionEvent event) {
            // first time of expanding: retrieve first 10 changesets
            final Object object = event.getElement();
            if (object instanceof Repository) {
                refreshRepository((Repository) object);
            }

        }
    });
    availableTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object object = selection.getFirstElement();
            if (availableTreeViewer.isExpandable(object)) {
                if (!availableTreeViewer.getExpandedState(object) && object instanceof Repository) {
                    refreshRepository((Repository) object);
                    return;
                }
                availableTreeViewer.setExpandedState(object, !availableTreeViewer.getExpandedState(object));
            }
        }
    });
}

From source file:com.atlassian.connector.eclipse.internal.crucible.ui.wizards.SelectScmChangesetsPage.java

License:Open Source License

private void createLeftViewer(Composite parent) {
    Tree tree = new Tree(parent, SWT.MULTI | SWT.BORDER);
    availableTreeViewer = new TreeViewer(tree);

    GridDataFactory.fillDefaults().grab(true, true).hint(300, 220).applyTo(tree);
    availableTreeViewer.setLabelProvider(new ChangesetLabelProvider());
    availableTreeViewer.setContentProvider(new ChangesetContentProvider());
    availableTreeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
    availableTreeViewer.setComparator(new ViewerComparator() {
        @Override//w w  w . j a va 2 s.  c  o m
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof ICustomChangesetLogEntry && e2 instanceof ICustomChangesetLogEntry) {
                return ((ICustomChangesetLogEntry) e2).getDate()
                        .compareTo(((ICustomChangesetLogEntry) e1).getDate());
            }
            return super.compare(viewer, e1, e2);
        }
    });
    availableTreeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
    final Menu contextMenuSource = new Menu(getShell(), SWT.POP_UP);
    tree.setMenu(contextMenuSource);
    addChangesetMenuItem = new MenuItem(contextMenuSource, SWT.PUSH);
    addChangesetMenuItem.setText("Add to Review");

    new MenuItem(contextMenuSource, SWT.SEPARATOR);

    addChangesetMenuItem.setEnabled(false);
    getNextRevisionsMenuItem = new MenuItem(contextMenuSource, SWT.PUSH);
    getNextRevisionsMenuItem.setText(String.format("Get %d More Revisions", LIMIT));
    getNextRevisionsMenuItem.setEnabled(false);
    getNextRevisionsMenuItem.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            TreeSelection selection = getTreeSelection(availableTreeViewer);
            if (selection != null) {
                Iterator<Object> iterator = (selection).iterator();
                Set<ScmRepository> alreadyDone = new TreeSet<ScmRepository>();
                while (iterator.hasNext()) {
                    Object element = iterator.next();
                    ScmRepository repository = null;
                    if (element instanceof ICustomChangesetLogEntry) {
                        repository = ((ICustomChangesetLogEntry) element).getRepository();
                    } else if (element instanceof ScmRepository) {
                        repository = (ScmRepository) element;
                    }
                    if (repository != null && !alreadyDone.contains(repository)) {
                        SortedSet<ICustomChangesetLogEntry> logEntries = availableLogEntries.get(repository);
                        int currentNumberOfEntries = logEntries == null ? 0 : logEntries.size();
                        updateChangesets(repository, currentNumberOfEntries + LIMIT);
                        alreadyDone.add(repository);
                    }
                }
            } else {
                //update all
                for (ScmRepository repository : availableLogEntries.keySet()) {
                    SortedSet<ICustomChangesetLogEntry> logEntries = availableLogEntries.get(repository);
                    int currentNumberOfEntries = logEntries == null ? 0 : logEntries.size();
                    updateChangesets(repository, currentNumberOfEntries + LIMIT);
                }
            }
        }
    });
    addChangesetMenuItem.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            addChangesets();
            updateButtonEnablement();
        }
    });
    tree.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            updateButtonEnablement();
        }
    });
    availableTreeViewer.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent event) {
            // ignore
        }

        public void treeExpanded(TreeExpansionEvent event) {
            // first time of expanding: retrieve first 10 changesets
            final Object object = event.getElement();
            if (object instanceof ScmRepository) {
                refreshRepository((ScmRepository) object);
            }

        }
    });
    availableTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object object = selection.getFirstElement();
            if (availableTreeViewer.isExpandable(object)) {
                if (!availableTreeViewer.getExpandedState(object) && object instanceof ScmRepository) {
                    refreshRepository((ScmRepository) object);
                    return;
                }
                availableTreeViewer.setExpandedState(object, !availableTreeViewer.getExpandedState(object));
            }
        }
    });
}

From source file:com.bdaum.zoom.ui.internal.preferences.HoverPreferencePage.java

License:Open Source License

@SuppressWarnings("unused")
private Composite createTemplatesPage(CTabFolder tabFolder) {
    Composite comp = new Composite(tabFolder, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    comp.setLayout(new GridLayout());
    new Label(comp, SWT.WRAP).setText(Messages.getString("HoverPreferencePage.define")); //$NON-NLS-1$
    new Label(comp, SWT.NONE);
    Composite composite = new Composite(comp, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout(2, false));
    viewer = new TreeViewer(composite, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = 250;//from  w  w w  . j  a v a 2 s. c  o  m
    viewer.getTree().setLayoutData(layoutData);
    viewer.setContentProvider(new ITreeContentProvider() {
        @Override
        public boolean hasChildren(Object element) {
            return element instanceof Category;
        }

        @Override
        public Object getParent(Object element) {
            if (element instanceof HoverNode)
                return ((HoverNode) element).getParent();
            return null;
        }

        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Object[])
                return (Object[]) inputElement;
            return null;
        }

        @Override
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof Category)
                return ((Category) parentElement).getChildren().toArray();
            return null;
        }
    });
    viewer.setComparator(new ViewerComparator());
    ZColumnViewerToolTipSupport.enableFor(viewer);
    TreeViewerColumn col1 = new TreeViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(280);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return element.toString();
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof HoverNode && UiActivator.getDefault().getShowHover())
                return ((HoverNode) element).getContribution().getDescription();
            return super.getToolTipText(element);
        }
    });
    viewer.addDoubleClickListener(this);
    viewer.addSelectionChangedListener(this);
    TreeViewerColumn col2 = new TreeViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(80);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof HoverNode)
                return testForUnModified((HoverNode) element)
                        ? Messages.getString("HoverPreferencePage.default") //$NON-NLS-1$
                        : Messages.getString("HoverPreferencePage.modified"); //$NON-NLS-1$
            return ""; //$NON-NLS-1$
        }
    });
    viewer.addDoubleClickListener(this);
    viewer.addSelectionChangedListener(this);
    Composite buttonArea = new Composite(composite, SWT.NONE);
    buttonArea.setLayoutData(new GridData(SWT.END, SWT.FILL, false, true));
    buttonArea.setLayout(new GridLayout());
    editButton = new Button(buttonArea, SWT.PUSH);
    editButton.setText(Messages.getString("HoverPreferencePage.edit")); //$NON-NLS-1$
    editButton.addListener(SWT.Selection, this);
    resetButton = new Button(buttonArea, SWT.PUSH);
    resetButton.setText(Messages.getString("HoverPreferencePage.reset")); //$NON-NLS-1$
    resetButton.addListener(SWT.Selection, this);
    return comp;
}

From source file:com.bdaum.zoom.ui.internal.views.BookmarkView.java

License:Open Source License

@SuppressWarnings("unused")
@Override//w w  w  .ja v a 2 s .  co m
public void createPartControl(final Composite parent) {
    Composite area = new Composite(parent, SWT.NONE);
    area.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    area.setLayout(new GridLayout(1, false));
    viewer = new TableViewer(area, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), HelpContextIds.BOOKMARK_VIEW);
    final TableViewerColumn col1 = createColumn(viewer, Messages.getString("BookmarkView.image"), //$NON-NLS-1$
            COLUMNWIDTHS[0]);
    final ColumnLabelProvider assetLabelProvider = new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof Bookmark) {
                Bookmark bookmark = (Bookmark) element;
                String label = bookmark.getLabel();
                String peer = bookmark.getPeer();
                String catFile = bookmark.getCatFile();
                return catFile != null && !catFile.isEmpty() ? (peer != null) ? NLS.bind("{0} ({1}, {2})", //$NON-NLS-1$
                        new Object[] { label, peer, new File(catFile).getName() })
                        : NLS.bind("{0} ({1})", label, //$NON-NLS-1$
                                new File(catFile).getName())
                        : label;
            }
            return super.getText(element);
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof Bookmark) {
                byte[] jpegImage = ((Bookmark) element).getJpegImage();
                if (jpegImage != null && jpegImage.length > 0) {
                    Image image = ImageUtilities.loadThumbnail(getSite().getShell().getDisplay(), jpegImage,
                            Ui.getUi().getDisplayCMS(), SWT.IMAGE_JPEG, false);
                    Image smallImage = ImageUtilities.scaleSWT(image, 24, 24, true, 0, true,
                            parent.getBackground());
                    images.add(smallImage);
                    return smallImage;
                }
            }
            return null;
        }

    };
    col1.setLabelProvider(assetLabelProvider);
    col1.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof Bookmark && value instanceof String) {
                ((Bookmark) element).setLabel((String) value);
                Core.getCore().getDbManager().safeTransaction(null, element);
                viewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof Bookmark)
                return ((Bookmark) element).getLabel();
            return null;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(viewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return element instanceof Bookmark;
        }
    });
    final TableViewerColumn col2 = createColumn(viewer, Messages.getString("BookmarkView.collection"), //$NON-NLS-1$
            COLUMNWIDTHS[1]);
    final ICore core = Core.getCore();
    final ColumnLabelProvider collectionLabelProvider = new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof Bookmark) {
                SmartCollectionImpl sm = core.getDbManager().obtainById(SmartCollectionImpl.class,
                        ((Bookmark) element).getCollectionId());
                return sm == null ? "" : sm.getName(); //$NON-NLS-1$
            }
            return super.getText(element);
        }
    };
    col2.setLabelProvider(collectionLabelProvider);
    final TableViewerColumn col3 = createColumn(viewer, Messages.getString("BookmarkView.created"), //$NON-NLS-1$
            COLUMNWIDTHS[2]);
    final ColumnLabelProvider dateLabelProvider = new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof Bookmark) {
                Date createdAt = ((Bookmark) element).getCreatedAt();
                return createdAt == null ? "" : DATEFORMAT.format(createdAt); //$NON-NLS-1$
            }
            return super.getText(element);
        }
    };
    col3.setLabelProvider(dateLabelProvider);
    Table table = viewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    viewer.setContentProvider(new IStructuredContentProvider() {
        public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public void dispose() {
            disposeImages();
        }

        public Object[] getElements(Object inputElement) {
            final IDbManager dbManager = Core.getCore().getDbManager();
            List<BookmarkImpl> bookmarks = dbManager.obtainObjects(BookmarkImpl.class);
            List<BookmarkImpl> existingBookmarks = new ArrayList<BookmarkImpl>(50);
            final List<Object> tobeDeleted = new ArrayList<Object>();
            for (BookmarkImpl bookmark : bookmarks) {
                if (bookmark.getCatFile() != null && !bookmark.getCatFile().isEmpty())
                    existingBookmarks.add(bookmark);
                else if (!dbManager.exists(AssetImpl.class, bookmark.getAssetId()))
                    tobeDeleted.add(bookmark);
                else
                    existingBookmarks.add(bookmark);
            }
            if (!tobeDeleted.isEmpty())
                dbManager.safeTransaction(tobeDeleted, null);
            return existingBookmarks.toArray();
        }
    });
    viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer aViewer, Object e1, Object e2) {
            if (sortColumn == col3.getColumn()) {
                Date d1 = ((Bookmark) e1).getCreatedAt();
                Date d2 = ((Bookmark) e2).getCreatedAt();
                return d1 == null || d2 == null ? 0
                        : (sortDirection == SWT.DOWN) ? d1.compareTo(d2) : d2.compareTo(d1);
            }
            ColumnLabelProvider labelProvider;
            if (sortColumn == col1.getColumn())
                labelProvider = assetLabelProvider;
            else
                labelProvider = collectionLabelProvider;
            String s1 = labelProvider.getText(e1);
            String s2 = labelProvider.getText(e2);
            return (sortDirection == SWT.DOWN) ? s1.compareToIgnoreCase(s2) : s2.compareToIgnoreCase(s1);
        }
    });
    addPartListener();
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateActions();
        }
    });
    new ColumnLayoutManager(viewer, COLUMNWIDTHS, null);
    switchSort(table, col1.getColumn());
    new AssetDragSourceListener(this, DND.DROP_COPY | DND.DROP_MOVE);
    new BookmarkDropTargetListener(DND.DROP_MOVE | DND.DROP_COPY);
    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();
    installHoveringController();
    core.addCatalogListener(this);
    catalogOpened(false);
}

From source file:com.bdaum.zoom.ui.internal.wizards.FtpDirPage.java

License:Open Source License

private ContainerCheckedTreeViewer createViewerGroup(Composite comp) {
    urlLabel = new Label(comp, SWT.NONE);
    urlLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    ExpandCollapseGroup expandCollapseGroup = new ExpandCollapseGroup(comp, SWT.NONE);
    final ContainerCheckedTreeViewer cbViewer = new ContainerCheckedTreeViewer(comp,
            SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    expandCollapseGroup.setViewer(cbViewer);
    final Tree tree = cbViewer.getTree();
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    cbViewer.setLabelProvider(new ZColumnLabelProvider() {
        @Override/*from  w  ww.  j a v  a2  s .co  m*/
        public String getText(Object element) {
            if (element instanceof FTPFile)
                return ((FTPFile) element).getName();
            return element.toString();
        }
    });
    cbViewer.setContentProvider(new ITreeContentProvider() {
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
            fileParents.clear();
            dirPaths.clear();
        }

        public void dispose() {
            fileParents.clear();
            dirPaths.clear();
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof FTPClient) {
                FTPClient ftpClient = (FTPClient) inputElement;
                List<FTPFile> files = new ArrayList<FTPFile>();
                try {
                    FTPFile[] listFiles = ftpClient.listFiles();
                    for (FTPFile ftpFile : listFiles) {
                        if (ftpFile.isDirectory()) {
                            if (!ftpFile.getName().endsWith(".")) { //$NON-NLS-1$
                                files.add(ftpFile);
                                dirPaths.put(ftpFile, dir + '/' + ftpFile.getName());
                            }
                        } else if (filter.accept(ftpFile.getName()))
                            files.add(ftpFile);
                    }
                } catch (IOException e) {
                    // ignore
                }
                return files.toArray();
            }
            return new Object[0];
        }

        public boolean hasChildren(Object element) {
            if (element instanceof FTPFile)
                return ((FTPFile) element).isDirectory();
            return false;
        }

        public Object getParent(Object element) {
            return fileParents.get(element);
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof FTPFile) {
                FTPFile parent = (FTPFile) parentElement;
                if (parent.isDirectory()) {
                    String path = dirPaths.get(parent);
                    if (path != null)
                        try {
                            if (ftp.changeWorkingDirectory(path)) {
                                List<FTPFile> files = new ArrayList<FTPFile>();
                                for (FTPFile ftpFile : ftp.listFiles()) {
                                    if (ftpFile.isDirectory()) {
                                        if (!ftpFile.getName().endsWith(".")) { //$NON-NLS-1$
                                            files.add(ftpFile);
                                            dirPaths.put(ftpFile, path + '/' + ftpFile.getName());
                                        }
                                    } else if (filter.accept(ftpFile.getName()))
                                        files.add(ftpFile);
                                    fileParents.put(ftpFile, parent);
                                }
                                return files.toArray();
                            }
                        } catch (IOException e) {
                            // ignore
                        }
                }
            }
            return new Object[0];
        }
    });
    cbViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer v, Object e1, Object e2) {
            if (e1 instanceof FTPFile && e2 instanceof FTPFile) {
                int i1 = ((FTPFile) e1).isDirectory() ? 1 : 2;
                int i2 = ((FTPFile) e2).isDirectory() ? 1 : 2;
                if (i1 != i2)
                    return i1 - i2;
                return ((FTPFile) e1).getName().compareToIgnoreCase(((FTPFile) e2).getName());
            }
            return super.compare(v, e1, e2);
        }
    });
    cbViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            validatePage();
        }
    });
    UiUtilities.installDoubleClickExpansion(cbViewer);
    return cbViewer;
}

From source file:com.binge.workforce.widgets.internal.ContainerSelectionGroup.java

License:Open Source License

/**
 * Returns a new drill down viewer for this dialog.
 * //from w w w  . ja  v a  2s. c o  m
 * @param heightHint
 *            height hint for the drill down composite
 */
protected void createTreeViewer(int heightHint) {
    // Create drill down.
    DrillDownComposite drillDown = new DrillDownComposite(this, SWT.BORDER, imageService);
    GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
    spec.widthHint = SIZING_SELECTION_PANE_WIDTH;
    spec.heightHint = heightHint;
    drillDown.setLayoutData(spec);

    // Create tree viewer inside drill down.
    treeViewer = new TreeViewer(drillDown, SWT.NONE);
    drillDown.setChildTree(treeViewer);
    ContainerContentProvider cp = new ContainerContentProvider();
    cp.showClosedProjects(showClosedProjects);
    treeViewer.setContentProvider(cp);

    //FIXME We need a WorkbenchLabelProvider replacement
    //      treeViewer.setLabelProvider(WorkbenchLabelProvider
    //            .getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new ViewerComparator());
    treeViewer.setUseHashlookup(true);
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            containerSelectionChanged((IContainer) selection.getFirstElement()); // allow null
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();
                if (item == null) {
                    return;
                }
                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    // This has to be done after the viewer has been laid out
    treeViewer.setInput(ResourcesPlugin.getWorkspace());
}

From source file:com.conwet.wirecloud.ide.wizards.WizardProjectsImportPage.java

License:Open Source License

/**
 * Create the checkbox list for the found projects.
 *
 * @param workArea/* ww w.j a va  2  s. c om*/
 */
private void createProjectsList(Composite workArea) {

    Label title = new Label(workArea, SWT.NONE);
    title.setText(DataTransferMessages.WizardProjectsImportPage_ProjectsListTitle);

    Composite listComposite = new Composite(workArea, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginWidth = 0;
    layout.makeColumnsEqualWidth = false;
    listComposite.setLayout(layout);

    listComposite.setLayoutData(
            new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH));

    projectsList = new CheckboxTreeViewer(listComposite, SWT.BORDER);
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    gridData.widthHint = new PixelConverter(projectsList.getControl()).convertWidthInCharsToPixels(25);
    gridData.heightHint = new PixelConverter(projectsList.getControl()).convertHeightInCharsToPixels(10);
    projectsList.getControl().setLayoutData(gridData);
    projectsList.setContentProvider(new ITreeContentProvider() {

        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java
         * .lang.Object)
         */
        public Object[] getChildren(Object parentElement) {
            return null;
        }

        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.IStructuredContentProvider#getElements
         * (java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return getProjectRecords();
        }

        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java
         * .lang.Object)
         */
        public boolean hasChildren(Object element) {
            return false;
        }

        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.ITreeContentProvider#getParent(java
         * .lang.Object)
         */
        public Object getParent(Object element) {
            return null;
        }

        /*
         * (non-Javadoc)
         *
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {

        }

        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse
         * .jface.viewers.Viewer, java.lang.Object, java.lang.Object)
         */
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

    });

    projectsList.setLabelProvider(new ProjectLabelProvider());

    projectsList.addCheckStateListener(new ICheckStateListener() {
        /*
         * (non-Javadoc)
         *
         * @see
         * org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged
         * (org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        public void checkStateChanged(CheckStateChangedEvent event) {
            ProjectRecord element = (ProjectRecord) event.getElement();
            if (element.hasConflicts) {
                projectsList.setChecked(element, false);
            }
            setPageComplete(projectsList.getCheckedElements().length > 0);
        }
    });

    projectsList.setInput(this);
    projectsList.setComparator(new ViewerComparator());
    createSelectionButtons(listComposite);
}

From source file:com.google.cloud.tools.eclipse.projectselector.ProjectSelector.java

License:Apache License

public ProjectSelector(Composite parent) {
    super(parent, SWT.NONE);
    setLayout(new GridLayout());

    Composite tableComposite = new Composite(this, SWT.NONE);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite);

    tableViewer = new TableViewer(tableComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    createColumns(tableColumnLayout);/*from ww  w.j  ava  2 s  .  com*/
    tableViewer.getTable().setHeaderVisible(true);
    input = WritableList.withElementType(GcpProject.class);
    ViewerSupport.bind(tableViewer, input, PojoProperties.values(new String[] { "name", //$NON-NLS-1$
            "id" })); //$NON-NLS-1$
    tableViewer.setComparator(new ViewerComparator());

    statusLink = new Link(this, SWT.NONE);
    statusLink.addSelectionListener(new OpenUriSelectionListener(new ErrorDialogErrorHandler(getShell())));
    statusLink.setText("");
    GridDataFactory.fillDefaults().applyTo(statusLink);
}

From source file:com.google.dart.tools.ui.callhierarchy.CallHierarchyViewPart.java

License:Open Source License

private void updateView() {
    if (currentInputElements != null) {
        showPage(PAGE_VIEWER);/*from   w w w .j  ava2  s. co  m*/

        int includeMask = getIncludeMask();
        CallHierarchy.getDefault().setSearchScope(getSearchScope(includeMask));

        // set input to null so that setComparator does not cause a refresh on the old contents:
        callHierarchyViewer.setInput(null);
        if (currentCallMode == CALL_MODE_CALLERS) {
            // sort caller hierarchy alphabetically (bug 111423) and make RealCallers the last in 'Expand With Constructors' mode
            callHierarchyViewer.setComparator(new ViewerComparator() {
                @Override
                public int category(Object element) {
                    return element instanceof RealCallers ? 1 : 0;
                }
            });
            callHierarchyViewer.setMethodWrappers(getCallerRoots());
        } else {
            callHierarchyViewer.setComparator(null);
            callHierarchyViewer.setMethodWrappers(getCalleeRoots());
        }
        setContentDescription(includeMask);
    }
}

From source file:com.google.dart.tools.ui.internal.dialogs.OverrideMethodDialog.java

License:Open Source License

public OverrideMethodDialog(Shell shell, CompilationUnitEditor editor, Type type, boolean isSubType)
        throws DartModelException {
    super(shell, new BindingLabelProvider(), new OverrideMethodContentProvider(), editor, type, false);

    //      IMethod[] methods = type.getMethods();
    String parentName = type.getSuperclassName();
    Type superType = type.getLibrary().findType(parentName);
    // TODO(brianwilkerson) Do the following two lines need to filter out
    // constructors?
    Method pMethods[] = superType.getMethods();
    Method tMethods[] = type.getMethods();

    Method parentMethods[] = new Method[0];

    if (OverrideMethodDialog.SHOW_ONLY_SUPER) {

        ArrayList<Method> show = new ArrayList<Method>();
        start: for (int i = 0; pMethods != null && i < pMethods.length; i++) {
            for (int k = 0; k < tMethods.length; k++) {
                if (tMethods[k].getElementName().equals(pMethods[i].getElementName())) {
                    continue start;
                }/*w w w .  java  2s . c  o  m*/
            }
            show.add(pMethods[i]);

        }
        parentMethods = show.toArray(new Method[show.size()]);

    }

    // IMethodBinding[] toImplementArray= (IMethodBinding[])
    // toImplement.toArray(new IMethodBinding[toImplement.size()]);
    setInitialSelections(parentMethods);

    HashSet<Method> expanded = new HashSet<Method>(parentMethods.length);
    for (int i = 0; i < parentMethods.length; i++) {
        expanded.add(parentMethods[i]);
    }

    HashSet<Method> types = new HashSet<Method>(parentMethods.length);
    for (int i = 0; i < parentMethods.length; i++) {
        types.add(parentMethods[i]);
    }

    Method[] typesArrays = types.toArray(new Method[types.size()]);
    //OverrideMethodComparator comparator = null;// new OverrideMethodComparator(binding);
    if (expanded.isEmpty() && typesArrays.length > 0) {
        //comparator.sort(null, typesArrays);
        expanded.add(typesArrays[0]);
    }
    setExpandedElements(expanded.toArray());

    ((OverrideMethodContentProvider) getContentProvider()).init(parentMethods);

    setTitle(DartUIMessages.OverrideMethodDialog_dialog_title);
    setMessage(null);
    setValidator(new OverrideMethodValidator(parentMethods.length));
    // TODO(devoncarew): replace this with OverrideMethodComparator
    setComparator(new ViewerComparator());
    setContainerMode(true);
    setSize(60, 18);
    setInput(new Object());
}