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

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

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerComparator 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:gov.nasa.ensemble.common.ui.treetable.TreeTableViewer.java

License:Open Source License

/**
 * Update the element.  If it is necessary to refresh the entire tree,
 * "true" will be returned.  Otherwise false will be returned.
 * //from   w  ww. j av  a  2  s  .  co m
 * @param element
 * @param selectedTreeItems
 * @param treeChildren
 * @return whether the whole tree was refreshed or not
 */
private boolean handleObjectUpdated(O element, List<TreeItem> selectedTreeItems, Item[] treeChildren) {
    Widget widget = findItem(element);
    if (element == getInput()) {
        refresh();
        return true;
    }
    if (widget instanceof TreeItem) {
        TreeItem item = (TreeItem) widget;
        TreeItem parentItem = item.getParentItem();
        boolean outOfOrder = false;
        ViewerComparator comparator = getComparator();
        if (comparator != null) {
            Item[] siblings = (parentItem != null ? getChildren(parentItem) : treeChildren);
            int currentIndex = -1;
            for (Item child : siblings) {
                currentIndex++;
                if (child.getData() == element) {
                    break;
                }
            }
            if (currentIndex - 1 >= 0) {
                Item predecessor = siblings[currentIndex - 1];
                if (comparator.compare(this, predecessor.getData(), item.getData()) > 0) {
                    outOfOrder = true;
                }
            }
            if (currentIndex + 1 < siblings.length) {
                Item successor = siblings[currentIndex + 1];
                if (comparator.compare(this, successor.getData(), item.getData()) < 0) {
                    outOfOrder = true;
                }
            }
        }
        if (outOfOrder) {
            if (parentItem != null) {
                refresh(parentItem.getData());
            } else {
                refresh();
                return true;
            }
        } else {
            updateTreeItemPresentation(item, selectedTreeItems);
        }
    }
    return false;
}

From source file:org.eclipse.linuxtools.tmf.ui.tests.statistics.TmfBaseColumnDataProviderTest.java

License:Open Source License

public void testGetColumnData() {
    Vector<TmfBaseColumnData> columnsData = provider.getColumnData();
    assertNotNull("getColumnData", columnsData);
    assertEquals("getColumnData", 2, columnsData.size());

    TmfStatisticsTreeNode parentNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
    TmfStatisticsTreeNode treeNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName,
            Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
    TmfStatisticsTreeNode treeNode2 = fStatsData.get(new TmfFixedArray<String>(fTestName,
            Messages.TmfStatisticsData_EventTypes, fEvent3.getType().toString()));
    ViewerComparator vComp = null;
    for (TmfBaseColumnData columnData : columnsData) {
        assertNotNull("getColumnData", columnData);
        assertNotNull("getColumnData", columnData.getHeader());
        assertNotNull("getColumnData", columnData.getTooltip());

        // Testing labelProvider
        ColumnLabelProvider labelProvider = columnData.getLabelProvider();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(treeNode1.getKey()));
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(2)));
        }/*from www  . j av a 2s.c  om*/

        // Testing comparator
        vComp = columnData.getComparator();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) < 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) > 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) > 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) < 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
        }

        // Testing percentage provider
        ITmfColumnPercentageProvider percentProvider = columnData.getPercentageProvider();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertNull("getColumnData", percentProvider);
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            double percentage = (double) treeNode1.getValue().nbEvents / parentNode.getValue().nbEvents;
            assertEquals("getColumnData", (double) percentage,
                    (double) percentProvider.getPercentage(treeNode1));
        }
    }
}

From source file:org.eclipse.tracecompass.tmf.ui.tests.statistics.TmfBaseColumnDataProviderTest.java

License:Open Source License

/**
 * Method with test cases.//from  ww  w . j av a  2  s .  c  o m
 */
@Test
public void testGetColumnData() {
    List<TmfBaseColumnData> columnsData = provider.getColumnData();
    assertNotNull("getColumnData", columnsData);
    assertEquals("getColumnData", 4, columnsData.size());

    TmfStatisticsTreeNode parentNode = fStatsData.getNode(fTestName);
    TmfStatisticsTreeNode treeNode1 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes,
            fEvent1.getName());
    TmfStatisticsTreeNode treeNode2 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes,
            fEvent3.getName());
    ViewerComparator vComp = null;
    for (TmfBaseColumnData columnData : columnsData) {
        assertNotNull("getColumnData", columnData);
        assertNotNull("getColumnData", columnData.getHeader());
        assertNotNull("getColumnData", columnData.getTooltip());

        // Testing labelProvider
        ColumnLabelProvider labelProvider = columnData.getLabelProvider();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(treeNode1.getName()));
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            // might not work because of machine local number format
            assertEquals("getColumnData", "1", labelProvider.getText(treeNode1));
        }

        // Testing comparator
        vComp = columnData.getComparator();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) < 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) > 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) == 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) == 0);
            assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
        }

        // Testing percentage provider
        ITmfColumnPercentageProvider percentProvider = columnData.getPercentageProvider();
        if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
            assertNull("getColumnData", percentProvider);
        } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
            double percentage = (double) treeNode1.getValues().getTotal() / parentNode.getValues().getTotal();
            assertEquals("getColumnData", percentage, percentProvider.getPercentage(treeNode1), DELTA);
        }
    }
}

From source file:org.jboss.tools.openshift.test.ui.comparators.ProjectTreeSorterTest.java

