make the order of the taxon nodes editable
authorKatja Luther <k.luther@bgbm.org>
Mon, 11 May 2015 11:39:39 +0000 (11:39 +0000)
committerKatja Luther <k.luther@bgbm.org>
Mon, 11 May 2015 11:39:39 +0000 (11:39 +0000)
13 files changed:
eu.etaxonomy.taxeditor.navigation/plugin.xml
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
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java

index 641e749f950a04316bd0e75dcdd5a7adfdee5e2b..5caf3402c685bcb28702864b1a12a66c5b6d29ae 100644 (file)
                visible="true">
          </separator>
          <command
-               commandId="org.eclipse.ui.edit.delete"
+               commandId="eu.etaxonomy.taxeditor.navigation.command.delete"
                label="%command.label.10"
                style="push">
             <visibleWhen
                visible="true">
          </separator>
          <command
-               commandId="org.eclipse.ui.edit.delete"
+               commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.command.delete"
                label="%command.label.19"
                style="push">
          </command>
             id="eu.etaxonomy.taxeditor.navigation.navigator.handler.OpenFixClassificationHierarchyHandler"
             name="%command.name.10">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.DeleteHandler"
+            id="eu.etaxonomy.taxeditor.navigation.command.delete"
+            name="delete">
+      </command>
    </extension>
    <extension
          point="org.eclipse.ui.handlers">
       <handler
             class="eu.etaxonomy.taxeditor.navigation.navigator.handler.DeleteHandler"
-            commandId="org.eclipse.ui.edit.delete">
+            commandId="eu.etaxonomy.taxeditor.navigation.navigator.command.delete">
          <activeWhen>
             <with
                   variable="activePartId">
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.DeleteHandler"
-            commandId="org.eclipse.ui.edit.delete">
+            commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.command.delete">
          <activeWhen>
             <with
                   variable="activePartId">
index e10a6488ebc67b0c259c24d621cb80d624b9ab6b..c134450a42c88a979253d1d11a6efbb0b0bff8a6 100644 (file)
@@ -11,6 +11,7 @@
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Observable;
@@ -31,13 +32,16 @@ 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.TaxonComparator;
 import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
+import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.LoginManager;
 
@@ -76,8 +80,12 @@ public class TaxonNavigator extends CommonNavigator implements
        /** {@inheritDoc} */
        @Override
        protected IAdaptable getInitialInput() {
-
-               TaxonComparatorSearch comparator = new TaxonComparatorSearch();
+               Comparator comparator;
+               if (PreferencesUtil.getSortNodesNaturally()){
+                       comparator = new TaxonNaturalComparator();
+               } else{
+                       comparator = new TaxonComparatorSearch();
+               }
                TaxonNodeComparator viewerComparator = new TaxonNodeComparator(comparator);
                this.getCommonViewer().setComparator(viewerComparator);
         setLinkingEnabled(true);
index b049f86c057dcef7abd10da1db804a81d02ea18e..67c826f0da6976847e107c9780f582fc3596912d 100644 (file)
@@ -12,13 +12,14 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.taxon.Classification;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.taxeditor.ui.section.supplemental.IdentifiableSourceElement;\r
 \r
 public class TaxonNodeComparator extends ViewerComparator{\r
 \r
        \r
-       public TaxonNodeComparator(TaxonComparatorSearch comparator) {\r
+       public TaxonNodeComparator(Comparator<TaxonBase> comparator){\r
                super(comparator);\r
        }\r
 \r
@@ -29,7 +30,11 @@ public class TaxonNodeComparator extends ViewerComparator{
                if (e1 instanceof Classification && e2 instanceof Classification){\r
                        return ((Classification)e1).getTitleCache().compareTo(((Classification)e2).getTitleCache());\r
                } else{\r
-                       return this.getComparator().compare(((TaxonNode)e1).getTaxon(),((TaxonNode)e2).getTaxon());\r
+                       if (this.getComparator() instanceof TaxonNaturalComparator){\r
+                               return this.getComparator().compare((TaxonNode)e1, (TaxonNode)e2);\r
+                       }else{\r
+                               return this.getComparator().compare(((TaxonNode)e1).getTaxon(),((TaxonNode)e2).getTaxon());\r
+                       }\r
                }\r
        }\r
 }\r
index fbf20ea45cfa2e92d287b62520ef53496af2493f..86eb9506f926fd1267fbb4f1a23972d0ff3d4663 100644 (file)
@@ -19,12 +19,15 @@ import org.apache.log4j.Logger;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.IconAndMessageDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.dnd.DropTargetEvent;
 import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.navigator.CommonDropAdapter;
 import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
@@ -39,6 +42,7 @@ import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -65,6 +69,7 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
        public IStatus handleDrop(CommonDropAdapter dropAdapter,
                        DropTargetEvent dropTargetEvent, Object target) {
 
+               
                if (target instanceof ITaxonTreeNode) {
                        Set<TaxonNode> taxonNodes = getSelectedTaxa();
                        ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
@@ -82,7 +87,7 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                                }
             }
                }
-
+               
                return Status.CANCEL_STATUS;
        }
 
