1 32 33 package it.businesslogic.ireport.gui.dnd; 34 import java.awt.dnd.*; 35 import javax.swing.*; 36 import java.awt.datatransfer.*; 37 import java.io.*; 38 39 43 public abstract class ColumnTransferableHandler extends TransferHandler { 44 45 protected abstract String exportString(JComponent c); 46 protected abstract void importString(JComponent c, String str); 47 protected abstract void cleanup(JComponent c, boolean remove); 48 49 protected Transferable createTransferable(JComponent c) { 50 return new StringSelection(exportString(c)); 51 } 52 53 public int getSourceActions(JComponent c) { 54 return COPY_OR_MOVE; 55 } 56 57 public boolean importData(JComponent c, Transferable t) { 58 if (canImport(c, t.getTransferDataFlavors())) { 59 try { 60 String str = (String )t.getTransferData(DataFlavor.stringFlavor); 61 importString(c, str); 62 return true; 63 } catch (UnsupportedFlavorException ufe) { 64 } catch (IOException ioe) { 65 } 66 } 67 68 return false; 69 } 70 71 protected void exportDone(JComponent c, Transferable data, int action) { 72 cleanup(c, action == MOVE); 73 } 74 75 public boolean canImport(JComponent c, DataFlavor[] flavors) { 76 for (int i = 0; i < flavors.length; i++) { 77 if (DataFlavor.stringFlavor.equals(flavors[i])) { 78 return true; 79 } 80 } 81 return false; 82 } 83 84 } 85 86 87 | Popular Tags |