|
40 | 40 | import java.awt.FlowLayout; |
41 | 41 | import java.awt.Font; |
42 | 42 | import java.awt.GridLayout; |
| 43 | +import java.awt.datatransfer.DataFlavor; |
43 | 44 | import java.awt.event.ActionEvent; |
44 | 45 | import java.awt.event.ActionListener; |
45 | 46 | import java.awt.event.WindowEvent; |
|
54 | 55 | import java.io.FileWriter; |
55 | 56 | import java.io.IOException; |
56 | 57 | import java.text.MessageFormat; |
| 58 | +import java.util.List; |
57 | 59 | import java.util.ResourceBundle; |
58 | 60 | import java.util.Vector; |
59 | 61 |
|
|
67 | 69 | import javax.swing.JSplitPane; |
68 | 70 | import javax.swing.JTextArea; |
69 | 71 | import javax.swing.SwingWorker; |
| 72 | +import javax.swing.TransferHandler; |
70 | 73 | import javax.swing.filechooser.FileNameExtensionFilter; |
71 | 74 | import javax.swing.tree.TreePath; |
72 | 75 |
|
@@ -193,9 +196,45 @@ public void initializeEditorUI() { |
193 | 196 | toolBarPanel.setVisible(true); |
194 | 197 |
|
195 | 198 | this.add(toolBarPanel, BorderLayout.NORTH); |
| 199 | + setupDragAndDrop(); |
196 | 200 | validate(); |
197 | 201 | } |
198 | 202 |
|
| 203 | + public void setupDragAndDrop() |
| 204 | + { |
| 205 | + setTransferHandler(new TransferHandler() { |
| 206 | + private static final long serialVersionUID = 1L; |
| 207 | + |
| 208 | + @Override |
| 209 | + public boolean canImport(TransferSupport support) { |
| 210 | + // Accept drops of files only |
| 211 | + return support.isDataFlavorSupported(DataFlavor.javaFileListFlavor); |
| 212 | + } |
| 213 | + |
| 214 | + @Override |
| 215 | + public boolean importData(TransferSupport support) { |
| 216 | + if (!canImport(support)) { |
| 217 | + return false; |
| 218 | + } |
| 219 | + |
| 220 | + try { |
| 221 | + @SuppressWarnings("unchecked") |
| 222 | + List<File> droppedFiles = |
| 223 | + (List<File>) support.getTransferable() |
| 224 | + .getTransferData(DataFlavor.javaFileListFlavor); |
| 225 | + |
| 226 | + for (File file : droppedFiles) { |
| 227 | + openImage(file); |
| 228 | + } |
| 229 | + return true; |
| 230 | + } catch (Exception e) { |
| 231 | + e.printStackTrace(); |
| 232 | + } |
| 233 | + return false; |
| 234 | + } |
| 235 | + }); |
| 236 | + } |
| 237 | + |
199 | 238 | public void checkDefinitions() { |
200 | 239 | if (settings.getEcuDefinitionFiles().size() <= 0) { |
201 | 240 | // no ECU definitions configured - let user choose to get latest or configure later |
|
0 commit comments