Quantum version 2.4.1
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / view / tableview / CopyAction.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/tableview/CopyAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/tableview/CopyAction.java
new file mode 100644 (file)
index 0000000..3de9c5c
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Created on 28-jul-2003
+ *
+ */
+package com.quantum.view.tableview;
+
+import com.quantum.ImageStore;
+import com.quantum.Messages;
+import com.quantum.QuantumPlugin;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+
+
+public final class CopyAction extends Action {
+       
+       private static final String LINE_SEPARATOR = System.getProperty("line.separator");
+       
+       private final TableView view;
+       
+       public CopyAction(TableView view) {
+               super();
+               this.view = view;
+               setText(Messages.getString(getClass(), "text"));
+               setImageDescriptor(ImageStore.getImageDescriptor(ImageStore.COPY));
+       }
+       
+       public void run() {
+               Table table = getTable();
+               if (table != null) {
+                       TableItem items[] = table.getSelection();
+                       StringBuffer text = new StringBuffer();
+                       for (int i = 0; i < items.length; i++) {
+                               int columns = table.getColumnCount();
+                               for (int col = 0; col < columns; col++) {
+                                       text.append(items[i].getText(col));
+                                       text.append('\t');
+                               }
+                               text.append(LINE_SEPARATOR);
+                       }
+                       QuantumPlugin.getDefault().getSysClip().setContents(
+                               new Object[] { text.toString()},
+                               new Transfer[] { TextTransfer.getInstance()});
+               }
+       }
+       
+       private Table getTable() {
+               ResultSetViewer viewer = this.view.getSelectedResultSetViewer();
+               return viewer == null ? null : viewer.getTable();
+       }
+}
\ No newline at end of file