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:org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.java

License:Open Source License

/**
 * The details button has been selected. Open or close the progress viewer
 * as appropriate./*from   w ww  . j  a  v  a 2  s  . co  m*/
 *  
 */
void handleDetailsButtonSelect() {
    Shell shell = getShell();
    Point shellSize = shell.getSize();
    Composite composite = (Composite) getDialogArea();
    if (viewer != null) {
        viewer.getControl().dispose();
        viewer = null;
        composite.layout();
        shell.setSize(shellSize.x, shellSize.y - viewerHeight);
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_DetailsTitle);
    } else {
        //Abort if there are no jobs visible
        if (ProgressManager.getInstance().getRootElements(Policy.DEBUG_SHOW_ALL_JOBS).length == 0) {
            detailsButton.setEnabled(false);
            return;
        }

        viewer = new DetailedProgressViewer(viewerComposite,
                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        viewer.setComparator(new ViewerComparator() {
            /*
             * (non-Javadoc)
             * 
             * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
             *      java.lang.Object, java.lang.Object)
             */
            public int compare(Viewer testViewer, Object e1, Object e2) {
                return ((Comparable) e1).compareTo(e2);
            }
        });

        viewer.setContentProvider(new ProgressViewerContentProvider(viewer, true, false) {
            public Object[] getElements(Object inputElement) {
                return super.getElements(inputElement);
            }
        });

        viewer.setLabelProvider(new ProgressLabelProvider());
        viewer.setInput(this);
        GridData viewerData = new GridData(GridData.FILL_BOTH);
        viewer.getControl().setLayoutData(viewerData);
        GridData viewerCompositeData = (GridData) viewerComposite.getLayoutData();
        viewerCompositeData.heightHint = convertHeightInCharsToPixels(10);
        viewerComposite.layout(true);
        viewer.getControl().setVisible(true);
        viewerHeight = viewerComposite.computeTrim(0, 0, 0, viewerCompositeData.heightHint).height;
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_HideTitle);
        shell.setSize(shellSize.x, shellSize.y + viewerHeight);
    }
}

From source file:org.eclipse.ui.internal.statushandlers.StatusDialog.java

License:Open Source License

/**
 * Return a viewer sorter for looking at the jobs.
 * /*  w w  w. j  ava2  s . c  o m*/
 * @return ViewerSorter
 */
private ViewerComparator getViewerComparator() {
    return new ViewerComparator() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public int compare(Viewer testViewer, Object e1, Object e2) {
            return ((Comparable) e1).compareTo(e2);
        }
    };
}

From source file:org.eclipse.ui.internal.themes.ColorsAndFontsPreferencePage.java

License:Open Source License

/**
 * Create the <code>ListViewer</code> that will contain all color
 * definitions as defined in the extension point.
 * /*  w  ww . j a v a  2  s .c  o m*/
 * @param parent
 *            the parent <code>Composite</code>.
 */
private void createTree(Composite parent) {
    labelProvider = new PresentationLabelProvider();

    // Create a custom pattern matcher that will allow
    // non-category elements to be returned in the event that their children
    // do not and also search the descriptions.
    PatternFilter filter = new PatternFilter() {
        /*
         * (non-Javadoc)
         * 
         * @see
         * org.eclipse.ui.dialogs.PatternFilter#isLeafMatch(org.eclipse.
         * jface.viewers.Viewer, java.lang.Object)
         * 
         * @since 3.7
         */
        protected boolean isLeafMatch(Viewer viewer, Object element) {
            if (super.isLeafMatch(viewer, element))
                return true;

            String text = null;
            if (element instanceof ICategorizedThemeElementDefinition)
                text = ((ICategorizedThemeElementDefinition) element).getDescription();

            return text != null ? wordMatches(text) : false;
        }
    };
    filter.setIncludeLeadingWildcard(true);

    tree = new FilteredTree(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, filter, true);
    tree.setQuickSelectionMode(true);
    GridData data = new GridData(GridData.FILL_BOTH | GridData.VERTICAL_ALIGN_FILL);
    data.widthHint = Math.max(285, convertWidthInCharsToPixels(30));
    data.heightHint = Math.max(175, convertHeightInCharsToPixels(10));
    tree.setLayoutData(data);
    myApplyDialogFont(tree.getViewer().getControl());
    Text filterText = tree.getFilterControl();
    if (filterText != null)
        myApplyDialogFont(filterText);

    tree.getViewer().setLabelProvider(labelProvider);
    tree.getViewer().setContentProvider(new ThemeContentProvider());
    tree.getViewer().setComparator(new ViewerComparator() {
        public int category(Object element) {
            if (element instanceof ThemeElementCategory)
                return 0;
            return 1;
        }
    });
    tree.getViewer().setInput(WorkbenchPlugin.getDefault().getThemeRegistry());
    tree.getViewer().addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            Object element = s.getFirstElement();
            if (tree.getViewer().isExpandable(element))
                tree.getViewer().setExpandedState(element, !tree.getViewer().getExpandedState(element));

            if (element instanceof FontDefinition)
                editFont(tree.getDisplay());
            else if (element instanceof ColorDefinition)
                editColor(tree.getDisplay());
            updateControls();
        }
    });

    restoreTreeExpansion();
    restoreTreeSelection();
}

