Example usage for org.eclipse.jface.viewers ColumnViewer getLabelProvider

List of usage examples for org.eclipse.jface.viewers ColumnViewer getLabelProvider

Introduction

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

Prototype

public CellLabelProvider getLabelProvider(int columnIndex) 

Source Link

Document

Returns the label provider associated with the column at the given index or null if no column with this index is known.

Usage

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);
}