Example usage for org.eclipse.jface.viewers ViewerSorter compare

List of usage examples for org.eclipse.jface.viewers ViewerSorter compare

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerSorter compare.

Prototype

public int compare(Viewer viewer, Object e1, Object e2) 

Source Link

Document

Returns a negative, zero, or positive number depending on whether the first element is less than, equal to, or greater than the second element.

Usage

From source file:com.nokia.tools.variant.confml.ui.views.CustomSorter.java

License:Open Source License

public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) {
    if (contentService == null)
        return -1;

    if (e1 instanceof EAppGroup || e1 instanceof EAppView) {
        return -1;
    }/*from   ww  w  .  ja va  2  s . c  om*/
    if (e1 instanceof EAppSettingRef) {
        EAppSettingRef setting = (EAppSettingRef) e1;
        if (setting.eContainer() instanceof EAppGroup)
            return -1;
    }

    INavigatorContentDescriptor sourceOfLvalue = contentService.getSourceOfContribution(e1);
    INavigatorContentDescriptor sourceOfRvalue = contentService.getSourceOfContribution(e2);

    Object parent;
    if (parentPath == null) {
        parent = viewer.getInput();
    } else {
        parent = parentPath.getLastSegment();
    }

    // shortcut if contributed by same source
    if (sourceOfLvalue == sourceOfRvalue) {
        ViewerSorter sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
        if (sorter != null) {
            return sorter.compare(viewer, e1, e2);
        }
    }

    if (sourceOfLvalue == null)
        sourceOfLvalue = getSource(e1);
    if (sourceOfRvalue == null)
        sourceOfRvalue = getSource(e2);

    boolean flags[] = new boolean[4];
    flags[0] = sourceOfLvalue.isPossibleChild(e1);
    flags[1] = sourceOfLvalue.isPossibleChild(e2);
    flags[2] = sourceOfRvalue.isPossibleChild(e1);
    flags[3] = sourceOfRvalue.isPossibleChild(e2);

    int whoknows = 0;
    whoknows = whoknows | (flags[0] & flags[1] ? LEFT_UNDERSTANDS : 0);
    whoknows = whoknows | (flags[2] & flags[3] ? RIGHT_UNDERSTANDS : 0);

    ViewerSorter sorter = null;

    switch (whoknows) {
    case BOTH_UNDERSTAND:
        sorter = sourceOfLvalue.getPriority() > sourceOfRvalue.getPriority()
                ? sorterService.findSorter(sourceOfLvalue, parent, e1, e2)
                : sorterService.findSorter(sourceOfRvalue, parent, e1, e2);
        break;
    case LEFT_UNDERSTANDS:
        sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
        break;
    case RIGHT_UNDERSTANDS:
        sorter = sorterService.findSorter(sourceOfRvalue, parent, e1, e2);
        break;
    }

    if (sorter != null) {
        return sorter.compare(viewer, e1, e2);
    }

    int categoryDelta = category(e1) - category(e2);
    if (categoryDelta == 0) {
        return super.compare(viewer, e1, e2);
    }
    return categoryDelta;
}

From source file:net.refractions.udig.issues.internal.view.IssuesSorter.java

License:Open Source License

public int compare(Viewer viewer, ViewerSorter defaultSorter, Column selectedColumn, boolean direction,
        Object e1, Object e2) {
    if (!(e1 instanceof IIssue))
        return defaultSorter.compare(viewer, e1, e2);

    IIssue issue1 = (IIssue) e1;/*from w ww  .j a  v a  2  s .  c  o  m*/
    IIssue issue2 = (IIssue) e2;

    if (!direction) {
        issue1 = (IIssue) e2;
        issue2 = (IIssue) e1;
    }

    if (viewer instanceof ContentViewer) {
        ContentViewer tviewer = (ContentViewer) viewer;
        IBaseLabelProvider provider = tviewer.getLabelProvider();
        if (provider instanceof ITableLabelProvider) {
            ITableLabelProvider tableProvider = (ITableLabelProvider) provider;
            String text1 = tableProvider.getColumnText(issue1, IssuesView.columnToIndex(selectedColumn));
            String text2 = tableProvider.getColumnText(issue2, IssuesView.columnToIndex(selectedColumn));
            if (text1 != null && text2 != null) {
                return defaultSorter.compare(viewer, text1, text2);
            }

            switch (selectedColumn) {
            case PRIORITY:
                return defaultSorter.compare(null, ((IIssue) issue1).getPriority().ordinal(),
                        ((IIssue) issue2).getPriority().ordinal());
            case RESOLUTION:
                return defaultSorter.compare(null, ((IIssue) issue1).getResolution().ordinal(),
                        ((IIssue) issue2).getResolution().ordinal());

            }
        }
    }

    return defaultSorter.compare(viewer, issue1, issue2);
}