@@ -171,51 +176,64 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                if(targetITaxonTreeNode instanceof TaxonNode){
 
                        TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
-
-//                     for(TaxonNode taxonNode : taxonNodes){
-//                             if (taxonNode.equals(targetTaxonNode)) {
-//                                     return Status.CANCEL_STATUS;
-//                             }
-//                     }
-
-                       // Make sure parent taxon does not have unsaved changes
+               // Make sure parent taxon does not have unsaved changes
                        if (NavigationUtil.isDirty(targetTaxonNode)){
                                MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
                                "changes in the parent taxon. Pleas save first.");
                                return Status.CANCEL_STATUS;
                        }
 
-                       
-                       /*if (((TaxonNode) targetITaxonTreeNode).isTopmostNode()) {
-                               MessageDialog.openConfirm(null, "Taxonnode can not be moved", "A taxonnode can not be moved to the classification");
-                       }*/
-
-                       // Make sure parentTaxon is not the drop target
-//                     if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){
-//                             return Status.CANCEL_STATUS;
-//                     }
-
-                       // Make sure taxon is not being dropped onto itself
-//                     if (childTaxonNode.equals(targetTaxonNode)) {
-//                             return Status.CANCEL_STATUS;
-//                     }
-
-
-
                }
-
-               IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
-               if (workspaceUndoContext == null) {
-                       logger.error("Workspace undo context is null. DND operation cancelled");
-                       return Status.CANCEL_STATUS;
-               }
-
-               AbstractPostOperation operation = new MoveTaxonOperation
-                               ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator);
-               NavigationUtil.executeOperation(operation);
+               if (!PreferencesUtil.getSortNodesNaturally()){
+                       IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+                       if (workspaceUndoContext == null) {
+                               logger.error("Workspace undo context is null. DND operation cancelled");
+                               return Status.CANCEL_STATUS;
+                       }
+       
+                       AbstractPostOperation operation = new MoveTaxonOperation
+                                       ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
+                       NavigationUtil.executeOperation(operation);
+                       
+                       logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+                       return Status.OK_STATUS;
+               }else{
+                       String[] buttonLables = {"Parent", "Predecessor", "Cancel"};
+                       MessageDialog dialog = new MessageDialog(null, "Target node", null, "Do you want to use the target node as parent or do you want to move the taxon below the target.", MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
+                       dialog.open();
+                       int returnCode = dialog.getReturnCode();
+                       if (returnCode == 0){
+                               IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+                               if (workspaceUndoContext == null) {
+                                       logger.error("Workspace undo context is null. DND operation cancelled");
+                                       return Status.CANCEL_STATUS;
+                               }
+               
+                               AbstractPostOperation operation = new MoveTaxonOperation
+                                               ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true);
+                               NavigationUtil.executeOperation(operation);
+                               
+                               logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+                               return Status.OK_STATUS;
+                       }else if (returnCode == 1){
+                               IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
+                               if (workspaceUndoContext == null) {
+                                       logger.error("Workspace undo context is null. DND operation cancelled");
+                                       return Status.CANCEL_STATUS;
+                               }
                
-               logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
-               return Status.OK_STATUS;
+                               AbstractPostOperation operation = new MoveTaxonOperation
+                                               ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, false);
+                               NavigationUtil.executeOperation(operation);
+                               
+                               logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
+                               return Status.OK_STATUS;
+                       } else{
+                               return Status.CANCEL_STATUS;
+                       }
+                       
+                       
+               }
        }
 
        /* (non-Javadoc)
index ba681d70c4affeae78491497ba7ebeebf04c73a0..4c84b0197943fbdcd70f5ab5564839119aa1cef6 100644 (file)
@@ -41,8 +41,10 @@ import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionNaturalOrderDialog;
 
 /**
  * <p>MoveTaxonHandler class.</p>
@@ -87,8 +89,15 @@ public class MoveTaxonHandler extends AbstractHandler implements IPostOperationE
                
 //             TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
                if (taxonNode != null){
-                       parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null);
-                       
+                       boolean moveToNewParent = true; 
+                       if (PreferencesUtil.getSortNodesNaturally()){
+                               if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){
+                                       moveToNewParent = false;
+                               }
+                               parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose the taxon above the moved taxon.", excludeTaxa, null, null);
+                       }else{
+                               parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null);
+                       }
                        if(parentTaxonNode != null){
                                if(NavigationUtil.isDirty(parentTaxonNode)){
                                        MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Parent Taxon", "There are unsaved " +
@@ -98,7 +107,7 @@ public class MoveTaxonHandler extends AbstractHandler implements IPostOperationE
                                
                                AbstractPostOperation operation = new MoveTaxonOperation
                                                ("Move taxon to new parent", NavigationUtil.getUndoContext(),
-                                                               taxonNode, parentTaxonNode, taxonNavigator, taxonNavigator); //$NON-NLS-1$
+                                                               taxonNode, parentTaxonNode, taxonNavigator, taxonNavigator, moveToNewParent); //$NON-NLS-1$
                                NavigationUtil.executeOperation(operation);
                                taxonNavigator.refresh();
                        
index 16011b6cb116496d6a82685319c978ea1102bc05..bd2b57db5ecb6f2daebf24ad111b936ad3e5ad93 100644 (file)
@@ -53,7 +53,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
        //private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
 
        private TaxonNode taxonNode;
-
+       private boolean moveToParentNode;
        /**
         * <p>Constructor for MoveTaxonOperation.</p>
         *
@@ -65,7 +65,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public MoveTaxonOperation(String label, IUndoContext undoContext,
-                       TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+                       TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled, boolean moveToParentNode) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
                
                this.taxonNode = taxonNodeToMove;
@@ -74,7 +74,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                }*/
                
                this.newParentTreeNode = newParentTreeNode;
