X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.tests.modelled.ui%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Fui%2FCoverageViewSorter.java;fp=bundles%2Forg.simantics.tests.modelled.ui%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Fui%2FCoverageViewSorter.java;h=d25d8a4a20de5cf8d57fb66836f1e1afc0ca6be9;hp=b1a1413b6076a7bdc43d55290ff6095249606801;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/CoverageViewSorter.java b/bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/CoverageViewSorter.java index b1a1413b6..d25d8a4a2 100644 --- a/bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/CoverageViewSorter.java +++ b/bundles/org.simantics.tests.modelled.ui/src/org/simantics/tests/modelled/ui/CoverageViewSorter.java @@ -1,97 +1,97 @@ -package org.simantics.tests.modelled.ui; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.viewers.TreeViewerColumn; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.TreeColumn; -import org.simantics.scl.compiler.module.coverage.Coverage; - -class CoverageViewSorter extends ViewerComparator { - - private final TreeViewer viewer; - - public CoverageViewSorter(TreeViewer viewer) { - this.viewer = viewer; - } - - private Map columns = new HashMap<>(); - private int currentDirection; - - void addColumn(final TreeViewerColumn viewerColumn, final int columnidx) { - final TreeColumn column = viewerColumn.getColumn(); - setSortColumnAndDirection(column, SWT.UP); - column.addSelectionListener(new SelectionListener() { - - public void widgetSelected(SelectionEvent e) { - TreeColumn current = column.getParent().getSortColumn(); - if (current.equals(column)) { - int sortDirection = column.getParent().getSortDirection(); - setSortColumnAndDirection(column, sortDirection != SWT.DOWN ? SWT.DOWN : SWT.UP); - } else { - setSortColumnAndDirection(column, SWT.DOWN); - } - viewer.refresh(); - } - - public void widgetDefaultSelected(SelectionEvent e) { - } - }); - columns.put(column, columnidx); - } - - private void setSortColumnAndDirection(TreeColumn sortColumn, int direction) { - currentDirection = direction; - sortColumn.getParent().setSortColumn(sortColumn); - sortColumn.getParent().setSortDirection(direction); - } - - - @Override - public int compare(Viewer viewer, Object e1, Object e2) { - - TreeViewer v = (TreeViewer) viewer; - TreeColumn currentColumn = v.getTree().getSortColumn(); - - int res = 0; - if (e1 instanceof Coverage && e2 instanceof Coverage) { - Coverage c1 = (Coverage) e1; - Coverage c2 = (Coverage) e2; - - int indx = columns.get(currentColumn); - switch (indx) { - case STSTestRunnerView.COLUMN_ELEMENT: - res = c1.getIdentifier().compareToIgnoreCase(c2.getIdentifier()); - break; - case STSTestRunnerView.COLUMN_RATIO: - res = Double.compare(c1.getCoverage(), c2.getCoverage()); - break; - case STSTestRunnerView.COLUMN_COVERED: - res = (int) (c1.getCoveredCodeSize() - c2.getCoveredCodeSize()); - break; - case STSTestRunnerView.COLUMN_MISSED: - res = (int) (c1.getMissedCodeSize()) - c2.getMissedCodeSize(); - break; - case STSTestRunnerView.COLUMN_TOTAL: - res = (int) (c1.getTotalCodeSize() - c2.getTotalCodeSize()); - break; - } - if (res == 0) { - res = c1.getIdentifier().compareTo(c2.getIdentifier()); - } else { - res = isReverseSort() ? -res : res; - } - } - return res; - } - - private boolean isReverseSort() { - return currentDirection == SWT.DOWN; - } -} +package org.simantics.tests.modelled.ui; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.TreeViewerColumn; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerComparator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.widgets.TreeColumn; +import org.simantics.scl.compiler.module.coverage.Coverage; + +class CoverageViewSorter extends ViewerComparator { + + private final TreeViewer viewer; + + public CoverageViewSorter(TreeViewer viewer) { + this.viewer = viewer; + } + + private Map columns = new HashMap<>(); + private int currentDirection; + + void addColumn(final TreeViewerColumn viewerColumn, final int columnidx) { + final TreeColumn column = viewerColumn.getColumn(); + setSortColumnAndDirection(column, SWT.UP); + column.addSelectionListener(new SelectionListener() { + + public void widgetSelected(SelectionEvent e) { + TreeColumn current = column.getParent().getSortColumn(); + if (current.equals(column)) { + int sortDirection = column.getParent().getSortDirection(); + setSortColumnAndDirection(column, sortDirection != SWT.DOWN ? SWT.DOWN : SWT.UP); + } else { + setSortColumnAndDirection(column, SWT.DOWN); + } + viewer.refresh(); + } + + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + columns.put(column, columnidx); + } + + private void setSortColumnAndDirection(TreeColumn sortColumn, int direction) { + currentDirection = direction; + sortColumn.getParent().setSortColumn(sortColumn); + sortColumn.getParent().setSortDirection(direction); + } + + + @Override + public int compare(Viewer viewer, Object e1, Object e2) { + + TreeViewer v = (TreeViewer) viewer; + TreeColumn currentColumn = v.getTree().getSortColumn(); + + int res = 0; + if (e1 instanceof Coverage && e2 instanceof Coverage) { + Coverage c1 = (Coverage) e1; + Coverage c2 = (Coverage) e2; + + int indx = columns.get(currentColumn); + switch (indx) { + case STSTestRunnerView.COLUMN_ELEMENT: + res = c1.getIdentifier().compareToIgnoreCase(c2.getIdentifier()); + break; + case STSTestRunnerView.COLUMN_RATIO: + res = Double.compare(c1.getCoverage(), c2.getCoverage()); + break; + case STSTestRunnerView.COLUMN_COVERED: + res = (int) (c1.getCoveredCodeSize() - c2.getCoveredCodeSize()); + break; + case STSTestRunnerView.COLUMN_MISSED: + res = (int) (c1.getMissedCodeSize()) - c2.getMissedCodeSize(); + break; + case STSTestRunnerView.COLUMN_TOTAL: + res = (int) (c1.getTotalCodeSize() - c2.getTotalCodeSize()); + break; + } + if (res == 0) { + res = c1.getIdentifier().compareTo(c2.getIdentifier()); + } else { + res = isReverseSort() ? -res : res; + } + } + return res; + } + + private boolean isReverseSort() { + return currentDirection == SWT.DOWN; + } +}