ref #9766: moving default terms should not be possible.
authorKatja Luther <k.luther@bgbm.org>
Wed, 22 Mar 2023 07:53:18 +0000 (08:53 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 22 Mar 2023 07:53:18 +0000 (08:53 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDragListenerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDropAdapterE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties

index bdabe00dea3b6470a1955e25ce87591f2b47adf2..2284ba2a7037d9921e15fbe815afeb5155b60451 100644 (file)
@@ -43,6 +43,7 @@ public class DefinedTermDragListenerE4 extends DragSourceAdapter {
                 event.doit = false;
                 return;
             }
+            
         }
                event.doit = true;
        }
index 1a1a0aeea980dd39b54f8c78c06dee061e47de27..e6d63185543005f1c693bdf26d0a53a30543105a 100644 (file)
@@ -19,7 +19,9 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
 import org.eclipse.swt.dnd.TransferData;
 
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.MoveDefinedTermOperation;
@@ -46,7 +48,13 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
 
     private static final String MOVE_FAILED_MESSAGE = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE;
 
+    public static final String MOVE_FAILED_STANDARD_TERM = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM;
+
+   
+
        private final DefinedTermEditorE4 editor;
+       
+       private int test = 0;
 
        @Inject
     private UISynchronize sync;
@@ -83,6 +91,14 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
                         MOVE_FAILED_MESSAGE);
                 return false;
             }
+           
+            if(droppedObject instanceof FeatureDto ) {
+               if ((((FeatureDto) droppedObject).getVocabularyUuid().equals(VocabularyEnum.Feature.getUuid())|| ((FeatureDto) droppedObject).getVocabularyUuid().equals(VocabularyEnum.NameFeature.getUuid()))){
+                       MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_STANDARD_TERM);
+                       return false;
+               }
+            }
+
             if(target instanceof TermDto){
                 TermDto parentTerm = (TermDto)target;
                 //check term type compatibility
@@ -90,7 +106,7 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
                     MessagingUtils.warningDialog(TERM_TYPE_ERROR_TITLE, this, TERM_TYPE_ERROR_MESSAGE);
                     return false;
                 }
-
+                
                 TermDto partOfDto = parentTerm.getPartOfDto();
                 if(partOfDto!=null && partOfDto.equals(droppedObject)){
                     MessagingUtils.warningDialog(MOVE_FAILED, this.getClass(),
@@ -129,12 +145,14 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
                        TransferData transferType) {
            boolean valid = LocalSelectionTransfer.getTransfer().isSupportedType(transferType)
                 && target instanceof AbstractTermDto;
+          
            if(target instanceof TermVocabularyDto && getCurrentLocation()!=ViewerDropAdapter.LOCATION_ON ){
                valid = false;
            }
            if (target instanceof TermDto && ((TermDto)target).getOrderIndex() == null && getCurrentLocation() == ViewerDropAdapter.LOCATION_AFTER){
                valid = false;
            }
+
         return valid;
        }
 
index e5c212d93df95091950089a8a1318268b98b6786..311ebc2f30f4004b7aa036476064aa676ddd9467 100644 (file)
@@ -136,6 +136,7 @@ public class Messages extends NLS {
     public static String DefinedTermDropAdapterE4_MOVE_FAILED;
     public static String DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE;
     public static String DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM;
 
     public static String DebugPreferences_0;
     public static String DebugPreferences_1;
index 41283c20c3ea7cd9a55d0b092a99c08a3b46e54b..f080d8e7c4c93363cd3abfa059e3b73f86793a7a 100644 (file)
@@ -179,6 +179,7 @@ DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Cannot move term onto itself or its
 DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Moving the term failed. Try saving before.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=The term type of the dropped term does not match the target term type.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Term types do not match
+DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM=Standard terms are not allowed to move.
 
 DebugPreferences_0=Show up widget is disposed error messages
 DebugPreferences_1=Disable services api timestamp check
index c50c8c6c5e70578b7e8be18d19b3b70096f20f38..68f87775b6c5e171eecdeeefd62cc3d4cdf3de68 100644 (file)
@@ -178,6 +178,8 @@ DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Terme k
 DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Das Verschieben des Terms ist fehlgeschlagen. Versuchen Sie vorher zu speichern.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=Der Termtyp des verschobenen Terms stimmt nicht mit dem des Ziels überein.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Termtypen stimmen nicht überein
+DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM=Standard Terme können nicht verschoben werden
+
 
 DebugPreferences_0=\"Widget is disposed\" Fehler Meldungen anzeigen
 DebugPreferences_1=Deaktiviere die Überprüfung des API Timestamp