-
+               this.moveToParentNode = moveToParentNode;
                // Save old parent ITaxonTreeNodes for undo
                
                //this.parentNode = taxonNode.getParent();
@@ -90,7 +90,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                bind();
                monitor.worked(20);
 
-               UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid());
+               UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid(), moveToParentNode);
 //             try {
 //                     for (TaxonNode taxonNode : taxonNodes){
 //                             TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
index e4f26542136f3b75ec2881a16223dfa57ed57beb..a13d96793be297842565f4adad8c6dd84442ae23 100644 (file)
@@ -130,4 +130,29 @@ page.name.28 = Checklist Editor
 page.name.29 = Editor Profile\r
 page.name.30 = Language\r
 command.label.clone = Clone\r
-command.label.openInSpecimenEditor = Open in Specimen Editor
\ No newline at end of file
+command.label.openInSpecimenEditor = Open in Specimen Editor\r
+page.name.31 = Order of Taxonnodes\r
+extension.name.0 = Popup Menu Commands\r
+command.name.8 = Clone Datasource\r
+command.name.9 = Open Feature Tree Editor Wizard\r
+command.name.10 = Open Password Wizzard\r
+command.name.11 = Open Distribution Editor Wizard\r
+command.name.12 = Connect\r
+wizard.name.18 = CSV\r
+wizard.name.19 = CSV_NAME\r
+wizard.name.20 = CSV_PRINT\r
+activity.description = DELETE permission dependent ui contributions\r
+activity.name = Delete\r
+activity.description.0 = UPDATE permission dependent ui contributions\r
+activity.name.0 = Update\r
+activity.description.1 = CREATE permission dependent ui contributions\r
+activity.name.1 = Delete\r
+activity.description.2 = ROLE_USER_MANAGER dependent ui contributions\r
+activity.name.2 = UserManagement\r
+activity.description.3 = ROLE_PROJECT_MANAGER dependent ui contributions\r
+activity.name.3 = ProjectManagement\r
+extension-point.name = Cdm Viewer\r
+Bundle-Vendor = EDIT\r
+Bundle-Name = DataStore Bundle\r
+command.name.13 = delete\r
+command.name.14 = delete
\ No newline at end of file
index bad7e8f5491bfc85002307bebdef6325732479d4..9d02cb1d2161281aeb6db9994cc46588b4536df7 100644 (file)
@@ -14,3 +14,5 @@ LanguageEditorPreferencePage_ChooseDefaultLanguage=Please choose your default la
 LanguageEditorPreferencePage_EditorHasToRestart=The application has to be restarted, in order to complete the language switch.\nDo you want to restart now?\r
 LanguageEditorPreferencePage_PleaseRestart=Please Restart\r
 LanguageEditorPreferencePage_RestartRequired=After changing the default language, a restart is required,\nin order for the new settings to take effect.\r