From source file:org.eclipse.ui.internal.views.log.LogView.java

License:Open Source License

private ViewerComparator getViewerComparator(byte sortType) {
    if (sortType == PLUGIN) {
        return new ViewerComparator() {
            public int compare(Viewer viewer, Object e1, Object e2) {
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    LogEntry entry1 = (LogEntry) e1;
                    LogEntry entry2 = (LogEntry) e2;
                    return getComparator().compare(entry1.getPluginId(), entry2.getPluginId()) * PLUGIN_ORDER;
                }/*  ww  w. j a v a 2 s . com*/
                return 0;
            }
        };
    } else if (sortType == MESSAGE) {
        return new ViewerComparator() {
            public int compare(Viewer viewer, Object e1, Object e2) {
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    LogEntry entry1 = (LogEntry) e1;
                    LogEntry entry2 = (LogEntry) e2;
                    return getComparator().compare(entry1.getMessage(), entry2.getMessage()) * MESSAGE_ORDER;
                }
                return 0;
            }
        };
    } else {
        return new ViewerComparator() {
            private int indexOf(Object[] array, Object o) {
                if (o == null)
                    return -1;
                for (int i = 0; i < array.length; ++i)
                    if (o.equals(array[i]))
                        return i;
                return -1;
            }

            public int compare(Viewer viewer, Object e1, Object e2) {
                long date1 = 0;
                long date2 = 0;
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    date1 = ((LogEntry) e1).getDate().getTime();
                    date2 = ((LogEntry) e2).getDate().getTime();
                } else if ((e1 instanceof LogSession) && (e2 instanceof LogSession)) {
                    date1 = ((LogSession) e1).getDate() == null ? 0 : ((LogSession) e1).getDate().getTime();
                    date2 = ((LogSession) e2).getDate() == null ? 0 : ((LogSession) e2).getDate().getTime();
                }

                if (date1 == date2) {
                    // Everything that appears in LogView should be an AbstractEntry.
                    AbstractEntry parent = (AbstractEntry) ((AbstractEntry) e1).getParent(null);
                    Object[] children = null;
                    if (parent != null)
                        children = parent.getChildren(parent);

                    int result = 0;
                    if (children != null) {
                        // The elements in children seem to be in reverse order,
                        // i.e. latest log message first, therefore index(e2)-index(e1)
                        result = indexOf(children, e2) - indexOf(children, e1);
                    } else {
                        result = elements.indexOf(e1) - elements.indexOf(e2);
                    }
                    if (DATE_ORDER == DESCENDING)
                        result *= DESCENDING;
                    return result;
                }
                if (DATE_ORDER == DESCENDING)
                    return date1 > date2 ? DESCENDING : ASCENDING;
                return date1 < date2 ? DESCENDING : ASCENDING;
            }
        };
    }
}

From source file:org.eclipse.ui.internal.views.markers.QuickFixPage.java

License:Open Source License

/**
 * @param control/*www. j a va2  s  . c om*/
 */
private void createResolutionsList(Composite control) {
    resolutionsList = new TableViewer(control, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
    resolutionsList.setContentProvider(new IStructuredContentProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return resolutions.keySet().toArray();
        }

        /*
         * (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) {

        }
    });

    resolutionsList.setLabelProvider(new LabelProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            return ((IMarkerResolution) element).getLabel();
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
         * @since 3.7
         */
        public Image getImage(Object element) {
            return element instanceof IMarkerResolution2 ? ((IMarkerResolution2) element).getImage() : null;
        }
    });

    resolutionsList.setInput(this);

    resolutionsList.setComparator(new ViewerComparator() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public int compare(Viewer viewer, Object e1, Object e2) {
            return ((IMarkerResolution) e1).getLabel().compareTo(((IMarkerResolution) e2).getLabel());
        }
    });

    resolutionsList.addSelectionChangedListener(new ISelectionChangedListener() {
        /*
        * (non-Javadoc)
        * 
        * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
        */
        public void selectionChanged(SelectionChangedEvent event) {
            markersTable.refresh();
            setPageComplete(markersTable.getCheckedElements().length > 0);
        }
    });
}

