1
package net.sf.jabref.external;
3
import net.sf.jabref.BibtexEntry;
4
import net.sf.jabref.GUIGlobals;
5
import net.sf.jabref.Util;
6
import net.sf.jabref.BasePanel;
7
import net.sf.jabref.gui.FileListTableModel;
9
import java.awt.datatransfer.StringSelection;
10
import java.awt.datatransfer.Transferable;
11
import java.awt.datatransfer.DataFlavor;
12
import java.awt.datatransfer.UnsupportedFlavorException;
14
import java.io.IOException;
15
import java.net.MalformedURLException;
16
import java.util.List;
17
import java.util.ArrayList;
22
public class TransferableFileLinkSelection implements Transferable {
24
List<File> fileList = new ArrayList<File>();
26
public TransferableFileLinkSelection(BasePanel panel, BibtexEntry[] selection) {
27
String s = selection[0].getField(GUIGlobals.FILE_FIELD);
28
FileListTableModel tm = new FileListTableModel();
31
if (tm.getRowCount() > 0) {
32
// Find the default directory for this field type, if any:
33
String dir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
34
// Include the standard "file" directory:
35
String fileDir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
36
// Include the directory of the bib file:
38
if (panel.metaData().getFile() != null) {
39
String databaseDir = panel.metaData().getFile().getParent();
40
dirs = new String[] { dir, fileDir, databaseDir };
43
dirs = new String[] { dir, fileDir };
44
File expLink = Util.expandFilename(tm.getEntry(0).getLink(), dirs);
45
fileList.add(expLink);
51
public DataFlavor[] getTransferDataFlavors() {
52
return new DataFlavor[] {DataFlavor.javaFileListFlavor};//, DataFlavor.stringFlavor};
55
public boolean isDataFlavorSupported(DataFlavor dataFlavor) {
56
System.out.println("Query: "+dataFlavor.getHumanPresentableName()+" , "+
57
dataFlavor.getDefaultRepresentationClass()+" , "+dataFlavor.getMimeType());
58
return dataFlavor.equals(DataFlavor.javaFileListFlavor)
59
|| dataFlavor.equals(DataFlavor.stringFlavor);
62
public Object getTransferData(DataFlavor dataFlavor) throws UnsupportedFlavorException, IOException {
63
//if (dataFlavor.equals(DataFlavor.javaFileListFlavor))
69
private StringSelection ss;
71
public TransferableFileLinkSelection(BasePanel panel, BibtexEntry[] selection) {
72
String s = selection[0].getField(GUIGlobals.FILE_FIELD);
73
FileListTableModel tm = new FileListTableModel();
76
if (tm.getRowCount() > 0) {
77
// Find the default directory for this field type, if any:
78
String dir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
79
// Include the standard "file" directory:
80
String fileDir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
81
// Include the directory of the bib file:
83
if (panel.metaData().getFile() != null) {
84
String databaseDir = panel.metaData().getFile().getParent();
85
dirs = new String[] { dir, fileDir, databaseDir };
88
dirs = new String[] { dir, fileDir };
89
System.out.println(tm.getEntry(0).getLink());
90
for (int i = 0; i < dirs.length; i++) {
91
String dir1 = dirs[i];
92
System.out.println("dir:"+dir1);
94
File expLink = Util.expandFilename(tm.getEntry(0).getLink(), dirs);
96
System.out.println(expLink.toURI().toURL().toString());
97
ss = new StringSelection(expLink.toURI().toURL().toString());
99
} catch (MalformedURLException ex) {
100
ss = new StringSelection("");
104
ss = new StringSelection("");
108
public Transferable getTransferable() {