01: /*
02: * Copyright (C) 2005 - 2008 JasperSoft Corporation. All rights reserved.
03: * http://www.jaspersoft.com.
04: *
05: * Unless you have purchased a commercial license agreement from JasperSoft,
06: * the following license terms apply:
07: *
08: * This program is free software; you can redistribute it and/or modify
09: * it under the terms of the GNU General Public License version 2 as published by
10: * the Free Software Foundation.
11: *
12: * This program is distributed WITHOUT ANY WARRANTY; and without the
13: * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14: * See the GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18: * or write to:
19: *
20: * Free Software Foundation, Inc.,
21: * 59 Temple Place - Suite 330,
22: * Boston, MA USA 02111-1307
23: *
24: *
25: *
26: *
27: * ColumnTransferableHandler.java
28: *
29: * Created on 21 maggio 2003, 18.43
30: *
31: */
32:
33: package it.businesslogic.ireport.gui.dnd;
34:
35: import java.awt.dnd.*;
36: import javax.swing.*;
37: import java.awt.datatransfer.*;
38: import java.io.*;
39:
40: /**
41: *
42: * @author Administrator
43: */
44: public abstract class ColumnTransferableHandler extends TransferHandler {
45:
46: protected abstract String exportString(JComponent c);
47:
48: protected abstract void importString(JComponent c, String str);
49:
50: protected abstract void cleanup(JComponent c, boolean remove);
51:
52: protected Transferable createTransferable(JComponent c) {
53: return new StringSelection(exportString(c));
54: }
55:
56: public int getSourceActions(JComponent c) {
57: return COPY_OR_MOVE;
58: }
59:
60: public boolean importData(JComponent c, Transferable t) {
61: if (canImport(c, t.getTransferDataFlavors())) {
62: try {
63: String str = (String) t
64: .getTransferData(DataFlavor.stringFlavor);
65: importString(c, str);
66: return true;
67: } catch (UnsupportedFlavorException ufe) {
68: } catch (IOException ioe) {
69: }
70: }
71:
72: return false;
73: }
74:
75: protected void exportDone(JComponent c, Transferable data,
76: int action) {
77: cleanup(c, action == MOVE);
78: }
79:
80: public boolean canImport(JComponent c, DataFlavor[] flavors) {
81: for (int i = 0; i < flavors.length; i++) {
82: if (DataFlavor.stringFlavor.equals(flavors[i])) {
83: return true;
84: }
85: }
86: return false;
87: }
88:
89: }
|