From source file:org.eclipse.ui.internal.views.markers.TypesConfigurationArea.java

License:Open Source License

public void createContents(Composite parent) {

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;/*w  w  w.j  a  v  a2 s  . c o  m*/
    composite.setLayout(layout);

    Tree tree = new Tree(composite,
            SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
    tree.setLinesVisible(true);
    tree.setHeaderVisible(false);

    typesViewer = new CheckboxTreeViewer(tree);
    initializeFontMetrics(tree);

    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    gridData.widthHint = Dialog.convertVerticalDLUsToPixels(getFontMetrics(), 100);
    gridData.heightHint = Dialog.convertVerticalDLUsToPixels(getFontMetrics(), 50);

    final ITreeContentProvider typesContentProvider = getTypesContentProvider();
    typesViewer.getControl().setLayoutData(gridData);
    typesViewer.setContentProvider(typesContentProvider);
    typesViewer.setLabelProvider(new LabelProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            return ((TypesEntry) element).getLabel();
        }
    });
    typesViewer.setComparator(new ViewerComparator() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public int compare(Viewer viewer, Object e1, Object e2) {
            return ((TypesEntry) e1).getLabel().compareTo(((TypesEntry) e2).getLabel());
        }
    });
    typesViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            boolean checked = event.getChecked();
            typesViewer.setGrayed(element, false);
            setChildrenChecked(element, checked);
            setParentCheckState(element, checked);
        }

        /**
         * Set the check state of the children of element to
         * <code>true</code>.
         * 
         * @param element
         * @param checked
         */
        private void setChildrenChecked(Object element, boolean checked) {

            Object[] children = typesContentProvider.getChildren(element);
            if (children.length > 0) {
                for (int i = 0; i < children.length; i++) {
                    typesViewer.setChecked(children[i], checked);
                }
            }

        }

        /**
         * Update the parent check state based on the state of the element
         * 
         * @param element
         * @param checked
         */
        private void setParentCheckState(Object element, boolean checked) {

            Object parent = typesContentProvider.getParent(element);
            if (parent == null)
                return;

            Object[] children = typesContentProvider.getChildren(parent);

            for (int i = 0; i < children.length; i++) {// At least one
                // different
                if (typesViewer.getChecked(children[i]) != checked) {
                    typesViewer.setGrayChecked(parent, true);
                    return;
                }
            }
            typesViewer.setGrayed(parent, false);
            // All are the same - update the parent
            typesViewer.setChecked(parent, checked);

        }
    });

    Composite buttonComposite = new Composite(composite, SWT.NONE);
    GridLayout buttonLayout = new GridLayout();
    buttonLayout.marginWidth = 0;
    buttonComposite.setLayout(buttonLayout);
    GridData buttonsData = new GridData();
    buttonsData.verticalAlignment = GridData.BEGINNING;
    buttonComposite.setLayoutData(buttonsData);

    Button selectAllButton = new Button(buttonComposite, SWT.PUSH);
    selectAllButton.setText(MarkerMessages.filtersDialog_selectAllTypes);
    selectAllButton.addSelectionListener(getSelectAllButtonListener(typesContentProvider, true));
    setButtonLayoutData(selectAllButton);

    Button deselectAllButton = new Button(buttonComposite, SWT.PUSH);
    deselectAllButton.setText(MarkerMessages.filtersDialog_deselectAllTypes);
    deselectAllButton.addSelectionListener(getSelectAllButtonListener(typesContentProvider, false));
    setButtonLayoutData(deselectAllButton);
}

From source file:org.eclipse.ui.internal.wizards.datatransfer.SmartImportJobReportDialog.java

License:Open Source License

