Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmallet2017-07-26 08:54:02 +0000
committerjmallet2017-07-26 08:54:02 +0000
commit4c8e8d8b90c12e57741f2059ce41d8f82d96bbf3 (patch)
tree25683f5b623266b1004b008eefe8777a7e17c6ab
parent0a245046e4d1538f3a94b9e5567f16a3fe068f40 (diff)
downloadorg.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>
-rw-r--r--plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/internal/view/ResultDragListener.java20
-rw-r--r--plugins/org.eclipse.acceleo.ui.interpreter/src/org/eclipse/acceleo/ui/interpreter/view/InterpreterView.java6
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));
}

Back to the top