From source file:org.dslforge.workspace.ui.BasicWorkspaceSorter.java

License:Open Source License

public int compare(Viewer viewer, TreePath parentPath, Object object1, Object object2) {
    if (contentService == null)
        return -1;
    INavigatorContentDescriptor sourceOfLvalue = getSource(object1);
    INavigatorContentDescriptor sourceOfRvalue = getSource(object2);
    Object parent;// w  w w  .j a  va  2  s  . co m
    if (parentPath == null) {
        parent = viewer.getInput();
    } else {
        parent = parentPath.getLastSegment();
    }
    if (sourceOfLvalue == null) {
        logMissingExtension(parent, object1);
        return -1;
    }
    if (sourceOfRvalue == null) {
        logMissingExtension(parent, object2);
        return -1;
    }
    ViewerSorter sorter = null;
    if (sourceOfLvalue == sourceOfRvalue) {
        sorter = sorterService.findSorter(sourceOfLvalue, parent, object1, object2);
    } else {
        boolean flags[] = new boolean[4];
        flags[0] = sourceOfLvalue.isTriggerPoint(object1);
        flags[1] = sourceOfLvalue.isTriggerPoint(object2);
        flags[2] = sourceOfRvalue.isTriggerPoint(object1);
        flags[3] = sourceOfRvalue.isTriggerPoint(object2);
        int whoknows = 0;
        whoknows = whoknows | (flags[0] & flags[1] ? LEFT_UNDERSTANDS : 0);
        whoknows = whoknows | (flags[2] & flags[3] ? RIGHT_UNDERSTANDS : 0);
        switch (whoknows) {
        case BOTH_UNDERSTAND:
            sorter = sourceOfLvalue.getSequenceNumber() > sourceOfRvalue.getSequenceNumber()
                    ? sorterService.findSorter(sourceOfLvalue, parent, object1, object2)
                    : sorterService.findSorter(sourceOfRvalue, parent, object1, object2);
            break;
        case LEFT_UNDERSTANDS:
            sorter = sorterService.findSorter(sourceOfLvalue, parent, object1, object2);
            break;
        case RIGHT_UNDERSTANDS:
            sorter = sorterService.findSorter(sourceOfRvalue, parent, object1, object2);
            break;
        }
    }
    if (sorter != null) {
        return sorter.compare(viewer, object1, object2);
    }
    int categoryDelta = category(object1) - category(object2);
    if (categoryDelta == 0) {
        return super.compare(viewer, object1, object2);
    }
    return categoryDelta;
}

From source file:org.eclipse.bpel.common.ui.details.viewers.CComboViewer.java

License:Open Source License

protected int indexForElement(Object element) {
    ViewerSorter sorter = getSorter();
    if (sorter == null)
        return combo.getItemCount();
    int count = combo.getItemCount();
    int min = 0, max = count - 1;
    while (min <= max) {
        int mid = (min + max) / 2;
        Object data = comboMap.get(mid);
        int compare = sorter.compare(this, data, element);
        if (compare == 0) {
            // find first item > element
            while (compare == 0) {
                ++mid;/*from www .  j ava  2  s  . co m*/
                if (mid >= count) {
                    break;
                }
                data = comboMap.get(mid);
                compare = sorter.compare(this, data, element);
            }
            return mid;
        }
        if (compare < 0)
            min = mid + 1;
        else
            max = mid - 1;
    }
    return min;
}

From source file:org.eclipse.debug.internal.ui.viewers.AsynchronousTableViewer.java

License:Open Source License