@Override
public Composite createDialogArea(Composite parent) {
    getShell().setText(DataTransferMessages.SmartImportReport_importedProjects);
    final Composite res = new Composite(parent, SWT.NONE);
    res.setLayout(new GridLayout(2, false));
    res.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    //// Nested projects
    final Label nestedProjectsLabel = new Label(res, SWT.NONE);
    nestedProjectsLabel.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1));
    nestedProjectsLabel.setText(NLS.bind(DataTransferMessages.SmartImportReport_importedProjectsWithCount, 0));

    final TableViewer nestedProjectsTable = new TableViewer(res);
    nestedProjectsTable.setContentProvider(ArrayContentProvider.getInstance());
    nestedProjectsTable.setComparator(new ViewerComparator() {
        @Override/*w  w  w . j  a  v a 2  s  .com*/
        public int compare(Viewer viewer, Object o1, Object o2) {
            IProject project1 = ((Entry<IProject, List<ProjectConfigurator>>) o1).getKey();
            IProject project2 = ((Entry<IProject, List<ProjectConfigurator>>) o2).getKey();
            return project1.getLocation().toString().compareTo(project2.getLocation().toString());
        }
    });
    nestedProjectsTable.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            Entry<IProject, List<ProjectConfigurator>> entry = (Entry<IProject, List<ProjectConfigurator>>) element;
            return entry.getKey().getLocation().toFile().getAbsolutePath()
                    .startsWith(job.getRoot().getAbsolutePath());
        }
    } });
    nestedProjectsTable.getTable().setHeaderVisible(true);
    GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
    tableLayoutData.heightHint = 200;
    nestedProjectsTable.getControl().setLayoutData(tableLayoutData);

    TableViewerColumn projectColumn = new TableViewerColumn(nestedProjectsTable,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
    projectColumn.getColumn().setWidth(200);
    projectColumn.getColumn().setText(DataTransferMessages.SmartImportReport_project);
    projectColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Entry<IProject, List<ProjectConfigurator>>) element).getKey().getName();
        }
    });

    TableViewerColumn configuratorsColumn = new TableViewerColumn(nestedProjectsTable, SWT.NONE);
    configuratorsColumn.getColumn().setWidth(200);
    configuratorsColumn.getColumn().setText(DataTransferMessages.SmartImportReport_natures);
    configuratorsColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            StringBuilder builder = new StringBuilder();
            for (ProjectConfigurator configurator : ((Entry<IProject, List<ProjectConfigurator>>) element)
                    .getValue()) {
                builder.append(ProjectConfiguratorExtensionManager.getLabel(configurator));
                builder.append(", "); //$NON-NLS-1$
            }
            ;
            if (builder.length() > 0) {
                builder.delete(builder.length() - 2, builder.length());
            }
            return builder.toString();
        }
    });

    TableViewerColumn relativePathColumn = new TableViewerColumn(nestedProjectsTable, SWT.LEFT);
    relativePathColumn.getColumn().setText(DataTransferMessages.SmartImportReport_relativePath);
    relativePathColumn.getColumn().setWidth(300);
    relativePathColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IProject project = ((Entry<IProject, List<ProjectConfigurator>>) element).getKey();
            IPath projectLocation = project.getLocation();
            return projectLocation.toFile().getAbsolutePath()
                    .substring(job.getRoot().getAbsolutePath().length());
        }
    });
    nestedProjectsTable.setInput(this.job.getConfiguredProjects().entrySet());

    //// Errors
    final Label errorsLabel = new Label(res, SWT.NONE);
    GridData errorLabelLayoutData = new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1);
    errorLabelLayoutData.exclude = true;
    errorsLabel.setLayoutData(errorLabelLayoutData);
    errorsLabel.setText(NLS.bind(DataTransferMessages.SmartImportReport_importErrors, 0));

    final TableViewer errorsTable = new TableViewer(res);
    errorsTable.setContentProvider(ArrayContentProvider.getInstance());
    errorsTable.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            IPath location1 = ((Entry<IPath, Exception>) o1).getKey();
            IPath location2 = ((Entry<IPath, Exception>) o2).getKey();
            return location1.toString().compareTo(location2.toString());
        }
    });
    errorsTable.getTable().setHeaderVisible(true);
    GridData errorTableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
    errorTableLayoutData.heightHint = 100;
    errorTableLayoutData.exclude = true;
    errorsTable.getControl().setLayoutData(errorTableLayoutData);

    TableViewerColumn errorRelativePathColumn = new TableViewerColumn(errorsTable, SWT.LEFT);
    errorRelativePathColumn.getColumn().setText(DataTransferMessages.SmartImportReport_relativePath);
    errorRelativePathColumn.getColumn().setWidth(300);
    errorRelativePathColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IPath rootLocation = new Path(job.getRoot().getAbsolutePath());
            IPath projectLocation = ((Entry<IPath, Exception>) element).getKey();
            return projectLocation.makeRelativeTo(rootLocation).toString();
        }
    });
    TableViewerColumn errorColumn = new TableViewerColumn(errorsTable, SWT.LEFT);
    errorColumn.getColumn().setText(DataTransferMessages.SmartImportReport_error);
    errorColumn.getColumn().setWidth(500);
    errorColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Entry<IPath, Exception>) element).getValue().getMessage();
        }
    });
    errorsTable.setInput(this.job.getErrors().entrySet());

    RecursiveImportListener tableReportFiller = new RecursiveImportListener() {
        @Override
        public void projectCreated(IProject project) {
            if (nestedProjectsTable.getControl().isDisposed()) {
                return;
            }
            nestedProjectsTable.getControl().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    if (nestedProjectsTable.getControl().isDisposed()) {
                        return;
                    }
                    nestedProjectsTable.refresh();
                    nestedProjectsTable.getTable().update();
                    nestedProjectsTable.getTable().redraw();
                    nestedProjectsLabel
                            .setText(NLS.bind(DataTransferMessages.SmartImportReport_importedProjects,
                                    job.getConfiguredProjects().size()));
                }
            });
        }

        @Override
        public void projectConfigured(IProject project, ProjectConfigurator configurator) {
            if (nestedProjectsTable.getControl().isDisposed()) {
                return;
            }
            nestedProjectsTable.getControl().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    if (nestedProjectsTable.getControl().isDisposed()) {
                        return;
                    }
                    nestedProjectsTable.refresh();
                    nestedProjectsTable.getTable().update();
                    nestedProjectsTable.getTable().redraw();
                }
            });
        }

        @Override
        public void errorHappened(IPath location, Exception error) {
            if (errorsTable.getControl().isDisposed()) {
                return;
            }
            errorsTable.getControl().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    if (errorsTable.getControl().isDisposed()) {
                        return;
                    }
                    GridData gridData = (GridData) errorsTable.getControl().getLayoutData();
                    if (gridData.exclude) {
                        gridData.exclude = false;
                        ((GridData) errorsLabel.getLayoutData()).exclude = false;
                    }
                    errorsTable.refresh();
                    errorsTable.getTable().update();
                    errorsLabel.setText(NLS.bind(DataTransferMessages.SmartImportReport_importErrors,
                            job.getErrors().size()));
                    res.layout(true);
                }
            });
        }
    };
    job.setListener(tableReportFiller);

    super.createDialogArea(parent);

    return res;
}

