diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineDragListener.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineDragListener.java | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineDragListener.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineDragListener.java deleted file mode 100644 index 1af3053e3..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineDragListener.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.eclipse.org/org/documents/epl-v10.php - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.ide.eclipse.adt.internal.editors.layout.gle2; - -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.swt.dnd.DND; -import org.eclipse.swt.dnd.DragSourceEvent; -import org.eclipse.swt.dnd.DragSourceListener; -import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; - -import java.util.ArrayList; - -/** Drag listener for the outline page */ -/* package */ class OutlineDragListener implements DragSourceListener { - private TreeViewer mTreeViewer; - private OutlinePage mOutlinePage; - private final ArrayList<SelectionItem> mDragSelection = new ArrayList<SelectionItem>(); - private SimpleElement[] mDragElements; - - public OutlineDragListener(OutlinePage outlinePage, TreeViewer treeViewer) { - super(); - mOutlinePage = outlinePage; - mTreeViewer = treeViewer; - } - - @Override - public void dragStart(DragSourceEvent e) { - Tree tree = mTreeViewer.getTree(); - - TreeItem overTreeItem = tree.getItem(new Point(e.x, e.y)); - if (overTreeItem == null) { - // Not dragging over a tree item - e.doit = false; - return; - } - CanvasViewInfo over = getViewInfo(overTreeItem); - if (over == null) { - e.doit = false; - return; - } - - // The selection logic for the outline is much simpler than in the canvas, - // because for one thing, the tree selection is updated synchronously on mouse - // down, so it's not possible to start dragging a non-selected item. - // We also don't deliberately disallow root-element dragging since you can - // drag it into another form. - final LayoutCanvas canvas = mOutlinePage.getEditor().getCanvasControl(); - SelectionManager selectionManager = canvas.getSelectionManager(); - TreeItem[] treeSelection = tree.getSelection(); - mDragSelection.clear(); - for (TreeItem item : treeSelection) { - CanvasViewInfo viewInfo = getViewInfo(item); - if (viewInfo != null) { - mDragSelection.add(selectionManager.createSelection(viewInfo)); - } - } - SelectionManager.sanitize(mDragSelection); - - e.doit = !mDragSelection.isEmpty(); - int imageCount = mDragSelection.size(); - if (e.doit) { - mDragElements = SelectionItem.getAsElements(mDragSelection); - GlobalCanvasDragInfo.getInstance().startDrag(mDragElements, - mDragSelection.toArray(new SelectionItem[imageCount]), - canvas, new Runnable() { - @Override - public void run() { - canvas.getClipboardSupport().deleteSelection("Remove", - mDragSelection); - } - }); - return; - } - - e.detail = DND.DROP_NONE; - } - - @Override - public void dragSetData(DragSourceEvent e) { - if (TextTransfer.getInstance().isSupportedType(e.dataType)) { - LayoutCanvas canvas = mOutlinePage.getEditor().getCanvasControl(); - e.data = SelectionItem.getAsText(canvas, mDragSelection); - return; - } - - if (SimpleXmlTransfer.getInstance().isSupportedType(e.dataType)) { - e.data = mDragElements; - return; - } - - // otherwise we failed - e.detail = DND.DROP_NONE; - e.doit = false; - } - - @Override - public void dragFinished(DragSourceEvent e) { - // Unregister the dragged data. - // Clear the selection - mDragSelection.clear(); - mDragElements = null; - GlobalCanvasDragInfo.getInstance().stopDrag(); - } - - private CanvasViewInfo getViewInfo(TreeItem item) { - Object data = item.getData(); - if (data != null) { - return OutlinePage.getViewInfo(data); - } - - return null; - } -}
\ No newline at end of file |