List of usage examples for org.eclipse.jface.viewers ColumnViewer getLabelProvider
public CellLabelProvider getLabelProvider(int columnIndex)
null if no column with this index is known. From source file:com.bdaum.zoom.ui.internal.ZViewerComparator.java
License:Open Source License
@Override public int compare(Viewer viewer, Object e1, Object e2) { if (viewer instanceof ColumnViewer) { int colIndex = 0; int sortDir = SWT.UP; ColumnViewer columnViewer = (ColumnViewer) viewer; if (columnViewer instanceof TableViewer) { Table table = ((TableViewer) columnViewer).getTable(); TableColumn sortColumn = table.getSortColumn(); if (sortColumn != null) { sortDir = table.getSortDirection(); for (int i = 0; i < table.getColumnCount(); i++) { if (table.getColumn(i) == sortColumn) { colIndex = i;/*from ww w .ja va2 s. c o m*/ break; } } } } else if (columnViewer instanceof TreeViewer) { Tree tree = ((TreeViewer) columnViewer).getTree(); TreeColumn sortColumn = tree.getSortColumn(); if (sortColumn != null) { sortDir = tree.getSortDirection(); for (int i = 0; i < tree.getColumnCount(); i++) { if (tree.getColumn(i) == sortColumn) { colIndex = i; break; } } } } int dir = sortDir == SWT.DOWN ? -1 : 1; CellLabelProvider labelProvider = columnViewer.getLabelProvider(colIndex); if (labelProvider instanceof ColumnLabelProvider) return dir * UiUtilities.stringComparator.compare(((ColumnLabelProvider) labelProvider).getText(e1), ((ColumnLabelProvider) labelProvider).getText(e2)); if (labelProvider instanceof ZColumnLabelProvider) return dir * UiUtilities.stringComparator.compare(((ZColumnLabelProvider) labelProvider).getText(e1), ((ZColumnLabelProvider) labelProvider).getText(e2)); } return super.compare(viewer, e1, e2); }
From source file:de.quamoco.qm.properties.eval.provider.InfluencingOrRefiningElementComparator.java
License:Apache License
@Override public int compare(Viewer viewer, Object e1, Object e2) { int result = 0; ColumnViewer columnViewer = (ColumnViewer) viewer; /*//from www . j a v a2 s .c o m * 1st sort by ranking */ ColumnLabelProvider rankingLabelProvider = (ColumnLabelProvider) columnViewer .getLabelProvider(InfluencingOrRefiningElementLabelProvider.COLUMN_RANKING); int ranking1 = Integer.parseInt(rankingLabelProvider.getText(e1)); int ranking2 = Integer.parseInt(rankingLabelProvider.getText(e2)); result = compareRankings(ranking1, ranking2); if (result == 0) { /* * 2nd sort by contribution points */ ColumnLabelProvider contributionPointsLabelProvider = (ColumnLabelProvider) columnViewer .getLabelProvider(InfluencingOrRefiningElementLabelProvider.COLUMN_CONTRIBUTION_POINTS); double contPoints1 = Double.parseDouble(contributionPointsLabelProvider.getText(e1)); double contPoints2 = Double.parseDouble(contributionPointsLabelProvider.getText(e2)); result = compareContributionPoints(contPoints1, contPoints2); if (result == 0) { /* * 3rd sort by name */ ColumnLabelProvider nameLabelProvider = (ColumnLabelProvider) columnViewer .getLabelProvider(InfluencingOrRefiningElementLabelProvider.COLUMN_NAME); String name1 = nameLabelProvider.getText(e1); String name2 = nameLabelProvider.getText(e2); result = compareName(name1, name2); } } return result; }
From source file:org.nightlabs.base.ui.table.GenericInvertViewerSorter.java
License:Open Source License
@SuppressWarnings("unchecked") //$NON-NLS-1$ public int compare(Viewer viewer, Object e1, Object e2, int columnIndex) { int cat1 = category(e1); int cat2 = category(e2); if (cat1 != cat2) { return cat1 - cat2; }/*from w w w. j a v a2 s . com*/ Comparable comp1 = null; Comparable comp2 = null; if (viewer == null || !(viewer instanceof ContentViewer)) { comp1 = e1.toString(); comp2 = e2.toString(); } else { ContentViewer contentViewer = (ContentViewer) viewer; IBaseLabelProvider prov = ((ContentViewer) viewer).getLabelProvider(); if (prov instanceof IColumnComparatorProvider) { IColumnComparatorProvider cprov = (IColumnComparatorProvider) prov; // comp1 = cprov.getColumnComparable(e1, columnIndex); // comp2 = cprov.getColumnComparable(e2, columnIndex); Comparator comparator = cprov.getColumnComparator(e1, columnIndex); if (comparator != null) { return comparator.compare(e1, e2); } } if (prov instanceof ITableLabelProvider) { ITableLabelProvider lprov = (ITableLabelProvider) prov; comp1 = lprov.getColumnText(e1, columnIndex); comp2 = lprov.getColumnText(e2, columnIndex); } // handle special case of ColumnViewers and new Eclipse 3.3 API // (e.g. TableViewerColumn#setLabelProvider(ColumnLabelProvider)) else if (contentViewer instanceof ColumnViewer) { final ColumnViewer columnViewer = (ColumnViewer) contentViewer; // this always returns a result even if no ColumnLabelProvider was set for a column // then getText() just returns element.toString(), therefore the check for ColumnLabelProvider // should be quite at the end and definitely after the check for ITabelLabelProvider CellLabelProvider lprov = columnViewer.getLabelProvider(columnIndex); if (lprov != null && (lprov instanceof ColumnLabelProvider)) { final ColumnLabelProvider clprov = (ColumnLabelProvider) lprov; comp1 = clprov.getText(e1); comp2 = clprov.getText(e2); } else if (lprov != null && lprov instanceof ColumnSpanLabelProvider) { ColumnSpanLabelProvider cslp = (ColumnSpanLabelProvider) lprov; comp1 = cslp.getColumnText(e1, columnIndex); comp2 = cslp.getColumnText(e2, columnIndex); } else { comp1 = e1.toString(); comp2 = e2.toString(); } } else if (prov instanceof ILabelProvider) { ILabelProvider lprov = (ILabelProvider) prov; comp1 = lprov.getText(e1); comp2 = lprov.getText(e2); } else { comp1 = e1.toString(); comp2 = e2.toString(); } } if (comp1 == null) { return comp2 != null ? -1 : 0; } if (comp2 == null) { return comp1 != null ? 1 : 0; } if (comp1 instanceof String && comp2 instanceof String) { return collator.compare(comp1, comp2); } return comp1.compareTo(comp2); }