protected int indexForElement(Object element) {
    ViewerSorter sorter = getSorter();
    if (sorter == null)
        return fTable.getItemCount();
    int count = fTable.getItemCount();
    int min = 0, max = count - 1;
    while (min <= max) {
        int mid = (min + max) / 2;
        Object data = fTable.getItem(mid).getData();
        int compare = sorter.compare(this, data, element);
        if (compare == 0) {
            // find first item > element
            while (compare == 0) {
                ++mid;//from  w  w  w  . ja v  a  2 s .  co  m
                if (mid >= count) {
                    break;
                }
                data = fTable.getItem(mid).getData();
                compare = sorter.compare(this, data, element);
            }
            return mid;
        }
        if (compare < 0)
            min = mid + 1;
        else
            max = mid - 1;
    }
    return min;
}

From source file:org.eclipse.mylyn.tasks.tests.TaskRepositoryViewSorterTest.java

License:Open Source License

public void testCategorySorting() {
    ViewerSorter sorter = new TaskRepositoriesViewSorter();
    TaskRepository t1 = new TaskRepository("kind", "http://a");
    t1.setCategory(IRepositoryConstants.CATEGORY_OTHER);
    TaskRepository t2 = new TaskRepository("kind", "http://b");
    t2.setCategory(IRepositoryConstants.CATEGORY_OTHER);
    TaskRepository t3 = new TaskRepository("kind", "http://c");
    t3.setCategory(TaskRepository.CATEGORY_TASKS);

    assertTrue(sorter.compare(null, t1, t2) < 0);
    assertTrue(sorter.compare(null, t2, t3) > 0);
    assertTrue(sorter.compare(null, t3, t1) < 0);
}

From source file:org.eclipse.swt.nebula.nebface.ctabletreeviewer.ccontainerviewer.CContainerViewer.java

License:Open Source License

protected int indexForElement(Object element) {
    ViewerSorter sorter = getSorter();
    if (sorter == null)
        return container.getItemCount();
    int count = container.getItemCount();
    int min = 0, max = count - 1;
    while (min <= max) {
        int mid = (min + max) / 2;
        Object data = container.getItem(mid).getData();
        int compare = sorter.compare(this, data, element);
        if (compare == 0) {
            // find first item > element
            while (compare == 0) {
                ++mid;/* ww  w  .ja  va2 s  .  com*/
                if (mid >= count)
                    break;
                data = container.getItem(mid).getData();
                compare = sorter.compare(this, data, element);
            }
            return mid;
        }
        if (compare < 0) {
            min = mid + 1;
        } else {
            max = mid - 1;
        }
    }
    return min;
}

From source file:org.eclipse.team.internal.ui.synchronize.ChangeSetModelSorter.java

License:Open Source License

public int compare(Viewer viewer, Object o1, Object o2) {
    //have to deal with non-resources in navigator
    //if one or both objects are not resources, returned a comparison 
    //based on class.
    if (o1 instanceof ChangeSetDiffNode && o2 instanceof ChangeSetDiffNode) {
        ChangeSet s1 = ((ChangeSetDiffNode) o1).getSet();
        ChangeSet s2 = ((ChangeSetDiffNode) o2).getSet();
        if (s1 instanceof ActiveChangeSet && s2 instanceof ActiveChangeSet) {
            return compareNames(((ActiveChangeSet) s1).getTitle(), ((ActiveChangeSet) s2).getTitle());
        }/*w ww  .j av a  2s  .c  o m*/
        if (s1 instanceof CheckedInChangeSet && s2 instanceof CheckedInChangeSet) {
            CheckedInChangeSet r1 = (CheckedInChangeSet) s1;
            CheckedInChangeSet r2 = (CheckedInChangeSet) s2;
            if (commentCriteria == DATE)
                return compareDates(r1.getDate(), r2.getDate());
            else if (commentCriteria == COMMENT)
                return compareNames(r1.getComment(), r2.getComment());
            else if (commentCriteria == USER)
                return compareNames(r1.getAuthor(), r2.getAuthor());
            else
                return 0;
        }
        if (s1 instanceof ActiveChangeSet) {
            return -1;
        } else if (s2 instanceof ActiveChangeSet) {
            return 1;
        }
        if (s1 instanceof CheckedInChangeSet) {
            return -1;
        } else if (s2 instanceof CheckedInChangeSet) {
            return 1;
        }
    }

    if (o1 instanceof ISynchronizeModelElement && o2 instanceof ISynchronizeModelElement) {
        ViewerSorter embeddedSorter = provider.getEmbeddedSorter();
        if (embeddedSorter != null) {
            return embeddedSorter.compare(viewer, o1, o2);
        } else {
            return compareNames(((ISynchronizeModelElement) o1).getName(),
                    ((ISynchronizeModelElement) o2).getName());
        }
    } else if (o1 instanceof ISynchronizeModelElement)
        return 1;
    else if (o2 instanceof ISynchronizeModelElement)
        return -1;

    return 0;
}

