X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop%2Fsrc%2Forg%2Fsimantics%2Finterop%2Futils%2FStringColumnComparator.java;h=b79e4a7e473175ab3afc43020da577b6440ebab7;hb=abc8f6a39f4af28746f155365b1ba8673bc33ef8;hp=e2a338a8c2e963088d991d4d810706c84ec25403;hpb=043bd03f3df17a137451cf51e2f9f01b251737c2;p=simantics%2Finterop.git diff --git a/org.simantics.interop/src/org/simantics/interop/utils/StringColumnComparator.java b/org.simantics.interop/src/org/simantics/interop/utils/StringColumnComparator.java index e2a338a..b79e4a7 100644 --- a/org.simantics.interop/src/org/simantics/interop/utils/StringColumnComparator.java +++ b/org.simantics.interop/src/org/simantics/interop/utils/StringColumnComparator.java @@ -28,60 +28,61 @@ public class StringColumnComparator extends ViewerComparator { } } - @SuppressWarnings("unchecked") @Override public int compare(Viewer viewer, Object e1, Object e2) { + int rc = 0; int cat1 = category(e1); int cat2 = category(e2); if (cat1 != cat2) { - return cat1 - cat2; - } + rc = cat1 - cat2; + } else { - String name1 = null; - String name2 = null; - - - - if (viewer == null || !(viewer instanceof ContentViewer)) { - name1 = e1.toString(); - name2 = e2.toString(); - } else { - IBaseLabelProvider prov = ((ContentViewer) viewer).getLabelProvider(); - if (viewer instanceof TableViewer && ((TableViewer)viewer).getLabelProvider(propertyIndex) != null) { - CellLabelProvider clp = ((TableViewer)viewer).getLabelProvider(propertyIndex); - if (clp instanceof ILabelProvider) { - ILabelProvider ilb = (ILabelProvider)clp; - name1 = ilb.getText(e1); - name2 = ilb.getText(e2); - } - } - if (name1 == null) { - if (prov instanceof ITableLabelProvider) { - ITableLabelProvider lprov = (ITableLabelProvider) prov; - name1 = lprov.getColumnText(e1,propertyIndex); - name2 = lprov.getColumnText(e2,propertyIndex); - } else if (prov instanceof ILabelProvider) { - ILabelProvider lprov = (ILabelProvider) prov; - name1 = lprov.getText(e1); - name2 = lprov.getText(e2); - } else { - name1 = e1.toString(); - name2 = e2.toString(); + String name1 = null; + String name2 = null; + + + + if (viewer == null || !(viewer instanceof ContentViewer)) { + name1 = e1.toString(); + name2 = e2.toString(); + } else { + IBaseLabelProvider prov = ((ContentViewer) viewer).getLabelProvider(); + if (viewer instanceof TableViewer && ((TableViewer)viewer).getLabelProvider(propertyIndex) != null) { + CellLabelProvider clp = ((TableViewer)viewer).getLabelProvider(propertyIndex); + if (clp instanceof ILabelProvider) { + ILabelProvider ilb = (ILabelProvider)clp; + name1 = ilb.getText(e1); + name2 = ilb.getText(e2); + } } - } - } - if (name1 == null) { - name1 = "";//$NON-NLS-1$ - } - if (name2 == null) { - name2 = "";//$NON-NLS-1$ + if (name1 == null) { + if (prov instanceof ITableLabelProvider) { + ITableLabelProvider lprov = (ITableLabelProvider) prov; + name1 = lprov.getColumnText(e1,propertyIndex); + name2 = lprov.getColumnText(e2,propertyIndex); + } else if (prov instanceof ILabelProvider) { + ILabelProvider lprov = (ILabelProvider) prov; + name1 = lprov.getText(e1); + name2 = lprov.getText(e2); + } else { + name1 = e1.toString(); + name2 = e2.toString(); + } + } + } + if (name1 == null) { + name1 = "";//$NON-NLS-1$ + } + if (name2 == null) { + name2 = "";//$NON-NLS-1$ + } + + // use the comparator to compare the strings + rc = getComparator().compare(name1, name2); } - - // use the comparator to compare the strings - int rc = getComparator().compare(name1, name2); if (direction != DESCENDING) rc = -rc; return rc;