diff options
Diffstat (limited to 'plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/TextAction.java')
-rw-r--r-- | plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/TextAction.java | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/TextAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/TextAction.java deleted file mode 100644 index 458b5bf04..000000000 --- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/TextAction.java +++ /dev/null @@ -1,246 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2005 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.wst.server.ui.internal.editor; - -import org.eclipse.jface.action.Action; -import org.eclipse.wst.server.ui.internal.Trace; -import org.eclipse.swt.SWTError; -import org.eclipse.swt.dnd.Clipboard; -import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.dnd.Transfer; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Text; -/** - * Text actions (cut, copy, paste) for the Web browser. - */ -public class TextAction extends Action { - protected Display display; - protected Clipboard clipboard; - protected byte type; - - public static final byte CUT_ACTION = 0; - public static final byte COPY_ACTION = 1; - public static final byte PASTE_ACTION = 2; - - /** - * TextAction constructor comment. - */ - protected TextAction(Display display, byte type) { - super("Text action: " + type); - this.display = display; - clipboard = new Clipboard(display); - this.type = type; - } - - protected Control getControl() { - Control control = display.getFocusControl(); - return control; - } - - protected Point getControlSelection() { - Control control = getControl(); - if (control == null) - return null; - - if (control instanceof Text) { - Text text = (Text) control; - return text.getSelection(); - } else if (control instanceof Combo) { - Combo combo = (Combo) control; - return combo.getSelection(); - } else - return null; - } - - protected void setControlSelection(Point sel) { - Control control = getControl(); - if (control == null) - return; - - if (control instanceof Text) { - Text text = (Text) control; - text.setSelection(sel); - } else if (control instanceof Combo) { - Combo combo = (Combo) control; - combo.setSelection(sel); - } - } - - protected String getControlText() { - Control control = getControl(); - if (control == null) - return null; - - if (control instanceof Text) { - Text text = (Text) control; - return text.getText(); - } else if (control instanceof Combo) { - Combo combo = (Combo) control; - return combo.getText(); - } else - return null; - } - - protected void setControlText(String text) { - Control control = getControl(); - if (control == null) - return; - - if (control instanceof Text) { - Text text2 = (Text) control; - text2.setText(text); - } else if (control instanceof Combo) { - Combo combo = (Combo) control; - combo.setText(text); - } - } - - /** - * Copies the selected text to the clipboard. The text will be put in the - * clipboard in plain text format. - */ - public void copy() { - Point selection = getControlSelection(); - String text = getControlText(); - if (selection == null || text == null) - return; - - int length = selection.y - selection.x; - if (length > 0) { - TextTransfer plainTextTransfer = TextTransfer.getInstance(); - try { - clipboard.setContents( - new String[] { text.substring(selection.x, selection.y) }, - new Transfer[] { plainTextTransfer }); - } catch (SWTError error) { - // Copy to clipboard failed. This happens when another application - // is accessing the clipboard while we copy. Ignore the error. - } - } - } - - /** - * Moves the selected text to the clipboard. The text will be put in the - * clipboard in plain text format and RTF format. - */ - public void cut(){ - Point selection = getControlSelection(); - if (selection == null) - return; - - if (selection.y > selection.x) { - copy(); - delete(); - } - } - - /** - * Deletes the character to the right of the caret. Delete the selected text if any. - */ - public void delete() { - Point selection = getControlSelection(); - String text = getControlText(); - if (selection == null || text == null) - return; - - if (selection.x != selection.y) { - text = text.substring(0, selection.x) + text.substring(selection.y); - setControlText(text); - setControlSelection(new Point(selection.x, selection.x)); - } - } - - /** - * Replaces the selection with the clipboard text or insert the text at - * the current caret offset if there is no selection. - * If the widget has the SWT.SINGLE style and the clipboard text contains - * more than one line, only the first line without line delimiters is - * inserted in the widget. - */ - public void paste() { - TextTransfer transfer = TextTransfer.getInstance(); - Point selection = getControlSelection(); - String text = getControlText(); - if (selection == null) - return; - - String newText = (String) clipboard.getContents(transfer); - if (newText != null && newText.length() > 0) { - if (text == null) - text = newText; - else - text = text.substring(0, selection.x) + newText + text.substring(selection.y); - setControlText(text); - - // set the selection to the end of the paste - int x = selection.x + newText.length(); - setControlSelection(new Point(x, x)); - } - } - - /** - * Execute the action. - */ - public void run() { - if (display == null) - return; - if (type == CUT_ACTION) - cut(); - else if (type == COPY_ACTION) - copy(); - else if (type == PASTE_ACTION) - paste(); - } - - /** - * Update the actions enabled/disabled state. - */ - protected void update() { - if (getControl() == null) { - setEnabled(false); - return; - } - Point selection = getControlSelection(); - String text = getControlText(); - - try { - if (type == CUT_ACTION) - setEnabled(text != null && text.length() > 0 && selection != null && selection.x < selection.y); - else if (type == COPY_ACTION) - setEnabled(text != null && text.length() > 0 && selection != null && selection.x < selection.y); - else if (type == PASTE_ACTION) { - Control control = getControl(); - if (!control.isEnabled()) { - setEnabled(false); - return; - } - if (!(control instanceof Text)) { - setEnabled(false); - return; - } - - Text text2 = (Text) control; - if (!text2.getEditable()) { - setEnabled(false); - return; - } - TextTransfer transfer = TextTransfer.getInstance(); - String newText = (String) clipboard.getContents(transfer); - setEnabled(newText != null && newText.length() > 0); - } - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Error updating text action", e); - } - } -}
\ No newline at end of file |