From source file:org.eclipse.ui.navigator.CommonViewerSorter.java

License:Open Source License

public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) {
    if (contentService == null)
        return -1;
    INavigatorContentDescriptor sourceOfLvalue = getSource(e1);
    INavigatorContentDescriptor sourceOfRvalue = getSource(e2);

    Object parent;//from  w ww .  j av a  2s . c o  m
    if (parentPath == null) {
        parent = viewer.getInput();
    } else {
        parent = parentPath.getLastSegment();
    }

    if (sourceOfLvalue == null) {
        logMissingExtension(parent, e1);
        return -1;
    }
    if (sourceOfRvalue == null) {
        logMissingExtension(parent, e2);
        return -1;
    }

    ViewerSorter sorter = null;

    // shortcut if contributed by same source
    if (sourceOfLvalue == sourceOfRvalue) {
        sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
    } else {

        boolean flags[] = new boolean[4];
        flags[0] = sourceOfLvalue.isTriggerPoint(e1);
        flags[1] = sourceOfLvalue.isTriggerPoint(e2);
        flags[2] = sourceOfRvalue.isTriggerPoint(e1);
        flags[3] = sourceOfRvalue.isTriggerPoint(e2);

        int whoknows = 0;
        whoknows = whoknows | (flags[0] & flags[1] ? LEFT_UNDERSTANDS : 0);
        whoknows = whoknows | (flags[2] & flags[3] ? RIGHT_UNDERSTANDS : 0);

        switch (whoknows) {
        case BOTH_UNDERSTAND:
            sorter = sourceOfLvalue.getSequenceNumber() < sourceOfRvalue.getSequenceNumber()
                    ? sorterService.findSorter(sourceOfLvalue, parent, e1, e2)
                    : sorterService.findSorter(sourceOfRvalue, parent, e1, e2);
            break;
        case LEFT_UNDERSTANDS:
            sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
            break;
        case RIGHT_UNDERSTANDS:
            sorter = sorterService.findSorter(sourceOfRvalue, parent, e1, e2);
            break;
        }
    }

    if (sorter != null) {
        return sorter.compare(viewer, e1, e2);
    }

    int categoryDelta = category(e1) - category(e2);
    if (categoryDelta == 0) {
        return super.compare(viewer, e1, e2);
    }
    return categoryDelta;
}

From source file:org.switchyard.tools.ui.common.SwitchYardSettingsGroup.java

License:Open Source License

private void populateRuntimesList() {
    final Set<IRuntimeComponent> compatibleRuntimes = new LinkedHashSet<IRuntimeComponent>();
    for (IProjectFacetVersion ipfv : SWITCHYARD_FACET.getVersions()) {
        final Set<IRuntime> runtimes = RuntimeManager.getRuntimes(Collections.singleton(ipfv));
        final ViewerSorter sorter = new RuntimesListSorter();
        for (IRuntime runtime : runtimes) {
            for (IRuntimeComponent component : runtime.getRuntimeComponents()) {
                if (SWITCHYARD_RUNTIME_ID.equals(component.getRuntimeComponentType().getId())
                        || FSW_RUNTIME_ID.equals(component.getRuntimeComponentType().getId())) {
                    compatibleRuntimes.add(component);
                    if (_runtimesFilter.select(null, null, component)) {
                        if (_initialComponent == null) {
                            _initialComponent = component;
                        } else {
                            if (sorter.compare(null, component, _initialComponent) < 0) {
                                _initialComponent = component;
                            }/*from  ww  w  .j a  va 2  s.  com*/
                        }
                    }
                    break;
                }
            }
        }
    }
    _compatibleRuntimes = new ArrayList<Object>(compatibleRuntimes.size() + 1);
    _compatibleRuntimes.add(NULL_RUNTIME);
    _compatibleRuntimes.addAll(compatibleRuntimes);
    _runtimesList.setInput(_compatibleRuntimes);
}