Skip to content

Commit 4542549

Browse files
committed
copy file
1 parent 68b7482 commit 4542549

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

src/main/java/cn/enaium/joe/gui/component/FileTree.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,9 @@
3131
import javax.swing.tree.DefaultMutableTreeNode;
3232
import javax.swing.tree.DefaultTreeModel;
3333
import java.awt.*;
34-
import java.awt.datatransfer.StringSelection;
3534
import java.awt.event.MouseAdapter;
3635
import java.awt.event.MouseEvent;
3736
import java.io.File;
38-
import java.io.FileWriter;
39-
import java.io.IOException;
4037
import java.nio.file.Files;
4138
import java.nio.file.Path;
4239
import java.util.*;
@@ -128,10 +125,24 @@ public void copyFile() {
128125
} finally {
129126
if (tempFolder != null) tempFolder.toFile().deleteOnExit();
130127
}
128+
} else {
129+
131130
}
132131
} else if (lastPathComponent instanceof FolderTreeNode folderTreeNode) {
133132
if (folderTreeNode instanceof FileTreeNode fileTreeNode) {
134-
// TODO:
133+
Path tempFolder = null;
134+
try {
135+
tempFolder = Files.createTempDirectory("cn.enaium.joe");
136+
final File file = new File(tempFolder.toFile(), fileTreeNode.getName());
137+
Files.write(file.toPath(), fileTreeNode.getData());
138+
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new FIleTransferable(file), null);
139+
} catch (Throwable e) {
140+
MessageUtil.error("Could Not Copy", e);
141+
} finally {
142+
if (tempFolder != null) tempFolder.toFile().deleteOnExit();
143+
}
144+
} else {
145+
135146
}
136147
}
137148
});

src/main/java/cn/enaium/joe/gui/panel/file/tree/node/FileTreeNode.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public FileTreeNode(Object userObject, String file) {
3030
this.file = file;
3131
}
3232

33+
public String getName(){
34+
return this.file;
35+
}
36+
3337
public byte[] getData() {
3438
return JavaOctetEditor.getInstance().getJar().resources.get(file);
3539
}

src/main/java/cn/enaium/joe/service/decompiler/VineFlowerDecompiler.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public String decompile(final ClassNode classNode) {
6565

6666
@Override
6767
public void saveClassFile(String path, String qualifiedName, String entryName, String content, int[] mapping) {
68+
System.out.println("--- " + path);
69+
System.out.println("--- " + qualifiedName);
70+
System.out.println("--- " + entryName);
71+
System.out.println("--- " + content);
6872
if (returned == null){
6973
returned = content;
7074
}

src/main/java/cn/enaium/joe/util/file/FIleTransferable.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import java.awt.datatransfer.DataFlavor;
44
import java.awt.datatransfer.Transferable;
5-
import java.awt.datatransfer.UnsupportedFlavorException;
65
import java.io.File;
7-
import java.io.IOException;
86
import java.util.List;
97

108
public class FIleTransferable implements Transferable {

0 commit comments

Comments
 (0)