diff options
Diffstat (limited to 'examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java')
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java deleted file mode 100644 index eaa6712fe8..0000000000 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 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.snippets; - -/* - * Drag text selection within a StyledText widget - * - * For a list of all SWT example snippets see - * http://www.eclipse.org/swt/snippets/ - * - * @since 3.3 - */ -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.dnd.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -public class Snippet257 { - - static String string1 = "A drag source is the provider of data in a Drag and Drop data transfer as well as "+ - "the originator of the Drag and Drop operation. The data provided by the drag source "+ - "may be transferred to another location in the same widget, to a different widget "+ - "within the same application, or to a different application altogether. For example, "+ - "you can drag text from your application and drop it on an email application, or you "+ - "could drag an item in a tree and drop it below a different node in the same tree."; - - static String DRAG_START_DATA = "DRAG_START_DATA"; - -public static void main (String [] args) { - final Display display = new Display (); - Shell shell = new Shell (display); - shell.setLayout(new FillLayout()); - shell.setSize(100, 300); - int style = SWT.MULTI | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; - final StyledText text = new StyledText(shell, style); - text.setText(string1); - final DragSource source = new DragSource(text, DND.DROP_COPY | DND.DROP_MOVE); - source.setDragSourceEffect(new DragSourceEffect(text) { - public void dragStart(DragSourceEvent event) { - event.image = display.getSystemImage(SWT.ICON_WARNING); - } - }); - source.setTransfer(new Transfer[] {TextTransfer.getInstance()}); - source.addDragListener(new DragSourceAdapter() { - Point selection; - public void dragStart(DragSourceEvent event) { - selection = text.getSelection(); - event.doit = selection.x != selection.y; - text.setData(DRAG_START_DATA, selection); - } - public void dragSetData(DragSourceEvent e) { - e.data = text.getText(selection.x, selection.y-1); - } - public void dragFinished(DragSourceEvent event) { - if (event.detail == DND.DROP_MOVE) { - Point newSelection= text.getSelection(); - int length = selection.y - selection.x; - int delta = 0; - if (newSelection.x < selection.x) - delta = length; - text.replaceTextRange(selection.x + delta, length, ""); - } - selection = null; - text.setData(DRAG_START_DATA, null); - } - }); - - DropTarget target = new DropTarget(text, DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); - target.setTransfer(new Transfer[] {TextTransfer.getInstance()}); - target.addDropListener(new DropTargetAdapter() { - public void dragEnter(DropTargetEvent event) { - if (event.detail == DND.DROP_DEFAULT) { - if (text.getData(DRAG_START_DATA) == null) - event.detail = DND.DROP_COPY; - else - event.detail = DND.DROP_MOVE; - } - } - public void dragOperationChanged(DropTargetEvent event) { - if (event.detail == DND.DROP_DEFAULT) { - if (text.getData(DRAG_START_DATA) == null) - event.detail = DND.DROP_COPY; - else - event.detail = DND.DROP_MOVE; - } - } - public void dragOver(DropTargetEvent event) { - event.feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_SELECT; - } - public void drop(DropTargetEvent event) { - if (event.detail != DND.DROP_NONE) { - Point selection = (Point) text.getData(DRAG_START_DATA); - int insertPos = text.getCaretOffset(); - if (event.detail == DND.DROP_MOVE && selection != null && selection.x <= insertPos && insertPos <= selection.y - || event.detail == DND.DROP_COPY && selection != null && selection.x < insertPos && insertPos < selection.y) { - text.setSelection(selection); - event.detail = DND.DROP_COPY; // prevent source from deleting selection - } else { - String string = (String)event.data; - text.insert(string); - if (selection != null) - text.setSelectionRange(insertPos, string.length()); - } - } - } - }); - shell.open (); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -} |