License:Open Source License

@Test
public void testProjectsInTree() {
    final ViewerComparator comparator = ProjectViewerComparator.createProjectTreeSorter();
    ObservableTreeItem i1 = new ObservableTreeItem(mockProject("default", null));
    ObservableTreeItem i2 = new ObservableTreeItem(mockProject("openshift", null));
    ObservableTreeItem i3 = new ObservableTreeItem(mockProject("a", null));
    ObservableTreeItem i4 = new ObservableTreeItem(mockProject("d", null));
    ObservableTreeItem[] items = new ObservableTreeItem[] { i2, i4, i3, i1 };
    Arrays.sort(items, new Comparator<ObservableTreeItem>() {

        @Override/*  w  w w  .j  a  va  2s.  c om*/
        public int compare(ObservableTreeItem o1, ObservableTreeItem o2) {
            return comparator.compare(null, o1, o2);
        }

    });
    assertEquals(i1, items[0]);
    assertEquals(i2, items[1]);
    assertEquals(i3, items[2]);
    assertEquals(i4, items[3]);
}

From source file:org.jboss.tools.openshift.test.ui.comparators.ProjectTreeSorterTest.java

License:Open Source License

@Test
public void testProjectsWithLabelProvider() {
    final ViewerComparator comparator = new ProjectViewerComparator(new OpenShiftExplorerLabelProvider());
    IProject p1 = mockProject("default", "z");
    IProject p2 = mockProject("openshift", "y");
    IProject p3 = mockProject("a", "c");
    IProject p4 = mockProject("b2", null);
    IProject p5 = mockProject("d", "b");
    IProject[] projects = new IProject[] { p3, p5, p2, p1, p4 };
    Arrays.sort(projects, new Comparator<IProject>() {

        @Override//w  w w.  j  a v  a2 s.co  m
        public int compare(IProject o1, IProject o2) {
            return comparator.compare(null, o1, o2);
        }

    });
    assertEquals(p1, projects[0]);
    assertEquals(p2, projects[1]);
    assertEquals(p5, projects[2]);
    assertEquals(p4, projects[3]);
    assertEquals(p3, projects[4]);
}

From source file:org.jboss.tools.openshift.test.ui.comparators.ProjectTreeSorterTest.java

License:Open Source License

@Test
public void testServices() {
    ViewerComparator comparator = ProjectViewerComparator.createProjectTreeSorter();
    ObservableTreeItem i1 = new ObservableTreeItem(mockService("s1", "z"));
    ObservableTreeItem i2 = new ObservableTreeItem(mockService("s2", "a"));

    assertTrue(comparator.compare(null, i1, i2) < 0);
    assertTrue(comparator.compare(null, i2, i1) > 0);
    assertEquals(0, comparator.compare(null, i1, i1));
}

From source file:org.jboss.tools.openshift.test.ui.comparators.ProjectTreeSorterTest.java

License:Open Source License

@Test
public void testBuildConfigs() {
    ViewerComparator comparator = ProjectViewerComparator
            .createProjectTreeSorter(new OpenShiftExplorerLabelProvider());
    ObservableTreeItem i1 = new ObservableTreeItem(mockBuildConfig("n", "c1", "z"));
    ObservableTreeItem i2 = new ObservableTreeItem(mockBuildConfig("n", "c2", "x"));
    assertTrue(comparator.compare(null, i1, i2) < 0); //compared by source uri!
    assertTrue(comparator.compare(null, i2, i1) > 0);
    assertEquals(0, comparator.compare(null, i1, i1));
}

From source file:org.xmind.ui.viewers.CheckListViewer.java

License:Open Source License

/**
 * @param element// w ww  .jav a 2  s. c  o m
 *            the element to insert
 * @return the index where the item should be inserted.
 */
protected int indexForElement(Object element) {
    ViewerComparator comparator = getComparator();
    if (comparator == null) {
        return listGetItemCount();
    }
    int count = listGetItemCount();
    int min = 0, max = count - 1;
    while (min <= max) {
        int mid = (min + max) / 2;
        Object data = listMap.get(mid);
        int compare = comparator.compare(this, data, element);
        if (compare == 0) {
            // find first item > element
            while (compare == 0) {
                ++mid;
                if (mid >= count) {
                    break;
                }
                data = listMap.get(mid);
                compare = comparator.compare(this, data, element);
            }
            return mid;
        }
        if (compare < 0) {
            min = mid + 1;
        } else {
            max = mid - 1;
        }
    }
    return min;
}

From source file:org.xmind.ui.viewers.MComboViewer.java

License:Open Source License

protected int indexForElement(Object element) {
    ViewerComparator comparator = getComparator();
    if (comparator == null) {
        return elementList.indexOf(element);
    }//from ww w .j  av  a2  s .co  m
    int count = getItemCount();
    int min = 0, max = count - 1;
    while (min <= max) {
        int mid = (min + max) / 2;
        Object data = elementList.get(mid);
        int compare = comparator.compare(this, data, element);
        if (compare == 0) {
            // find first item > element
            while (compare == 0) {
                ++mid;
                if (mid >= count) {
                    break;
                }
                data = elementList.get(mid);
                compare = comparator.compare(this, data, element);
            }
            return mid;
        }
        if (compare < 0) {
            min = mid + 1;
        } else {
            max = mid - 1;
        }
    }
    return min;
}