List of usage examples for org.eclipse.jface.viewers ViewerSorter compare
public int compare(Viewer viewer, Object e1, Object e2)
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); }