List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:org.eclipse.libra.facet.ui.wizards.ConvertProjectsToBundlesWizardPage.java
License:Open Source License
private void createProjectsViewer(Composite parent) { DataBindingContext dbc = new DataBindingContext(); WizardPageSupport.create(this, dbc); Label projectsLabel = new Label(parent, SWT.NONE); projectsLabel.setText(Messages.ConvertProjectsToBundlesWizardPage_AvailableProjects); GridDataFactory.swtDefaults().span(2, 1).applyTo(projectsLabel); final CheckboxTableViewer projectsViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); GridDataFactory.fillDefaults().grab(true, true).applyTo(projectsViewer.getControl()); projectsViewer.setLabelProvider(new WorkbenchLabelProvider()); projectsViewer.setContentProvider(new ArrayContentProvider()); projectsViewer.setInput(fUnconverted); projectsViewer.setComparator(new ViewerComparator()); dbc.bindSet(ViewersObservables.observeCheckedElements(projectsViewer, IProject.class), fSelected); dbc.addValidationStatusProvider(new SelectionValidator()); Composite buttonGroup = new Composite(parent, SWT.NONE); GridLayoutFactory.fillDefaults().generateLayout(buttonGroup); Button selectAllButton = new Button(buttonGroup, SWT.PUSH); selectAllButton.setText(Messages.ConvertProjectsToBundlesWizardPage_SelectAll); selectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { fSelected.addAll(fUnconverted); }//from w w w .j a v a2 s. c o m }); GridDataFactory.fillDefaults().applyTo(selectAllButton); Button deselectAllButton = new Button(buttonGroup, SWT.PUSH); deselectAllButton.setText(Messages.ConvertProjectsToBundlesWizardPage_DeselectAll); deselectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { for (Object o : fUnconverted) { fSelected.remove(o); } } }); GridDataFactory.fillDefaults().applyTo(deselectAllButton); Button addReferencesButton = new Button(buttonGroup, SWT.PUSH); addReferencesButton.setText(Messages.ConvertProjectsToBundlesWizardPage_AddReferences); addReferencesButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { selectReferences(); } }); GridDataFactory.fillDefaults().indent(0, 8).applyTo(addReferencesButton); Label selectedCountLabel = new Label(buttonGroup, SWT.WRAP); GridDataFactory.swtDefaults().align(SWT.FILL, SWT.BOTTOM).grab(false, true).applyTo(selectedCountLabel); dbc.bindValue(SWTObservables.observeText(selectedCountLabel), new ComputedValue(String.class) { @Override protected Object calculate() { return NLS.bind(Messages.ConvertProjectsToBundlesWizardPage_SelectionCounter, fSelected.size(), fUnconverted.size()); } }); }
From source file:org.eclipse.libra.warproducts.ui.editor.LibrarySection.java
License:Open Source License
private void addComparator() { libraryTable.setComparator(new ViewerComparator() { public int compare(final Viewer viewer, final Object e1, final Object e2) { IPath p1 = (IPath) e1;/*w ww .j av a 2 s. co m*/ IPath p2 = (IPath) e2; return super.compare(viewer, p1.toOSString(), p2.toOSString()); } }); }
From source file:org.eclipse.libra.warproducts.ui.validation.PluginStatusContentVisualizer.java
License:Open Source License
public void createControls(final Composite parent) { treeViewer = new TreeViewer(parent); PluginStatusDialogContentProvider contentProvider = new PluginStatusDialogContentProvider(input); treeViewer.setContentProvider(contentProvider); treeViewer.setLabelProvider(new PluginStatusDialogLableProvider()); treeViewer.setComparator(new ViewerComparator()); treeViewer.setInput(input);/* w w w . j ava 2 s . c o m*/ treeViewer.refresh(); }
From source file:org.eclipse.linuxtools.changelog.core.actions.ChangeLogContainerSelectionGroup.java
License:Open Source License
/** * Returns a new drill down viewer for this dialog. * /*from w w w. j av a 2 s .co 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); 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); ChangeLogContainerContentProvider cp = new ChangeLogContainerContentProvider(); cp.showClosedProjects(showClosedProjects); treeViewer.setContentProvider(cp); 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 helps in displaying all folders under the document * root as well as the actual root itself. */ ChangeLogRootContainer root = new ChangeLogRootContainer(this.initialSelection.getProject()); // This has to be done after the viewer has been laid out treeViewer.setInput(root); }
From source file:org.eclipse.linuxtools.internal.changelog.core.actions.ChangeLogContainerSelectionGroup.java
License:Open Source License
/** * Returns a new drill down viewer for this dialog. * * @param heightHint//from w w w .j av a 2 s. co m * height hint for the drill down composite */ private void createTreeViewer(int heightHint) { // Create drill down. DrillDownComposite drillDown = new DrillDownComposite(this, SWT.BORDER); 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); ChangeLogContainerContentProvider cp = new ChangeLogContainerContentProvider(); cp.showClosedProjects(showClosedProjects); treeViewer.setContentProvider(cp); treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider()); treeViewer.setComparator(new ViewerComparator()); treeViewer.setUseHashlookup(true); treeViewer.addSelectionChangedListener(event -> { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); containerSelectionChanged((IContainer) selection.getFirstElement()); // allow null }); treeViewer.addDoubleClickListener(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 helps in displaying all folders under the document * root as well as the actual root itself. */ ChangeLogRootContainer root = new ChangeLogRootContainer(this.initialSelection.getProject()); // This has to be done after the viewer has been laid out treeViewer.setInput(root); }
From source file:org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.cpuusage.CpuUsageComposite.java
License:Open Source License
@Override protected ITmfTreeColumnDataProvider getColumnDataProvider() { return new ITmfTreeColumnDataProvider() { @Override/*from w w w .j a va 2 s .c om*/ public List<TmfTreeColumnData> getColumnData() { /* All columns are sortable */ List<TmfTreeColumnData> columns = new ArrayList<>(); TmfTreeColumnData column = new TmfTreeColumnData(COLUMN_NAMES[0]); column.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { CpuUsageEntry n1 = (CpuUsageEntry) e1; CpuUsageEntry n2 = (CpuUsageEntry) e2; return n1.getTid().compareTo(n2.getTid()); } }); columns.add(column); column = new TmfTreeColumnData(COLUMN_NAMES[1]); column.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { CpuUsageEntry n1 = (CpuUsageEntry) e1; CpuUsageEntry n2 = (CpuUsageEntry) e2; return n1.getProcessName().compareTo(n2.getProcessName()); } }); columns.add(column); column = new TmfTreeColumnData(COLUMN_NAMES[2]); column.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { CpuUsageEntry n1 = (CpuUsageEntry) e1; CpuUsageEntry n2 = (CpuUsageEntry) e2; return n1.getPercent().compareTo(n2.getPercent()); } }); column.setPercentageProvider(new ITmfColumnPercentageProvider() { @Override public double getPercentage(Object data) { CpuUsageEntry parent = (CpuUsageEntry) data; return parent.getPercent() / 100; } }); columns.add(column); column = new TmfTreeColumnData(COLUMN_NAMES[3]); column.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { CpuUsageEntry n1 = (CpuUsageEntry) e1; CpuUsageEntry n2 = (CpuUsageEntry) e2; return n1.getTime().compareTo(n2.getTime()); } }); columns.add(column); return columns; } }; }
From source file:org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart.java
License:Open Source License
private SelectionListener getHeaderListener() { return new SelectionAdapter() { @Override// www . j a v a2s. c o m public void widgetSelected(SelectionEvent e) { TreeColumn column = (TreeColumn) e.widget; Tree tree = viewer.getTree(); if (column.equals(tree.getSortColumn())) { int direction = tree.getSortDirection() == SWT.UP ? SWT.DOWN : SWT.UP; tree.setSortDirection(direction); } else { tree.setSortDirection(SWT.UP); } tree.setSortColumn(column); viewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { Tree tree = ((TreeViewer) viewer).getTree(); int direction = tree.getSortDirection(); ICachegrindElement o1 = (ICachegrindElement) e1; ICachegrindElement o2 = (ICachegrindElement) e2; long result = 0; int sortIndex = Arrays.asList(tree.getColumns()).indexOf(tree.getSortColumn()); if (sortIndex == 0) { // use compareTo result = o1.compareTo(o2); } else { long[] v1 = null; long[] v2 = null; if (o1 instanceof CachegrindFunction && o2 instanceof CachegrindFunction) { v1 = ((CachegrindFunction) o1).getTotals(); v2 = ((CachegrindFunction) o2).getTotals(); } else if (o1 instanceof CachegrindLine && o2 instanceof CachegrindLine) { v1 = ((CachegrindLine) o1).getValues(); v2 = ((CachegrindLine) o2).getValues(); } else if (o1 instanceof CachegrindOutput && o2 instanceof CachegrindOutput) { v1 = ((CachegrindOutput) o1).getSummary(); v2 = ((CachegrindOutput) o2).getSummary(); } if (v1 != null && v2 != null) { result = v1[sortIndex - 1] - v2[sortIndex - 1]; } } // ascending or descending result = direction == SWT.UP ? result : -result; // overflow check if (result > Integer.MAX_VALUE) { result = Integer.MAX_VALUE; } else if (result < Integer.MIN_VALUE) { result = Integer.MIN_VALUE; } return (int) result; } }); } }; }
From source file:org.eclipse.linuxtools.internal.valgrind.massif.MassifViewPart.java
License:Open Source License
private SelectionListener getHeaderListener() { return new SelectionAdapter() { @Override/*from www. ja va 2 s . c o m*/ public void widgetSelected(SelectionEvent e) { TableColumn column = (TableColumn) e.widget; Table table = viewer.getTable(); if (column.equals(table.getSortColumn())) { int direction = table.getSortDirection() == SWT.UP ? SWT.DOWN : SWT.UP; table.setSortDirection(direction); } else { table.setSortDirection(SWT.UP); } table.setSortColumn(column); viewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object o1, Object o2) { Table table = ((TableViewer) viewer).getTable(); int direction = table.getSortDirection(); MassifSnapshot s1 = (MassifSnapshot) o1; MassifSnapshot s2 = (MassifSnapshot) o2; long result; TableColumn column = table.getSortColumn(); if (column.getText().equals(TITLE_NUMBER)) { result = s1.getNumber() - s2.getNumber(); } else if (column.getText().startsWith(TITLE_TIME)) { result = s1.getTime() - s2.getTime(); } else if (column.getText().equals(TITLE_TOTAL)) { result = s1.getTotal() - s2.getTotal(); } else if (column.getText().equals(TITLE_USEFUL)) { result = s1.getHeapBytes() - s2.getHeapBytes(); } else if (column.getText().equals(TITLE_EXTRA)) { result = s1.getHeapExtra() - s2.getHeapExtra(); } else { result = s1.getStacks() - s2.getStacks(); } // ascending / descending result = direction == SWT.UP ? result : -result; // overflow check if (result > Integer.MAX_VALUE) { result = Integer.MAX_VALUE; } else if (result < Integer.MIN_VALUE) { result = Integer.MIN_VALUE; } return (int) result; } }); } }; }
From source file:org.eclipse.linuxtools.lttng.ui.tracecontrol.wizards.KernelTraceChannelConfigurationPage.java
License:Open Source License
@Override public void createControl(Composite parent) { container = new Composite(parent, SWT.NULL); container.setLayout(new GridLayout()); setControl(container);/* w ww. j a va2s.c o m*/ Composite headerComposite = new Composite(container, SWT.FILL); GridLayout headerLayout = new GridLayout(1, true); headerLayout.marginHeight = 0; headerLayout.marginWidth = 0; headerComposite.setLayout(headerLayout); headerComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); tableViewer = new TableViewer(headerComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); tableViewer.setUseHashlookup(true); Table table = tableViewer.getTable(); table.setHeaderVisible(true); fColumnNames = new ArrayList<String>(); for (int i = 0; i < columnDataList.length; i++) { final ColumnData columnData = columnDataList[i]; fColumnNames.add(columnData.header); final TableColumn tableColumn = new TableColumn(table, SWT.LEFT); tableColumn.setText(columnData.header); tableColumn.setWidth(columnData.width); tableColumn.setAlignment(columnData.alignment); tableColumn.setToolTipText(columnData.tooltip); tableColumn.setMoveable(false); if (columnData.comparator != null) { tableColumn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (tableViewer.getTable().getSortDirection() == SWT.UP || (tableViewer.getTable().getSortColumn() != tableColumn)) { tableViewer.setComparator(columnData.comparator); tableViewer.getTable().setSortDirection(SWT.DOWN); } else { tableViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.comparator.compare(viewer, e1, e2); } }); tableViewer.getTable().setSortDirection(SWT.UP); } tableViewer.getTable().setSortColumn(tableColumn); } }); } } tableViewer.setColumnProperties(fColumnNames.toArray(new String[0])); // Create the cell editors CellEditor[] editors = new CellEditor[columnDataList.length]; // Column 1 : Completed (Checkbox) TextCellEditor textEditor = new TextCellEditor(table); editors[0] = textEditor; // Column 2 : Description (Free text) editors[1] = new CheckboxCellEditor(table); // Column 3 : Owner (Combo Box) editors[2] = new CheckboxCellEditor(table); // Column 4 : Percent complete (Text with digits only) textEditor = new TextCellEditor(table); ((Text) textEditor.getControl()).addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent e) { e.doit = e.text.matches("[0-9]*"); //$NON-NLS-1$ } }); editors[3] = textEditor; textEditor = new TextCellEditor(table); ((Text) textEditor.getControl()).addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent e) { e.doit = e.text.matches("[0-9]*"); //$NON-NLS-1$ } }); editors[4] = textEditor; textEditor = new TextCellEditor(table); ((Text) textEditor.getControl()).addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent e) { e.doit = e.text.matches("[0-9]*"); //$NON-NLS-1$ } }); editors[5] = textEditor; // Assign the cell editors to the viewer tableViewer.setCellEditors(editors); tableViewer.setCellModifier(new TraceChannelCellModifier(this)); tableViewer.setContentProvider(new TraceChannelTableContentProvider()); tableViewer.setLabelProvider(new TraceChannelTableLabelProvider()); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); makeActions(); addContextMenu(); }
From source file:org.eclipse.linuxtools.lttng.ui.views.statistics.StatisticsView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { parent.setLayout(new FillLayout()); treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); treeViewer.setContentProvider(new TreeContentProvider()); treeViewer.getTree().setHeaderVisible(true); treeViewer.setUseHashlookup(true);//from w ww .j a va 2s. com for (final ColumnData columnData : columnDataList) { final TreeViewerColumn treeColumn = new TreeViewerColumn(treeViewer, columnData.alignment); treeColumn.getColumn().setText(columnData.header); treeColumn.getColumn().setWidth(columnData.width); treeColumn.getColumn().setToolTipText(columnData.tooltip); if (columnData.comparator != null) { treeColumn.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getTree().getSortDirection() == SWT.UP || treeViewer.getTree().getSortColumn() != treeColumn.getColumn()) { treeViewer.setComparator(columnData.comparator); treeViewer.getTree().setSortDirection(SWT.DOWN); } else { treeViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.comparator.compare(viewer, e1, e2); } }); treeViewer.getTree().setSortDirection(SWT.UP); } treeViewer.getTree().setSortColumn(treeColumn.getColumn()); } }); } treeColumn.setLabelProvider(columnData.labelProvider); } // Handler that will draw the bar charts. treeViewer.getTree().addListener(SWT.EraseItem, new Listener() { // @Override @Override public void handleEvent(Event event) { if (columnDataList[event.index].percentageProvider != null) { StatisticsTreeNode node = (StatisticsTreeNode) event.item.getData(); double percentage = columnDataList[event.index].percentageProvider.getPercentage(node); if (percentage == 0) { return; } if ((event.detail & SWT.SELECTED) > 0) { Color oldForeground = event.gc.getForeground(); event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION)); event.gc.fillRectangle(event.x, event.y, event.width, event.height); event.gc.setForeground(oldForeground); event.detail &= ~SWT.SELECTED; } int barWidth = (int) ((treeViewer.getTree().getColumn(1).getWidth() - 8) * percentage); int oldAlpha = event.gc.getAlpha(); Color oldForeground = event.gc.getForeground(); Color oldBackground = event.gc.getBackground(); event.gc.setAlpha(64); event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_BLUE)); event.gc.setBackground(event.item.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); event.gc.fillGradientRectangle(event.x, event.y, barWidth, event.height, true); event.gc.drawRectangle(event.x, event.y, barWidth, event.height); event.gc.setForeground(oldForeground); event.gc.setBackground(oldBackground); event.gc.setAlpha(oldAlpha); event.detail &= ~SWT.BACKGROUND; } } }); treeViewer.setComparator(columnDataList[0].comparator); treeViewer.getTree().setSortColumn(treeViewer.getTree().getColumn(0)); treeViewer.getTree().setSortDirection(SWT.DOWN); // Read current data if any available TmfExperiment<?> experiment = TmfExperiment.getCurrentExperiment(); if (experiment != null) { @SuppressWarnings({ "rawtypes", "unchecked" }) TmfExperimentSelectedSignal<?> signal = new TmfExperimentSelectedSignal(this, experiment); experimentSelected(signal); } else { TraceDebug.debug("No selected experiment information available"); //$NON-NLS-1$ } }