diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-05-30 08:37:45 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-05-30 08:37:45 +0200 |
| commit | b086f57f56bf0eb9dab9cf321a0f69aaaae84347 (patch) | |
| tree | 8e6e26e8b7eed6abad7a17b093bdbb55c5e6b1ba /source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java | |
| parent | 22088ae8d2d5ff390518dbe1c4372325ffb3a647 (diff) | |
Initial Maven Conversion
Diffstat (limited to 'source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java')
| -rw-r--r-- | source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java b/source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java deleted file mode 100644 index 3c5da27..0000000 --- a/source/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.c2kernel.gui.tabs.outcome.form;
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.util.StringTokenizer;
-
-import javax.swing.JComponent;
-import javax.swing.JOptionPane;
-import javax.swing.JTable;
-import javax.swing.KeyStroke;
-
-import com.c2kernel.utils.Logger;
-/**
-* ExcelAdapter enables Copy-Paste Clipboard functionality on JTables.
-* The clipboard data format used by the adapter is compatible with
-* the clipboard format used by Excel. This provides for clipboard
-* interoperability between enabled JTables and Excel.
-*/
-public class MultiLinePasteAdapter implements ActionListener {
- private String rowstring, value;
- private Clipboard system;
- private StringSelection stsel;
- private JTable jTable1;
- private Dimension parent;
- /**
- * The Excel Adapter is constructed with a
- * JTable on which it enables Copy-Paste and acts
- * as a Clipboard listener.
- */
- public MultiLinePasteAdapter(JTable myJTable, Dimension parent) {
- jTable1 = myJTable;
- this.parent = parent;
- KeyStroke copy =
- KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK, false);
- // Identifying the copy KeyStroke user can modify this
- // to copy on some other Key combination.
- KeyStroke paste =
- KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK, false);
- // Identifying the Paste KeyStroke user can modify this
- //to copy on some other Key combination.
- jTable1.registerKeyboardAction(
- this,
- "Copy",
- copy,
- JComponent.WHEN_FOCUSED);
- jTable1.registerKeyboardAction(
- this,
- "Paste",
- paste,
- JComponent.WHEN_FOCUSED);
- system = Toolkit.getDefaultToolkit().getSystemClipboard();
- }
- /**
- * Public Accessor methods for the Table on which this adapter acts.
- */
- public JTable getJTable() {
- return jTable1;
- }
- public void setJTable(JTable jTable1) {
- this.jTable1 = jTable1;
- }
- /**
- * This method is activated on the Keystrokes we are listening to
- * in this implementation. Here it listens for Copy and Paste ActionCommands.
- * Selections comprising non-adjacent cells result in invalid selection and
- * then copy action cannot be performed.
- * Paste is done by aligning the upper left corner of the selection with the
- * 1st element in the current selection of the JTable.
- */
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().compareTo("Copy") == 0) {
- StringBuffer sbf = new StringBuffer();
- // Check to ensure we have selected only a contiguous block of
- // cells
- int numcols = jTable1.getSelectedColumnCount();
- int numrows = jTable1.getSelectedRowCount();
- int[] rowsselected = jTable1.getSelectedRows();
- int[] colsselected = jTable1.getSelectedColumns();
- if (!((numrows - 1
- == rowsselected[rowsselected.length - 1] - rowsselected[0]
- && numrows == rowsselected.length)
- && (numcols - 1
- == colsselected[colsselected.length - 1] - colsselected[0]
- && numcols == colsselected.length))) {
- JOptionPane.showMessageDialog(
- null,
- "Invalid Copy Selection",
- "Invalid Copy Selection",
- JOptionPane.ERROR_MESSAGE);
- return;
- }
- for (int i = 0; i < numrows; i++) {
- for (int j = 0; j < numcols; j++) {
- sbf.append(
- jTable1.getValueAt(rowsselected[i], colsselected[j]));
- if (j < numcols - 1)
- sbf.append("\t");
- }
- sbf.append("\n");
- }
- stsel = new StringSelection(sbf.toString());
- system = Toolkit.getDefaultToolkit().getSystemClipboard();
- system.setContents(stsel, stsel);
- }
- if (e.getActionCommand().compareTo("Paste") == 0) {
- Logger.msg(5, "Trying to Paste");
- int startRow = (jTable1.getSelectedRows())[0];
- int startCol = (jTable1.getSelectedColumns())[0];
- try {
- String trstring =
- (String) (system.getContents(this).getTransferData(DataFlavor.stringFlavor));
- Logger.msg(8, "String is:" + trstring);
- StringTokenizer st1 = new StringTokenizer(trstring, "\n\r");
- for (int i = 0; st1.hasMoreTokens(); i++) {
- rowstring = st1.nextToken();
- StringTokenizer st2 = new StringTokenizer(rowstring, "\t");
- for (int j = 0; st2.hasMoreTokens(); j++) {
- value = st2.nextToken();
- if (startRow + i == jTable1.getRowCount())
- parent.addRow(startRow+i);
- if (startRow + i < jTable1.getRowCount()
- && startCol + j < jTable1.getColumnCount())
- jTable1.setValueAt(
- value,
- startRow + i,
- startCol + j);
- Logger.msg(5, "Putting "+value+" at row="+(startRow+i)+" column="+(startCol+j));
- }
- }
- } catch (Exception ex) {
- Logger.exceptionDialog(ex);
- }
-
- }
- }
-}
|
