Line 0
Link Here
|
|
|
1 |
package org.apache.jmeter.gui; |
2 |
|
3 |
import java.awt.datatransfer.DataFlavor; |
4 |
import java.awt.datatransfer.UnsupportedFlavorException; |
5 |
import java.awt.event.ActionEvent; |
6 |
import java.io.File; |
7 |
import java.io.IOException; |
8 |
import java.util.List; |
9 |
|
10 |
import javax.swing.TransferHandler; |
11 |
|
12 |
import org.apache.jmeter.gui.action.ActionNames; |
13 |
import org.apache.jmeter.gui.action.LoadDraggedFile; |
14 |
import org.apache.jorphan.logging.LoggingManager; |
15 |
import org.apache.log.Logger; |
16 |
|
17 |
@SuppressWarnings("serial") |
18 |
final class TopLevelTransferHandler extends TransferHandler { |
19 |
private static final Logger log = LoggingManager.getLoggerForClass(); |
20 |
|
21 |
@Override |
22 |
public boolean canImport(TransferHandler.TransferSupport support) { |
23 |
if(!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { |
24 |
return false; |
25 |
} |
26 |
return true; |
27 |
} |
28 |
|
29 |
@SuppressWarnings("unchecked") |
30 |
@Override |
31 |
public boolean importData(TransferSupport support) { |
32 |
if(!canImport(support)) { |
33 |
return false; |
34 |
} |
35 |
try { |
36 |
List<File> files = (List<File>) support.getTransferable().getTransferData(DataFlavor.javaFileListFlavor); |
37 |
if(files.isEmpty()) { |
38 |
return false; |
39 |
} |
40 |
|
41 |
ActionEvent fakeEvent = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, ActionNames.OPEN); |
42 |
LoadDraggedFile.loadProject(fakeEvent, files.get(0)); |
43 |
} catch (IOException e) { |
44 |
log.error("Importing data from DnD caused ", e); |
45 |
return false; |
46 |
} catch (UnsupportedFlavorException e) { |
47 |
log.error("Importing data from DnD caused ", e); |
48 |
return false; |
49 |
} |
50 |
return super.importData(support); |
51 |
} |
52 |
} |