Skip to content

Commit 4306292

Browse files
GTO2013dschultzca
authored andcommitted
Add Drag & Drop Support
1 parent 716ad2f commit 4306292

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/main/java/com/romraider/editor/ecu/ECUEditor.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.awt.FlowLayout;
4141
import java.awt.Font;
4242
import java.awt.GridLayout;
43+
import java.awt.datatransfer.DataFlavor;
4344
import java.awt.event.ActionEvent;
4445
import java.awt.event.ActionListener;
4546
import java.awt.event.WindowEvent;
@@ -54,6 +55,7 @@
5455
import java.io.FileWriter;
5556
import java.io.IOException;
5657
import java.text.MessageFormat;
58+
import java.util.List;
5759
import java.util.ResourceBundle;
5860
import java.util.Vector;
5961

@@ -67,6 +69,7 @@
6769
import javax.swing.JSplitPane;
6870
import javax.swing.JTextArea;
6971
import javax.swing.SwingWorker;
72+
import javax.swing.TransferHandler;
7073
import javax.swing.filechooser.FileNameExtensionFilter;
7174
import javax.swing.tree.TreePath;
7275

@@ -193,9 +196,45 @@ public void initializeEditorUI() {
193196
toolBarPanel.setVisible(true);
194197

195198
this.add(toolBarPanel, BorderLayout.NORTH);
199+
setupDragAndDrop();
196200
validate();
197201
}
198202

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+
199238
public void checkDefinitions() {
200239
if (settings.getEcuDefinitionFiles().size() <= 0) {
201240
// no ECU definitions configured - let user choose to get latest or configure later

0 commit comments

Comments
 (0)