diff options
author | jmallet | 2017-07-26 08:54:02 +0000 |
---|---|---|
committer | jmallet | 2017-07-26 08:54:02 +0000 |
commit | 4c8e8d8b90c12e57741f2059ce41d8f82d96bbf3 (patch) | |
tree | 25683f5b623266b1004b008eefe8777a7e17c6ab | |
parent | 0a245046e4d1538f3a94b9e5567f16a3fe068f40 (diff) | |
download | org.eclipse.acceleo-4c8e8d8b90c12e57741f2059ce41d8f82d96bbf3.tar.gz org.eclipse.acceleo-4c8e8d8b90c12e57741f2059ce41d8f82d96bbf3.tar.xz org.eclipse.acceleo-4c8e8d8b90c12e57741f2059ce41d8f82d96bbf3.zip |
[479219] Support drag and drop from interpreter view.
From sirius interpreter view, drop an element does not work because of
use of LocalTransfer instead of LocalSelection transfer type.
LocalSelectionTransfer allow to keep the selection unlike LocalTransfer.
Bug: 479219
Change-Id: I84279d909a99eeefbb7cf5bf5404043753901b08
Signed-off-by: jmallet <jessy.mallet@obeo.fr>
2 files changed, 12 insertions, 14 deletions
diff --git a/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/internal/view/ResultDragListener.java b/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/internal/view/ResultDragListener.java index 5efebbec1..6c7155514 100644 --- a/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/internal/view/ResultDragListener.java +++ b/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/internal/view/ResultDragListener.java @@ -1,5 +1,5 @@ /*******************************************************************************
- * Copyright (c) 2011, 2012 Obeo.
+ * Copyright (c) 2011, 2017 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,8 +10,7 @@ *******************************************************************************/
package org.eclipse.acceleo.ui.interpreter.internal.view;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
@@ -23,9 +22,6 @@ import org.eclipse.swt.dnd.DragSourceEvent; * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
*/
public class ResultDragListener extends DragSourceAdapter {
- /** Keeps track of the elements selected at the time the user starts the drag operation. */
- protected ISelection selection;
-
/** Keeps a reference towards the viewer against which this listener is registered. */
private TreeViewer viewer;
@@ -46,8 +42,8 @@ public class ResultDragListener extends DragSourceAdapter { */
@Override
public void dragFinished(DragSourceEvent event) {
- selection = null;
- LocalTransfer.getInstance().javaToNative(null, null);
+ LocalSelectionTransfer.getTransfer().setSelection(null);
+ LocalSelectionTransfer.getTransfer().setSelectionSetTime(0);
}
/**
@@ -57,8 +53,8 @@ public class ResultDragListener extends DragSourceAdapter { */
@Override
public void dragSetData(DragSourceEvent event) {
- if (LocalTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = selection;
+ if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
+ event.data = LocalSelectionTransfer.getTransfer().getSelection();
}
}
@@ -69,6 +65,8 @@ public class ResultDragListener extends DragSourceAdapter { */
@Override
public void dragStart(DragSourceEvent event) {
- selection = viewer.getSelection();
+ LocalSelectionTransfer.getTransfer().setSelection(viewer.getSelection());
+ LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFFFFFFL);
+ event.doit = true;
}
}
diff --git a/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/view/InterpreterView.java b/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/view/InterpreterView.java index dc6139f15..47dfd4e60 100644 --- a/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/view/InterpreterView.java +++ b/plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/view/InterpreterView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2013 Obeo. + * Copyright (c) 2010, 2017 Obeo. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -98,6 +98,7 @@ import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.text.TextEvent; import org.eclipse.jface.text.TextSelection; import org.eclipse.jface.text.source.SourceViewer; +import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; @@ -159,7 +160,6 @@ import org.eclipse.ui.handlers.IHandlerActivation; import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.part.ViewPart; import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds; -import org.eclipse.ui.views.navigator.LocalSelectionTransfer; /** * The Actual "Interpreter" view that will be displayed in the Eclipse workbench. @@ -1764,7 +1764,7 @@ public class InterpreterView extends ViewPart { */ protected void setUpResultDragSupport(TreeViewer viewer) { int operations = DND.DROP_COPY | DND.DROP_LINK | DND.DROP_MOVE; - Transfer[] transfers = new Transfer[] {LocalTransfer.getInstance(), }; + Transfer[] transfers = new Transfer[] {LocalSelectionTransfer.getTransfer(), }; viewer.addDragSupport(operations, transfers, new ResultDragListener(viewer)); } |