1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package de.jaret.util.ui.timebars.swing.dnd;
21
22 import java.awt.datatransfer.DataFlavor;
23 import java.awt.datatransfer.Transferable;
24 import java.awt.datatransfer.UnsupportedFlavorException;
25 import java.util.Iterator;
26 import java.util.List;
27
28
29
30
31
32
33
34 public class IntervalListTransferable implements Transferable {
35 public static DataFlavor intervalListFlavor = new DataFlavor(List.class, "IntervalListFavor");
36
37 List data;
38
39 static DataFlavor supportedFlavors[] = {intervalListFlavor, DataFlavor.stringFlavor};
40
41 public IntervalListTransferable(List rowIntervalTuples) {
42 data = rowIntervalTuples;
43 }
44
45 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
46 if (!isDataFlavorSupported(flavor)) {
47 throw new UnsupportedFlavorException(flavor);
48 }
49 if (flavor.equals(DataFlavor.stringFlavor)) {
50 return toString();
51 }
52 return data;
53 }
54
55 public DataFlavor[] getTransferDataFlavors() {
56 return supportedFlavors;
57 }
58
59 public boolean isDataFlavorSupported(DataFlavor flavor) {
60 for (int i = 0; i < supportedFlavors.length; i++) {
61 if (supportedFlavors[i].equals(flavor)) {
62 return true;
63 }
64 }
65 return false;
66 }
67
68 public String toString() {
69 StringBuffer buf = new StringBuffer();
70 Iterator it = data.iterator();
71 while (it.hasNext()) {
72 RowIntervalTuple tuple = (RowIntervalTuple) it.next();
73 buf.append(tuple.toString() + " ");
74 }
75 return buf.toString();
76 }
77 }