Skip to content

Commit 0808b12

Browse files
committed
added drag and drop support and changed file loading system
1 parent 9a80c01 commit 0808b12

File tree

6 files changed

+71
-12
lines changed

6 files changed

+71
-12
lines changed

.idea/workspace.xml

+14-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#Memory ammount used to build (set to 2gb or less if you have low memory)
22
org.gradle.jvmargs=-Xmx2G
33
org.gradle.caching=false
4-
org.gradle.daemon=false
4+
org.gradle.daemon=false

src/main/java/me/synnk/Interface/Frame.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import me.synnk.Interface.FrameRegisters;
44
import me.synnk.Loaders.FileLoader;
5+
import me.synnk.Loaders.TransferHandle;
56
import me.synnk.Main;
67
import me.synnk.Managers.SettingsManager;
78
import me.synnk.Managers.SwitchManager;
@@ -35,7 +36,7 @@ public class Frame extends JFrame {
3536
public static JScrollPane scrollPane = new JScrollPane(decompiled);
3637
public static JLabel className = new JLabel("Current Class: ");
3738
public static ArrayList<String> files = new ArrayList<>();
38-
public static DefaultMutableTreeNode root = new DefaultMutableTreeNode();
39+
public static DefaultMutableTreeNode root = new DefaultMutableTreeNode("Drag and drop stuff here!");
3940
public static JTree dir = new JTree(root);
4041

4142
public static JRadioButtonMenuItem lightTheme = new JRadioButtonMenuItem("Light Theme");
@@ -68,6 +69,7 @@ public void addMainComponents() {
6869
// add stuff
6970
TreeCellRenderer customTreeCellRenderer = new FileTreeRenderer.CustomTreeCellRenderer(dir);
7071
dir.setCellRenderer(customTreeCellRenderer);
72+
dir.setTransferHandler(new TransferHandle());
7173
registerFileClicking(); // for dir
7274
add(scrollPane);
7375
add(className);
@@ -126,7 +128,7 @@ public void addMenuBar() {
126128

127129
int action = chooser.showOpenDialog(null);
128130
if (action == JFileChooser.APPROVE_OPTION) {
129-
FrameRegisters.fileLoaded(chooser);
131+
FrameRegisters.fileLoaded(new File(chooser.getSelectedFile().getPath()));
130132
}
131133
});
132134

src/main/java/me/synnk/Interface/FrameRegisters.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
public class FrameRegisters {
2323
private static final JTree dir = Frame.dir;
2424

25-
public static void fileLoaded(JFileChooser input) {
26-
File selectedFile = input.getSelectedFile();
25+
public static void fileLoaded(File selectedFile) {
2726

2827
decompiled.setText(selectedFile.getName());
2928
className.setText("Current Class: " + selectedFile.getName());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package me.synnk.Loaders;
2+
3+
import me.synnk.Interface.FrameRegisters;
4+
5+
import javax.swing.*;
6+
import java.awt.datatransfer.DataFlavor;
7+
import java.awt.datatransfer.Transferable;
8+
import java.awt.datatransfer.UnsupportedFlavorException;
9+
import java.io.File;
10+
import java.io.IOException;
11+
import java.util.List;
12+
13+
public class TransferHandle extends TransferHandler {
14+
@Override
15+
public boolean canImport(TransferSupport support) {
16+
// Check if the dropped data contains files
17+
return support.isDataFlavorSupported(DataFlavor.javaFileListFlavor);
18+
}
19+
20+
@SuppressWarnings("unchecked")
21+
private List<File> getFileListFromTransferable(Transferable transferable) throws Exception {
22+
DataFlavor[] flavors = transferable.getTransferDataFlavors();
23+
for (DataFlavor flavor : flavors) {
24+
if (flavor.equals(DataFlavor.javaFileListFlavor)) {
25+
return (List<File>) transferable.getTransferData(flavor);
26+
}
27+
}
28+
throw new Exception("Unsupported data flavor: javaFileListFlavor not found");
29+
}
30+
31+
@Override
32+
public boolean importData(TransferSupport support) {
33+
// Handle the imported files
34+
try {
35+
Transferable transferable = support.getTransferable();
36+
List<File> files = getFileListFromTransferable(transferable);
37+
38+
for (File file : files) {
39+
String filePath = file.getAbsolutePath();
40+
System.out.println("Imported file path: " + filePath);
41+
FrameRegisters.fileLoaded(new File(filePath));
42+
}
43+
44+
return true; // Import successful
45+
} catch (Exception e) {
46+
e.printStackTrace();
47+
return false; // Import failed
48+
}
49+
}
50+
}

src/main/java/me/synnk/Main.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
public class Main {
1111
public static String NAME = "JByteCustom Lite";
12-
public static String VERSION = "0.8.9";
12+
public static String VERSION = "0.9.0";
1313

1414
public static Integer LIGHT = 0;
1515
public static Integer DARK = 1;

0 commit comments

Comments
 (0)