From source file:org.eclipse.ui.internal.wizards.datatransfer.SmartImportRootWizardPage.java

License:Open Source License

/**
 * @param res/* w  w  w  .j a v a2s . c o  m*/
 */
private void createProposalsGroup(Composite parent) {
    Composite res = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(res);
    PatternFilter patternFilter = new PatternFilter();
    patternFilter.setIncludeLeadingWildcard(true);
    FilteredTree filterTree = new FilteredTree(res, SWT.BORDER | SWT.CHECK, patternFilter, true) {
        @Override
        public CheckboxTreeViewer doCreateTreeViewer(Composite treeParent, int style) {
            return new CheckboxTreeViewer(treeParent, style);
        }
    };
    tree = (CheckboxTreeViewer) filterTree.getViewer();
    GridData treeGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    treeGridData.heightHint = 90;
    tree.getControl().setLayoutData(treeGridData);
    tree.setContentProvider(new ITreeContentProvider() {
        @Override
        public Object[] getElements(Object inputElement) {
            Map<File, ?> potentialProjects = (Map<File, ?>) inputElement;
            return potentialProjects.keySet().toArray(new File[potentialProjects.size()]);
        }

        @Override
        public Object[] getChildren(Object parentElement) {
            return null;
        }

        @Override
        public Object getParent(Object element) {
            return null;
        }

        @Override
        public boolean hasChildren(Object element) {
            return false;
        }

    });
    tree.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer v, Object o1, Object o2) {
            return ((File) o1).getAbsolutePath().compareTo(((File) o2).getAbsolutePath());
        }
    });
    tree.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            return getWizard().getImportJob() == null
                    || getWizard().getImportJob().getDirectoriesToImport() == null
                    || getWizard().getImportJob().getDirectoriesToImport().contains(element);
        }
    });
    tree.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (SmartImportRootWizardPage.this.alreadyExistingProjects.contains(event.getElement())) {
                tree.setChecked(event.getElement(), false);
            } else {
                proposalsSelectionChanged();
            }
        }
    });

    tree.getTree().setHeaderVisible(true);
    ViewerColumn pathColumn = new TreeViewerColumn(tree, SWT.NONE);
    pathColumn.setLabelProvider(new FolderForProjectsLabelProvider());
    tree.getTree().getColumn(0).setText(DataTransferMessages.SmartImportProposals_folder);
    tree.getTree().getColumn(0).setWidth(400);
    ViewerColumn projectTypeColumn = new TreeViewerColumn(tree, SWT.NONE);
    projectTypeColumn.setLabelProvider(new ProjectConfiguratorLabelProvider());
    tree.getTree().getColumn(1).setText(DataTransferMessages.SmartImportProposals_importAs);
    tree.getTree().getColumn(1).setWidth(250);

    Composite selectionButtonsGroup = new Composite(res, SWT.NONE);
    GridLayoutFactory.fillDefaults().applyTo(selectionButtonsGroup);
    selectionButtonsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true));
    Button selectAllButton = new Button(selectionButtonsGroup, SWT.PUSH);
    setButtonLayoutData(selectAllButton);
    selectAllButton.setText(DataTransferMessages.DataTransfer_selectAll);
    selectAllButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            tree.setCheckedElements(SmartImportRootWizardPage.this.notAlreadyExistingProjects.toArray());
            proposalsSelectionChanged();
        }
    });
    Button deselectAllButton = new Button(selectionButtonsGroup, SWT.PUSH);
    setButtonLayoutData(deselectAllButton);
    deselectAllButton.setText(DataTransferMessages.DataTransfer_deselectAll);
    deselectAllButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            tree.setCheckedElements(new Object[0]);
            proposalsSelectionChanged();
        }
    });

    selectionSummary = new Label(selectionButtonsGroup, SWT.NONE);
    selectionSummary.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, true, 1, 1));
    selectionSummary.setText(NLS.bind(DataTransferMessages.SmartImportProposals_selectionSummary, 0, 0));
    Button hideProjectsAlreadyInWorkspace = new Button(selectionButtonsGroup, SWT.CHECK);
    hideProjectsAlreadyInWorkspace.setText(DataTransferMessages.SmartImportProposals_hideExistingProjects);
    hideProjectsAlreadyInWorkspace.addSelectionListener(new SelectionAdapter() {
        final ViewerFilter existingProjectsFilter = new ViewerFilter() {
            @Override
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                return !alreadyExistingProjects.contains(element);
            }
        };

        @Override
        public void widgetSelected(SelectionEvent e) {
            ViewerFilter[] currentFilters = tree.getFilters();
            ViewerFilter[] newFilters = null;
            if (((Button) e.widget).getSelection()) {
                newFilters = new ViewerFilter[currentFilters.length + 1];
                System.arraycopy(currentFilters, 0, newFilters, 0, currentFilters.length);
                newFilters[newFilters.length - 1] = existingProjectsFilter;
            } else {
                List<ViewerFilter> filters = new ArrayList<>(
                        currentFilters.length > 0 ? currentFilters.length - 1 : 0);
                for (ViewerFilter filter : currentFilters) {
                    if (filter != existingProjectsFilter) {
                        filters.add(filter);
                    }
                }
                newFilters = filters.toArray(new ViewerFilter[filters.size()]);
            }
            tree.setFilters(newFilters);
        }
    });
    tree.setInput(Collections.emptyMap());
}

