From d0a4b94941ae548533854c025e250c53144f2b93 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Mon, 16 Nov 2015 14:31:12 +0100 Subject: [PATCH] fixing #4808 --- .../DescriptionElementDragListener.java | 8 +++- .../DescriptionElementDropAdapter.java | 44 ++++++++++--------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java index e5e58d0f6..86c95a2c1 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java @@ -61,7 +61,9 @@ public class DescriptionElementDragListener extends DragSourceAdapter { List descriptionElements = new ArrayList(); for (Object object : selection.toList()){ if(object instanceof DescriptionBase){ - descriptionElements.addAll(((DescriptionBase) object).getElements()); + if (!((DescriptionBase) object).getElements().isEmpty()){ + descriptionElements.addAll(((DescriptionBase) object).getElements()); + } description = HibernateProxyHelper.deproxy(object, DescriptionBase.class); }else if(object instanceof FeatureNodeContainer){ @@ -73,7 +75,9 @@ public class DescriptionElementDragListener extends DragSourceAdapter { } if (DescriptionElementTransfer.getInstance().isSupportedType( event.dataType)) { - event.data = descriptionElements.toArray(new DescriptionElementBase[descriptionElements.size()]); + if (!descriptionElements.isEmpty()){ + event.data = descriptionElements.toArray(new DescriptionElementBase[descriptionElements.size()]); + } } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java index 9af171323..e7d7f2907 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java @@ -52,30 +52,34 @@ public class DescriptionElementDropAdapter extends ViewerDropAdapter { boolean isCopy = getCurrentOperation() == DND.DROP_COPY ? true : false; // cannot drop a feature node onto itself - for (Object droppedElement : droppedElements) { - if (droppedElement == null){ - MessagingUtils.warningDialog("Operation not supported yet", this, "We are currently unable to drag and drop a newly created element. Please save the editor to make this work."); - return false; - } - if(! (droppedElement instanceof DescriptionElementBase)){ - return false; - }else{ - DescriptionElementBase descriptionElement = (DescriptionElementBase) droppedElement; - - if (descriptionElement.getInDescription().equals(target)) { + if (droppedElements != null){ + for (Object droppedElement : droppedElements) { + if (droppedElement == null){ + MessagingUtils.warningDialog("Operation not supported yet", this, "We are currently unable to drag and drop a newly created element. Please save the editor to make this work."); return false; } - - descriptionElements.add(descriptionElement); - } + if(! (droppedElement instanceof DescriptionElementBase)){ + return false; + }else{ + DescriptionElementBase descriptionElement = (DescriptionElementBase) droppedElement; + + if (descriptionElement.getInDescription().equals(target)) { + return false; + } + + descriptionElements.add(descriptionElement); + } + } + + AbstractPostOperation operation = new MoveDescriptionElementsOperation("Move Descriptions", EditorUtil.getUndoContext(), target, descriptionElements, isCopy, null); + + EditorUtil.executeOperation(operation); + return true; } + MessagingUtils.warningDialog("Operation not supported yet", this, "We are unable to drag and drop empty descriptions"); + + return false; - AbstractPostOperation operation = new MoveDescriptionElementsOperation("Move Descriptions", EditorUtil.getUndoContext(), target, descriptionElements, isCopy, null); - - EditorUtil.executeOperation(operation); - - - return true; } /* (non-Javadoc) -- 2.34.1