+OrderPreferencePage_NewNavigatorWindowRequired=After changing the order of the taxon nodes, closing and reopen of the taxon navigator is required.\r
+OrderPreferencePage_PleaseReopenNavigator=Please close and reopen the taxon navigator.
\ No newline at end of file
index fcbc5af1d7f84f776606345355a75c23e98b50e0..3c18fec10e3b677c3d05f72f09091afde89a3769 100644 (file)
@@ -13,4 +13,5 @@ CdmDataSourceViewPart_9=Verf\u00FCgbar
 LanguageEditorPreferencePage_ChooseDefaultLanguage=Bitte wählen Sie die Standardsprache für den Taxonomischen Editor aus.\r
 LanguageEditorPreferencePage_EditorHasToRestart=Der Anwendung muss neu gestartet werden, um die Sprache zu wechseln.\nWollen Sie jetzt neu starten?\r
 LanguageEditorPreferencePage_PleaseRestart=Bitte neu starten\r
-LanguageEditorPreferencePage_RestartRequired=Nach dem Wechsel der Standardsprache ist ein Neustart erforderlich.
\ No newline at end of file
+LanguageEditorPreferencePage_RestartRequired=Nach dem Wechsel der Standardsprache ist ein Neustart erforderlich.\r
+OrderPreferencePage_NewNavigatorWindowRequired=Nach dem Ändern der Taxon Sortierung, ist das Schließen und erneute Öffnen des taxon Navigators erforderlich.
\ No newline at end of file
index 5bfa3d750c4668048ede557c0077b9035dd88850..37c33cdfeb15a1690faac784e1c68b90427e895a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.2"?>
 <plugin>
-   <extension-point id="eu.etaxonomy.taxeditor.store.cdmViewer" name="Cdm Viewer" schema="schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd"/>
+   <extension-point id="eu.etaxonomy.taxeditor.store.cdmViewer" name="%extension-point.name" schema="schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd"/>
    <extension
          point="org.eclipse.ui.preferencePages">
       <page
             id="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
             name="%page.name.30">
       </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.preference.OrderPreferences"
