--- /dev/null
+/*
+ * 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