diff options
9 files changed, 112 insertions, 305 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/DropTarget.java index 06ec6856b2..3ef1989255 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/DropTarget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/DropTarget.java @@ -71,7 +71,7 @@ public class DropTarget extends Widget { private Control control; private Listener controlListener; private Transfer[] transferAgents = new Transfer[0]; - private DragUnderEffect effect; + private DragAndDropEffect effect; private static final String DROPTARGETID = "DropTarget"; //$NON-NLS-1$ @@ -129,11 +129,11 @@ public DropTarget(Control control, int style) { }); if (control instanceof Tree) { - effect = new TreeDragUnderEffect((Tree)control); + effect = new TreeDragAndDropEffect((Tree)control); } else if (control instanceof Table) { - effect = new TableDragUnderEffect((Table)control); + effect = new TableDragAndDropEffect((Table)control); } else { - effect = new NoDragUnderEffect(control); + effect = new NoDragAndDropEffect(control); } } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragAndDropEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragAndDropEffect.java new file mode 100644 index 0000000000..e16bcacb21 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragAndDropEffect.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.dnd; + + +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; + +class TableDragAndDropEffect extends DragAndDropEffect { + private Table table; + +TableDragAndDropEffect(Table table) { + this.table = table; +} +Widget getItem(int x, int y) { + if (table == null) return null; + Point coordinates = new Point(x, y); + coordinates = table.toControl(coordinates); + return table.getItem(coordinates); +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragUnderEffect.java deleted file mode 100644 index 934f08a053..0000000000 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TableDragUnderEffect.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.dnd; - - -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - -class TableDragUnderEffect extends DragUnderEffect { - private Table table; - private TableItem currentItem; - private TableItem[] selection = new TableItem[0]; - private int currentEffect = DND.FEEDBACK_NONE; - -TableDragUnderEffect(Table table) { - this.table = table; -} -void show(int effect, int x, int y) { - TableItem item = null; - if (effect != DND.FEEDBACK_NONE) item = findItem(x, y); - if (item == null) effect = DND.FEEDBACK_NONE; - if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) { - selection = table.getSelection(); - table.setSelection(new TableItem[0]); - } - boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE; - setDragUnderEffect(effect, item); - if (restoreSelection) { - table.setSelection(selection); - selection = new TableItem[0]; - } -} -private TableItem findItem(int x, int y){ - if (table == null) return null; - Point coordinates = new Point(x, y); - coordinates = table.toControl(coordinates); - return table.getItem(coordinates); -} -private void setDragUnderEffect(int effect, TableItem item) { - if (currentItem != item) { - if (item == null) { - table.setSelection(new TableItem[0]); - } else { - table.setSelection(new TableItem[] {item}); - } - currentItem = item; - } - currentEffect = effect; -} -} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragAndDropEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragAndDropEffect.java new file mode 100644 index 0000000000..9049850449 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragAndDropEffect.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.dnd; + + +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; + +class TreeDragAndDropEffect extends DragAndDropEffect { + + private Tree tree; + +TreeDragAndDropEffect(Tree tree) { + this.tree = tree; +} +Widget getItem(int x, int y) { + Point coordinates = new Point(x, y); + coordinates = tree.toControl(coordinates); + return tree.getItem(coordinates); +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragUnderEffect.java deleted file mode 100644 index 35ae0c4d6e..0000000000 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/emulated/org/eclipse/swt/dnd/TreeDragUnderEffect.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.dnd; - - -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - -class TreeDragUnderEffect extends DragUnderEffect { - - private Tree tree; - private TreeItem currentItem = null; - private int currentEffect = DND.FEEDBACK_NONE; - private TreeItem[] selection = new TreeItem[0]; - -TreeDragUnderEffect(Tree tree) { - this.tree = tree; -} -void show(int effect, int x, int y) { - TreeItem item = null; - if (effect != DND.FEEDBACK_NONE) item = findItem(x, y); - if (item == null) effect = DND.FEEDBACK_NONE; - if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) { - selection = tree.getSelection(); - tree.setSelection(new TreeItem[0]); - } - boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE; - setDragUnderEffect(effect, item); - if (restoreSelection) { - tree.setSelection(selection); - selection = new TreeItem[0]; - } -} -private TreeItem findItem(int x , int y){ - Point coordinates = new Point(x, y); - coordinates = tree.toControl(coordinates); - return tree.getItem(coordinates); -} -private void setDragUnderEffect(int effect, TreeItem item) { - switch (effect) { - case DND.FEEDBACK_SELECT: - if (currentEffect == DND.FEEDBACK_INSERT_AFTER || - currentEffect == DND.FEEDBACK_INSERT_BEFORE) { - setInsertMark(null, false); - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - } - if (currentEffect != effect || currentItem != item) { - setDropSelection(item); - currentEffect = DND.FEEDBACK_SELECT; - currentItem = item; - } - break; - case DND.FEEDBACK_INSERT_AFTER: - case DND.FEEDBACK_INSERT_BEFORE: - if (currentEffect == DND.FEEDBACK_SELECT) { - setDropSelection(null); - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - } - if (currentEffect != effect || currentItem != item) { - setInsertMark(item, effect == DND.FEEDBACK_INSERT_AFTER); - currentEffect = effect; - currentItem = item; - } - break; - default : - if (currentEffect == DND.FEEDBACK_INSERT_AFTER || - currentEffect == DND.FEEDBACK_INSERT_BEFORE) { - setInsertMark(null, false); - } - if (currentEffect == DND.FEEDBACK_SELECT) { - setDropSelection(null); - } - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - break; - } -} -private void setDropSelection (TreeItem item) { - if (item == null) { - tree.setSelection(new TreeItem[0]); - } else { - tree.setSelection(new TreeItem[]{item}); - } -} -private void setInsertMark (TreeItem item, boolean after) { - // not currently implemented -} -} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DropTarget.java index b04b82e10d..ec4ea74bef 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DropTarget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DropTarget.java @@ -71,7 +71,7 @@ public class DropTarget extends Widget { Control control; Listener controlListener; Transfer[] transferAgents = new Transfer[0]; - DragUnderEffect effect; + DragAndDropEffect effect; static final String DROPTARGETID = "DropTarget"; //$NON-NLS-1$ @@ -129,11 +129,11 @@ public DropTarget(Control control, int style) { }); if (control instanceof Tree) { - effect = new TreeDragUnderEffect((Tree)control); + effect = new TreeDragAndDropEffect((Tree)control); } else if (control instanceof Table) { - effect = new TableDragUnderEffect((Table)control); + effect = new TableDragAndDropEffect((Table)control); } else { - effect = new NoDragUnderEffect(control); + effect = new NoDragAndDropEffect(control); } } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TableDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TableDragUnderEffect.java index d13fd5e022..4847ffaf8a 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TableDragUnderEffect.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TableDragUnderEffect.java @@ -14,31 +14,13 @@ package org.eclipse.swt.dnd; import org.eclipse.swt.graphics.*; import org.eclipse.swt.widgets.*; -class TableDragUnderEffect extends DragUnderEffect { +class TableDragAndDropEffect extends DragAndDropEffect { private Table table; - private TableItem currentItem; - private TableItem[] selection = new TableItem[0]; - private int currentEffect = DND.FEEDBACK_NONE; -TableDragUnderEffect(Table table) { +TableDragAndDropEffect(Table table) { this.table = table; } -void show(int effect, int x, int y) { - TableItem item = null; - if (effect != DND.FEEDBACK_NONE) item = findItem(x, y); - if (item == null) effect = DND.FEEDBACK_NONE; - if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) { - selection = table.getSelection(); - table.setSelection(new TableItem[0]); - } - boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE; - setDragUnderEffect(effect, item); - if (restoreSelection) { - table.setSelection(selection); - selection = new TableItem[0]; - } -} -private TableItem findItem(int x, int y){ +Widget getItem(int x, int y) { if (table == null) return null; Point coordinates = new Point(x, y); coordinates = table.toControl(coordinates); @@ -53,17 +35,6 @@ private TableItem findItem(int x, int y){ if (item != null) return item; } return null; - -} -private void setDragUnderEffect(int effect, TableItem item) { - if (currentItem != item) { - if (item == null) { - table.setSelection(new TableItem[0]); - } else { - table.setSelection(new TableItem[] {item}); - } - currentItem = item; - } - currentEffect = effect; + } } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragAndDropEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragAndDropEffect.java new file mode 100644 index 0000000000..019e31760b --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragAndDropEffect.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.dnd; + + +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; + +class TreeDragAndDropEffect extends DragAndDropEffect { + + private Tree tree; + private TreeItem currentItem = null; + private int currentEffect = DND.FEEDBACK_NONE; + private TreeItem[] selection = new TreeItem[0]; + +TreeDragAndDropEffect(Tree tree) { + this.tree = tree; +} +Widget getItem(int x, int y) { + Point coordinates = new Point(x, y); + coordinates = tree.toControl(coordinates); + TreeItem item = tree.getItem(coordinates); + if (item != null) return item; + + Rectangle area = tree.getClientArea(); + for (int x1 = area.x; x1 < area.x + area.width; x1++) { + coordinates = new Point(x1, y); + coordinates = tree.toControl(coordinates); + item = tree.getItem(coordinates); + if (item != null) return item; + } + return null; +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragUnderEffect.java deleted file mode 100755 index 8fd1b53be6..0000000000 --- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragUnderEffect.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.dnd; - - -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - -class TreeDragUnderEffect extends DragUnderEffect { - - private Tree tree; - private TreeItem currentItem = null; - private int currentEffect = DND.FEEDBACK_NONE; - private TreeItem[] selection = new TreeItem[0]; - -TreeDragUnderEffect(Tree tree) { - this.tree = tree; -} -void show(int effect, int x, int y) { - TreeItem item = null; - if (effect != DND.FEEDBACK_NONE) item = findItem(x, y); - if (item == null) effect = DND.FEEDBACK_NONE; - if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) { - selection = tree.getSelection(); - tree.setSelection(new TreeItem[0]); - } - boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE; - setDragUnderEffect(effect, item); - if (restoreSelection) { - tree.setSelection(selection); - selection = new TreeItem[0]; - } -} -private TreeItem findItem(int x , int y){ - Point coordinates = new Point(x, y); - coordinates = tree.toControl(coordinates); - TreeItem item = tree.getItem(coordinates); - if (item != null) return item; - - Rectangle area = tree.getClientArea(); - for (int x1 = area.x; x1 < area.x + area.width; x1++) { - coordinates = new Point(x1, y); - coordinates = tree.toControl(coordinates); - item = tree.getItem(coordinates); - if (item != null) return item; - } - return null; -} -private void setDragUnderEffect(int effect, TreeItem item) { - switch (effect) { - case DND.FEEDBACK_SELECT: - if (currentEffect == DND.FEEDBACK_INSERT_AFTER || - currentEffect == DND.FEEDBACK_INSERT_BEFORE) { - setInsertMark(null, false); - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - } - if (currentEffect != effect || currentItem != item) { - setDropSelection(item); - currentEffect = DND.FEEDBACK_SELECT; - currentItem = item; - } - break; - case DND.FEEDBACK_INSERT_AFTER: - case DND.FEEDBACK_INSERT_BEFORE: - if (currentEffect == DND.FEEDBACK_SELECT) { - setDropSelection(null); - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - } - if (currentEffect != effect || currentItem != item) { - setInsertMark(item, effect == DND.FEEDBACK_INSERT_AFTER); - currentEffect = effect; - currentItem = item; - } - break; - default : - if (currentEffect == DND.FEEDBACK_INSERT_AFTER || - currentEffect == DND.FEEDBACK_INSERT_BEFORE) { - setInsertMark(null, false); - } - if (currentEffect == DND.FEEDBACK_SELECT) { - setDropSelection(null); - } - currentEffect = DND.FEEDBACK_NONE; - currentItem = null; - break; - } -} -private void setDropSelection (TreeItem item) { - if (item == null) { - tree.setSelection(new TreeItem[0]); - } else { - tree.setSelection(new TreeItem[]{item}); - } -} -private void setInsertMark (TreeItem item, boolean after) { - // not currently implemented -} -} |