#4114 sort order in taxon navigator
authorKatja Luther <k.luther@bgbm.org>
Thu, 13 Mar 2014 13:24:08 +0000 (13:24 +0000)
committerKatja Luther <k.luther@bgbm.org>
Thu, 13 Mar 2014 13:24:08 +0000 (13:24 +0000)
.gitattributes
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeComparator.java [new file with mode: 0644]

index 15ef3f6c063abc9aa38fe582316d4a7e024b3202..372faee8e6ebd0b0e3d92963f469ce7ac224042a 100644 (file)
@@ -884,6 +884,7 @@ eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigatio
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeComparator.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
index 36af4805f740a3a63b30023b6d1db892519b8407..3d2111995b7830e379c9378f54f3c16f433426d7 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IViewSite;
 import org.eclipse.ui.PartInitException;
@@ -31,6 +32,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
@@ -74,6 +76,9 @@ public class TaxonNavigator extends CommonNavigator implements
        /** {@inheritDoc} */
        @Override
        protected IAdaptable getInitialInput() {
+               TaxonComparatorSearch comparator = new TaxonComparatorSearch();
+               TaxonNodeComparator viewerComparator = new TaxonNodeComparator(comparator);
+               this.getCommonViewer().setComparator(viewerComparator);
                if (CdmStore.isActive()) {
                        // TODO when closing and reopening the taxon navigator
                        // we do not preserve state. Closing the view, in contrary to
@@ -90,6 +95,7 @@ public class TaxonNavigator extends CommonNavigator implements
        public void init(IViewSite site) throws PartInitException {
                super.init(site);
                init();
+               
        }
 
        /**
@@ -103,6 +109,9 @@ public class TaxonNavigator extends CommonNavigator implements
                        conversation.registerForDataStoreChanges(TaxonNavigator.this);
                }
                CdmStore.getLoginManager().addObserver(this);
+               
+
+               
        }
 
        /**
@@ -192,7 +201,8 @@ public class TaxonNavigator extends CommonNavigator implements
         * @return
         */
        private TreePath createTreePathFromString(String string) {
-
+               
+               
                List<CdmBase> pathList = new ArrayList<CdmBase>();
 
                if (string.length() == 0) {
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeComparator.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeComparator.java
new file mode 100644 (file)
index 0000000..395d202
--- /dev/null
@@ -0,0 +1,32 @@
+package eu.etaxonomy.taxeditor.navigation.navigator;\r
+\r
+import java.util.Arrays;\r
+\r
+\r
+import org.eclipse.jface.viewers.Viewer;\r
+import org.eclipse.jface.viewers.ViewerComparator;\r
+\r
+\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+\r
+public class TaxonNodeComparator extends ViewerComparator{\r
+\r
+       \r
+       public TaxonNodeComparator(TaxonComparatorSearch comparator) {\r
+               super(comparator);\r
+       }\r
+\r
+       @Override\r
+        public void sort(final Viewer viewer, Object[] elements) {\r
+               \r
+               TaxonBase[] nodesArray = new TaxonBase[elements.length];\r
+               if (elements.length>1){\r
+                       for(int i=0; i<elements.length; i++){\r
+                               nodesArray[i] = ((TaxonNode)elements[i]).getTaxon();\r
+                       }\r
+                       Arrays.sort(nodesArray, this.getComparator());\r
+               }\r
+       }\r
+}\r