From 0d2ee5d613831bc7a5f2d8c55d623896560704e6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Thu, 13 Oct 2016 15:34:41 +0200 Subject: [PATCH] fix #4461 fix ordering for Datasource View --- .../CdmDataSourceViewerComparator.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java index 5cadc48c9..7275e7fb8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java @@ -59,7 +59,16 @@ public class CdmDataSourceViewerComparator extends ViewerComparator { break; case 8: // is compatible - break; + boolean c1 = d1.isDataSourceCompatible(); + boolean c2 = d2.isDataSourceCompatible(); + if (c1 == c2){ + result = 0; + }else if (c1 == true){ + result = -1; + }else{ + result = 1; + } + break; case 7: result = d1.getMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION).compareTo(d2.getMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION)); break; @@ -67,26 +76,35 @@ public class CdmDataSourceViewerComparator extends ViewerComparator { result = d1.getMetaData(MetaDataPropertyName.DB_CREATE_DATE).compareTo(d2.getMetaData(MetaDataPropertyName.DB_CREATE_DATE)); break; case 5: - // is running - break; - case 4: if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) { result = ((ICdmDataSource)cs1).getDatabase().compareTo(((ICdmDataSource)cs2).getDatabase()); } break; - case 3: + case 4: if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) { result = ((ICdmDataSource)cs1).getDatabaseType().getName().compareTo(((ICdmDataSource)cs2).getDatabaseType().getName()); } break; + case 3: + // is running + boolean r1 = d1.isRunning(); + boolean r2 = d2.isRunning(); + if (r1 == r2){ + result = 0; + }else if (r1 == true){ + result = -1; + }else{ + result = 1; + } + break; case 2: String server1 = d1.getCdmSource().getServer(); String server2 = d2.getCdmSource().getServer(); - if(server1 != null && server2 != null){ - result = server1.compareTo(server2); - } // h2 databases do not have server entries + server1 = server1 == null? "local" : server1; + server2 = server2 == null? "local" : server2; + result = server1.compareTo(server2); break; default: result = d1.getCdmSource().getName().compareTo(d2.getCdmSource().getName()); -- 2.30.2