From source file:org.eclipse.ui.texteditor.templates.CTemplatePreferencePage.java

License:Open Source License

protected Control createContents(Composite ancestor) {
    Composite parent = new Composite(ancestor, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;//from www  .  ja  va 2  s.c  om
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    parent.setLayout(layout);

    Composite innerParent = new Composite(parent, SWT.NONE);
    GridLayout innerLayout = new GridLayout();
    innerLayout.numColumns = 2;
    innerLayout.marginHeight = 0;
    innerLayout.marginWidth = 0;
    innerParent.setLayout(innerLayout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    innerParent.setLayoutData(gd);

    Composite tableComposite = new Composite(innerParent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 360;
    data.heightHint = convertHeightInCharsToPixels(10);
    tableComposite.setLayoutData(data);

    ColumnLayout columnLayout = new ColumnLayout();
    tableComposite.setLayout(columnLayout);
    Table table = new Table(tableComposite,
            SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    GC gc = new GC(getShell());
    gc.setFont(JFaceResources.getDialogFont());

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText("Name");
    int minWidth = computeMinimumColumnWidth(gc, "Name");
    columnLayout.addColumnData(new ColumnWeightData(2, minWidth, true));

    //      TableColumn column2 = new TableColumn(table, SWT.NONE);
    //      column2.setText("Context");
    //      minWidth = computeMinimumContextColumnWidth(gc);
    //      columnLayout.addColumnData(new ColumnWeightData(1, minWidth, true));

    TableColumn column3 = new TableColumn(table, SWT.NONE);
    column3.setText("File Name");
    minWidth = computeMinimumColumnWidth(gc, "File Name");
    columnLayout.addColumnData(new ColumnWeightData(3, minWidth, true));

    // TableColumn column4 = new TableColumn(table, SWT.NONE);
    // column4.setAlignment(SWT.CENTER);
    // column4.setText("Auto Insert");
    // minWidth = computeMinimumColumnWidth(gc, "Auto Insert");
    // minWidth = Math.max(minWidth, computeMinimumColumnWidth(gc, "on"));
    // columnLayout.addColumnData(new ColumnPixelData(minWidth, false,
    // false));

    gc.dispose();

    fTableViewer = new CheckboxTableViewer(table);
    fTableViewer.setLabelProvider(new TemplateLabelProvider());
    fTableViewer.setContentProvider(new TemplateContentProvider());

    fTableViewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object object1, Object object2) {
            if ((object1 instanceof TemplatePersistenceData) && (object2 instanceof TemplatePersistenceData)) {
                Template left = ((TemplatePersistenceData) object1).getTemplate();
                Template right = ((TemplatePersistenceData) object2).getTemplate();
                int result = Collator.getInstance().compare(left.getName(), right.getName());
                if (result != 0)
                    return result;
                return Collator.getInstance().compare(left.getDescription(), right.getDescription());
            }
            return super.compare(viewer, object1, object2);
        }

        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });

    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            edit();
        }
    });

    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            selectionChanged1();
        }
    });

    fTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            TemplatePersistenceData d = (TemplatePersistenceData) event.getElement();
            d.setEnabled(event.getChecked());
        }
    });

    Composite buttons = new Composite(innerParent, SWT.NONE);
    buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttons.setLayout(layout);

    fAddButton = new Button(buttons, SWT.PUSH);
    fAddButton.setText("New...");
    fAddButton.setLayoutData(getButtonGridData(fAddButton));
    fAddButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            add();
        }
    });
    fAddButton.setEnabled(false);

    fEditButton = new Button(buttons, SWT.PUSH);
    fEditButton.setText("Edit...");
    fEditButton.setLayoutData(getButtonGridData(fEditButton));
    fEditButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            edit();
        }
    });

    fRemoveButton = new Button(buttons, SWT.PUSH);
    fRemoveButton.setText("Remove");
    fRemoveButton.setLayoutData(getButtonGridData(fRemoveButton));
    fRemoveButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            remove();
        }
    });
    fRemoveButton.setEnabled(false);

    createSeparator(buttons);

    fRestoreButton = new Button(buttons, SWT.PUSH);
    fRestoreButton.setText("Restore Removed");
    fRestoreButton.setLayoutData(getButtonGridData(fRestoreButton));
    fRestoreButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            restoreDeleted();
        }
    });

    fRevertButton = new Button(buttons, SWT.PUSH);
    fRevertButton.setText("Revert to Default");
    fRevertButton.setLayoutData(getButtonGridData(fRevertButton));
    fRevertButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            revert();
        }
    });

    createSeparator(buttons);

    fImportButton = new Button(buttons, SWT.PUSH);
    fImportButton.setText("Import...");
    fImportButton.setLayoutData(getButtonGridData(fImportButton));
    fImportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            import_();
        }
    });
    fImportButton.setEnabled(false);

    fExportButton = new Button(buttons, SWT.PUSH);
    fExportButton.setText("Export...");
    fExportButton.setLayoutData(getButtonGridData(fExportButton));
    fExportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            export();
        }
    });
    fExportButton.setEnabled(false);

    fPatternViewer = doCreateViewer(parent);

    if (isShowFormatterSetting()) {
        fFormatButton = new Button(parent, SWT.CHECK);
        fFormatButton.setText("Code Format");
        GridData gd1 = new GridData();
        gd1.horizontalSpan = 2;
        fFormatButton.setLayoutData(gd1);
        fFormatButton.setSelection(getPreferenceStore().getBoolean(getFormatterPreferenceKey()));
    }

    fTableViewer.setInput(fTemplateStore);
    fTableViewer.setAllChecked(false);
    fTableViewer.setCheckedElements(getEnabledTemplates());

    updateButtons();
    Dialog.applyDialogFont(parent);
    innerParent.layout();

    return parent;
}

