From: Katja Luther Date: Thu, 13 Mar 2014 13:24:08 +0000 (+0000) Subject: #4114 sort order in taxon navigator X-Git-Tag: 3.6.0~721 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/a3de3443cd9a95d08de58f0745ed933f7ab85b74 #4114 sort order in taxon navigator --- diff --git a/.gitattributes b/.gitattributes index 15ef3f6c0..372faee8e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java index 36af4805f..3d2111995 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java @@ -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 pathList = new ArrayList(); 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 index 000000000..395d202e5 --- /dev/null +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeComparator.java @@ -0,0 +1,32 @@ +package eu.etaxonomy.taxeditor.navigation.navigator; + +import java.util.Arrays; + + +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerComparator; + + +import eu.etaxonomy.cdm.model.taxon.TaxonBase; +import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch; +import eu.etaxonomy.cdm.model.taxon.TaxonNode; + +public class TaxonNodeComparator extends ViewerComparator{ + + + public TaxonNodeComparator(TaxonComparatorSearch comparator) { + super(comparator); + } + + @Override + public void sort(final Viewer viewer, Object[] elements) { + + TaxonBase[] nodesArray = new TaxonBase[elements.length]; + if (elements.length>1){ + for(int i=0; i