+            id="eu.etaxonomy.taxeditor.preference.OrderPreferencesPage"
+            name="%page.name.31">
+      </page>
    </extension>
    <extension
          point="org.eclipse.ui.views">
                visible="true">
          </separator>
          <command
-               commandId="org.eclipse.ui.edit.delete"
+               commandId="eu.etaxonomy.taxeditor.view.datasource.delete"
                label="%command.label.9"
                style="push">
                <visibleWhen>
             </command>
          </menu>
          <command
-               commandId="org.eclipse.ui.edit.delete"
+               commandId="eu.etaxonomy.taxeditor.editor.definedTerms.delete"
                label="%command.label.14"
                style="push">
             <visibleWhen
          point="org.eclipse.ui.handlers">
       <handler
             class="eu.etaxonomy.taxeditor.view.datasource.handler.DeleteDataSourceHandler"
-            commandId="org.eclipse.ui.edit.delete">
+            commandId="eu.etaxonomy.taxeditor.view.datasource.delete">
          <activeWhen>
             <with
                   variable="activePartId">
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.definedterm.handler.DeleteTermBaseHandler"
-            commandId="org.eclipse.ui.edit.delete">
+            commandId="eu.etaxonomy.taxeditor.editor.definedTerms.delete">
          <activeWhen>
             <with
                   variable="activePartId">
       </handler>
    </extension>
    <extension
-         name="Popup Menu Commands"
+         name="%extension.name.0"
          point="org.eclipse.ui.commands">
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.ChangeConnectionHandler"
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CloneDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.clone"
-            name="Clone Datasource">
+            name="%command.name.8">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.close"
             name="%command.name.2">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.DeleteDataSourceHandler"
+            id="eu.etaxonomy.taxeditor.view.datasource.delete"
+            name="%command.name.13">
+      </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.UpdateDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.update"
       </command>
       <command
          id="eu.etaxonomy.taxeditor.store.open.FeatureTreeEditorWizard"
-         name="Open Feature Tree Editor Wizard">
+         name="%command.name.9">
          </command>
       <command
             id="eu.etaxonomy.taxeditor.store.openPasswordWizzard"
-            name="Open Password Wizzard">
+            name="%command.name.10">
       </command>
       <command
             id="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler"
-            name="Open Distribution Editor Wizard">
+            name="%command.name.11">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.ChangeConnectionHandler"
             id="eu.etaxonomy.taxeditor.datasource.connect"
-            name="Connect">
+            name="%command.name.12">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.DeleteTermBaseHandler"
+            id="eu.etaxonomy.taxeditor.editor.definedTerms.delete"
+            name="%command.name.14">
       </command>
    </extension>
    <extension
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.CsvExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.csv"
-            name="CSV">
+            name="%wizard.name.18">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.CsvNameExportWizard"
-            id="eu.etaxonomy.taxeditor.io.export.csv"
-            name="CSV-Names">
+            id="eu.etaxonomy.taxeditor.io.export.csv_name"
+            name="%wizard.name.19">
+      </wizard>
+      <wizard
+            category="eu.etaxonomy.taxeditor.export.category.cdm"
+            class="eu.etaxonomy.taxeditor.io.wizard.CsvPrintExportWizard"
+            id="eu.etaxonomy.taxeditor.io.export.csv_print"
+            name="%wizard.name.20">
       </wizard>
    </extension>
    <extension
 <extension
       point="org.eclipse.ui.activities">
    <activity
-         description="DELETE permission dependent ui contributions"
+         description="%activity.description"
          id="eu.etaxonomy.taxeditor.store.activityDelete"
-         name="Delete">
+         name="%activity.name">
       <enabledWhen>
          <reference
                definitionId="canDELETE">
          pattern="eu\.etaxonomy\.taxeditor\..*/.*.delete">
    </activityPatternBinding>
    <activity
-         description="UPDATE permission dependent ui contributions"
+         description="%activity.description.0"
          id="eu.etaxonomy.taxeditor.store.activityUpdate"