From source file:org.eclipse.ui.texteditor.templates.TemplatePreferencePage.java

License:Open Source License

protected Control createContents(Composite ancestor) {
    Composite parent = new Composite(ancestor, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;//from   w  w  w  .  j  a  v  a  2s .c o m
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    parent.setLayout(layout);

    Composite innerParent = new Composite(parent, SWT.NONE);
    GridLayout innerLayout = new GridLayout();
    innerLayout.numColumns = 2;
    innerLayout.marginHeight = 0;
    innerLayout.marginWidth = 0;
    innerParent.setLayout(innerLayout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    innerParent.setLayoutData(gd);

    Composite tableComposite = new Composite(innerParent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 360;
    data.heightHint = convertHeightInCharsToPixels(10);
    tableComposite.setLayoutData(data);

    ColumnLayout columnLayout = new ColumnLayout();
    tableComposite.setLayout(columnLayout);
    Table table = new Table(tableComposite,
            SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    GC gc = new GC(getShell());
    gc.setFont(JFaceResources.getDialogFont());

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText(TemplatesMessages.TemplatePreferencePage_column_name);
    int minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_name);
    columnLayout.addColumnData(new ColumnWeightData(2, minWidth, true));

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(TemplatesMessages.TemplatePreferencePage_column_context);
    minWidth = computeMinimumContextColumnWidth(gc);
    columnLayout.addColumnData(new ColumnWeightData(1, minWidth, true));

    TableColumn column3 = new TableColumn(table, SWT.NONE);
    column3.setText(TemplatesMessages.TemplatePreferencePage_column_description);
    minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_description);
    columnLayout.addColumnData(new ColumnWeightData(3, minWidth, true));

    TableColumn column4 = new TableColumn(table, SWT.NONE);
    column4.setAlignment(SWT.CENTER);
    column4.setText(TemplatesMessages.TemplatePreferencePage_column_autoinsert);
    minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_autoinsert);
    minWidth = Math.max(minWidth, computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_on));
    columnLayout.addColumnData(new ColumnPixelData(minWidth, false, false));

    gc.dispose();

    fTableViewer = new CheckboxTableViewer(table);
    fTableViewer.setLabelProvider(new TemplateLabelProvider());
    fTableViewer.setContentProvider(new TemplateContentProvider());

    fTableViewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object object1, Object object2) {
            if ((object1 instanceof TemplatePersistenceData) && (object2 instanceof TemplatePersistenceData)) {
                Template left = ((TemplatePersistenceData) object1).getTemplate();
                Template right = ((TemplatePersistenceData) object2).getTemplate();
                int result = Collator.getInstance().compare(left.getName(), right.getName());
                if (result != 0)
                    return result;
                return Collator.getInstance().compare(left.getDescription(), right.getDescription());
            }
            return super.compare(viewer, object1, object2);
        }

        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });

    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            edit();
        }
    });

    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            selectionChanged1();
        }
    });

    fTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            TemplatePersistenceData d = (TemplatePersistenceData) event.getElement();
            d.setEnabled(event.getChecked());
        }
    });

    Composite buttons = new Composite(innerParent, SWT.NONE);
    buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttons.setLayout(layout);

    fAddButton = new Button(buttons, SWT.PUSH);
    fAddButton.setText(TemplatesMessages.TemplatePreferencePage_new);
    fAddButton.setLayoutData(getButtonGridData(fAddButton));
    fAddButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            add();
        }
    });

    fEditButton = new Button(buttons, SWT.PUSH);
    fEditButton.setText(TemplatesMessages.TemplatePreferencePage_edit);
    fEditButton.setLayoutData(getButtonGridData(fEditButton));
    fEditButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            edit();
        }
    });

    fRemoveButton = new Button(buttons, SWT.PUSH);
    fRemoveButton.setText(TemplatesMessages.TemplatePreferencePage_remove);
    fRemoveButton.setLayoutData(getButtonGridData(fRemoveButton));
    fRemoveButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            remove();
        }
    });

    createSeparator(buttons);

    fRestoreButton = new Button(buttons, SWT.PUSH);
    fRestoreButton.setText(TemplatesMessages.TemplatePreferencePage_restore);
    fRestoreButton.setLayoutData(getButtonGridData(fRestoreButton));
    fRestoreButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            restoreDeleted();
        }
    });

    fRevertButton = new Button(buttons, SWT.PUSH);
    fRevertButton.setText(TemplatesMessages.TemplatePreferencePage_revert);
    fRevertButton.setLayoutData(getButtonGridData(fRevertButton));
    fRevertButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            revert();
        }
    });

    createSeparator(buttons);

    fImportButton = new Button(buttons, SWT.PUSH);
    fImportButton.setText(TemplatesMessages.TemplatePreferencePage_import);
    fImportButton.setLayoutData(getButtonGridData(fImportButton));
    fImportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            import_();
        }
    });

    fExportButton = new Button(buttons, SWT.PUSH);
    fExportButton.setText(TemplatesMessages.TemplatePreferencePage_export);
    fExportButton.setLayoutData(getButtonGridData(fExportButton));
    fExportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            export();
        }
    });

    fPatternViewer = doCreateViewer(parent);

    if (isShowFormatterSetting()) {
        fFormatButton = new Button(parent, SWT.CHECK);
        fFormatButton.setText(TemplatesMessages.TemplatePreferencePage_use_code_formatter);
        GridData gd1 = new GridData();
        gd1.horizontalSpan = 2;
        fFormatButton.setLayoutData(gd1);
        fFormatButton.setSelection(getPreferenceStore().getBoolean(getFormatterPreferenceKey()));
    }

    fTableViewer.setInput(fTemplateStore);
    fTableViewer.setAllChecked(false);
    fTableViewer.setCheckedElements(getEnabledTemplates());

    updateButtons();
    Dialog.applyDialogFont(parent);
    innerParent.layout();

    return parent;
}