List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
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; }