-         name="Update">
+         name="%activity.name.0">
       <enabledWhen>
          <reference
                definitionId="canUPDATE">
          pattern="eu\.etaxonomy\.taxeditor\..*/.*.command\.update\..*">
    </activityPatternBinding>
    <activity
-         description="CREATE permission dependent ui contributions"
+         description="%activity.description.1"
          id="eu.etaxonomy.taxeditor.store.activityCreate"
-         name="Delete">
+         name="%activity.name.1">
       <enabledWhen>
          <reference
                definitionId="canDELETE">
          pattern="eu\.etaxonomy\.taxeditor\..*/.*.command\.create\..*">
    </activityPatternBinding>
    <activity
-         description="ROLE_USER_MANAGER dependent ui contributions"
+         description="%activity.description.2"
          id="eu.etaxonomy.taxeditor.store.activityUserManagement"
-         name="UserManagement">
+         name="%activity.name.2">
       <enabledWhen>
          <reference
                definitionId="hasROLE_USER_MANAGER">
          pattern="eu\.etaxonomy\.taxeditor\..*/bulkeditor\.input\.group">
    </activityPatternBinding>
    <activity
-         description="ROLE_PROJECT_MANAGER dependent ui contributions"
+         description="%activity.description.3"
          id="eu.etaxonomy.taxeditor.store.activityProjectManagement"
-         name="ProjectManagement">
+         name="%activity.name.3">
       <enabledWhen>
          <reference
                definitionId="hasROLE_PROJECT_MANAGER">
index dcbf087ed8de6c094bd6d1d616d3b922ae0b945f..9757c60b19eec36087b3f7ba0bc39a0eac1e5683 100644 (file)
@@ -22,6 +22,8 @@ public class Messages extends NLS {
     public static String LanguageEditorPreferencePage_EditorHasToRestart;
     public static String LanguageEditorPreferencePage_PleaseRestart;
     public static String LanguageEditorPreferencePage_RestartRequired;
+    public static String OrderPreferencePage_NewNavigatorWindowRequired;
+    public static String OrderPreferencePage_PleaseReopenNavigator;
     public static String CdmDataSourceViewPart_1;
     public static String CdmDataSourceViewPart_10;
     public static String CdmDataSourceViewPart_11;
index a748e14c661f218e2d57a50206435585dccc5286..c34d4b7e0f3e6ed5f26fdda6f0c443cdaefff8d9 100644 (file)
@@ -89,7 +89,9 @@ public interface IPreferenceKeys {
 
        /** Constant <code>SORT_RANKS_HIERARCHICHALLY="eu.etaxonomy.taxeditor.menus.sortRanksH"{trunked}</code> */
        public static final String SORT_RANKS_HIERARCHICHALLY = "eu.etaxonomy.taxeditor.menus.sortRanksHierarchichally";
-
+       /** Constant <code>SORT_NODES_NATURALL="eu.etaxonomy.taxeditor.menus.sortNodesN"{trunked}</code> */
+       public static final String SORT_NODES_NATURALLY = "eu.etaxonomy.taxeditor.menus.sortNodesNaturally";
+       
        /**
         * Whether multilanguage text fields should be editable in multiple languages.
         */
index bbca40e5a93ea95f652007fa35c2cca6a40d4fb3..83e6756fc4caf2d40451b9b1ed628662057fc2e4 100644 (file)
@@ -751,4 +751,27 @@ public class PreferencesUtil implements IPreferenceKeys {
             ctrl.setEnabled(enabled);
         }
     }
+    
+    /**
+        * <p>
+        * getSortRanksNaturally
+        * </p>
+        *
+        * @return a boolean.
+        */
+       public static boolean getSortNodesNaturally() {
+               return getPreferenceStore().getBoolean(SORT_NODES_NATURALLY);
+       }
+       
+       /**
+        * <p>
+        * setSortRanksNaturally
+        * </p>
+        *
+        * @param selection
+        *            a boolean.
+        */
+       public static void setSortNodesNaturally(boolean selection) {
+               getPreferenceStore().setValue(SORT_NODES_NATURALLY, selection);
+       }
 }