Skip to content

Commit 3dadae6

Browse files
committed
2.9.8
1 parent 908ba23 commit 3dadae6

File tree

11 files changed

+342
-213
lines changed

11 files changed

+342
-213
lines changed
1.72 MB
Binary file not shown.

src/resources/class.png

639 Bytes
Loading

src/resources/java.png

-151 Bytes
Loading

src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import java.io.InputStream;
1414
import java.net.URI;
1515
import java.net.URL;
16+
import java.nio.file.Files;
17+
import java.nio.file.Paths;
1618
import java.util.ArrayList;
1719
import java.util.HashMap;
1820
import java.util.List;
@@ -85,7 +87,6 @@
8587
* Spiffy up the plugin console with hilighted lines
8688
* Take https://github.com/ptnkjke/Java-Bytecode-Editor visualize
8789
* make zipfile not include the decode shit
88-
* When you drag a folder, it must add the folder name not just the child into the root jtree path
8990
* add stackmapframes to bytecode decompiler
9091
* add stackmapframes remover?
9192
* make ez-injection plugin console show all sys.out calls
@@ -109,6 +110,13 @@
109110
* 07/22/2015 - Fixed a typo (Thanks affffsdsd)
110111
* 07/22/2015 - Finally added icons to the File Navigator, credits to http://famfamfam.com/lab/icons/silk/ for the icons.
111112
* 07/22/2015 - JD-GUI is now the default decompiler for GUI.
113+
* 07/22/2015 - Added Set Python 3.X to the UI.
114+
* 07/22/2015 - Fixed krakatau/export as jar bug introduced by file system update.
115+
* 07/22/2015 - Sped up krakatau decompiler/disassembler on big files.
116+
* 07/22/2015 - Made it so when you press enter on the file navigation pane it opens the class.
117+
* 07/22/2015 - The Quick file search now opens the files again.
118+
* 07/23/2015 - Fixed opening single files and file folders into BCV
119+
* 07/24/2015 - Added File>Reload Resources.
112120
*
113121
* @author Konloch
114122
*
@@ -619,7 +627,8 @@ public static ArrayList<ClassNode> getLoadedClasses() {
619627

620628
for(FileContainer container : files)
621629
for(ClassNode c : container.classes)
622-
a.add(c);
630+
if(!a.contains(c))
631+
a.add(c);
623632

624633
return a;
625634
}
@@ -741,7 +750,38 @@ public void run() {
741750
showMessage("The file " + f.getAbsolutePath() + " could not be found.");
742751
} else {
743752
if(f.isDirectory()) {
744-
openFiles(f.listFiles(), false);
753+
FileContainer container = new FileContainer(f);
754+
HashMap<String, byte[]> files = new HashMap<String, byte[]>();
755+
boolean finished = false;
756+
ArrayList<File> totalFiles = new ArrayList<File>();
757+
totalFiles.add(f);
758+
String dir = f.getAbsolutePath();//f.getAbsolutePath().substring(0, f.getAbsolutePath().length()-f.getName().length());
759+
760+
while(!finished) {
761+
boolean added = false;
762+
for(int i = 0; i < totalFiles.size(); i++) {
763+
File child = totalFiles.get(i);
764+
if(child.listFiles() != null)
765+
for(File rocket : child.listFiles())
766+
if(!totalFiles.contains(rocket)) {
767+
totalFiles.add(rocket);
768+
added = true;
769+
}
770+
}
771+
772+
if(!added) {
773+
for(File child : totalFiles)
774+
if(child.isFile()) {
775+
String fileName = child.getAbsolutePath().substring(dir.length()+1, child.getAbsolutePath().length()).replaceAll("\\\\", "\\/");
776+
777+
778+
files.put(fileName, Files.readAllBytes(Paths.get(child.getAbsolutePath())));
779+
}
780+
finished = true;
781+
}
782+
}
783+
container.files = files;
784+
BytecodeViewer.files.add(container);
745785
} else {
746786
if (fn.endsWith(".jar") || fn.endsWith(".zip")) {
747787
try {

src/the/bytecode/club/bytecodeviewer/JarUtils.java

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,34 +225,74 @@ public static void saveAsJar(ArrayList<ClassNode> nodeList, String path,
225225
}
226226
}
227227

228+
/**
229+
* Saves a jar without the manifest
230+
* @param nodeList The loaded ClassNodes
231+
* @param path the exact jar output path
232+
*/
233+
public static void saveAsJarClassesOnly(ArrayList<ClassNode> nodeList, String path) {
234+
try {
235+
System.out.println("zipping");
236+
JarOutputStream out = new JarOutputStream(new FileOutputStream(path));
237+
ArrayList<String> noDupe = new ArrayList<String>();
238+
for (ClassNode cn : nodeList) {
239+
ClassWriter cw = new ClassWriter(0);
240+
cn.accept(cw);
241+
242+
String name = cn.name + ".class";
243+
244+
if(!noDupe.contains(name)) {
245+
noDupe.add(name);
246+
out.putNextEntry(new ZipEntry(name));
247+
out.write(cw.toByteArray());
248+
out.closeEntry();
249+
}
250+
}
251+
252+
noDupe.clear();
253+
out.close();
254+
} catch (IOException e) {
255+
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
256+
}
257+
}
258+
228259
/**
229260
* Saves a jar without the manifest
230261
* @param nodeList The loaded ClassNodes
231262
* @param path the exact jar output path
232263
*/
233264
public static void saveAsJar(ArrayList<ClassNode> nodeList, String path) {
234265
try {
235-
JarOutputStream out = new JarOutputStream(
236-
new FileOutputStream(path));
266+
JarOutputStream out = new JarOutputStream(new FileOutputStream(path));
267+
ArrayList<String> noDupe = new ArrayList<String>();
237268
for (ClassNode cn : nodeList) {
238269
ClassWriter cw = new ClassWriter(0);
239270
cn.accept(cw);
240271

241-
out.putNextEntry(new ZipEntry(cn.name + ".class"));
242-
out.write(cw.toByteArray());
243-
out.closeEntry();
272+
String name = cn.name + ".class";
273+
274+
if(!noDupe.contains(name)) {
275+
noDupe.add(name);
276+
out.putNextEntry(new ZipEntry(name));
277+
out.write(cw.toByteArray());
278+
out.closeEntry();
279+
}
244280
}
245281

246282
for(FileContainer container : BytecodeViewer.files)
247283
for (Entry<String, byte[]> entry : container.files.entrySet()) {
248284
String filename = entry.getKey();
249285
if (!filename.startsWith("META-INF")) {
250-
out.putNextEntry(new ZipEntry(filename));
251-
out.write(entry.getValue());
252-
out.closeEntry();
286+
if(!noDupe.contains(filename)) {
287+
noDupe.add(filename);
288+
out.putNextEntry(new ZipEntry(filename));
289+
out.write(entry.getValue());
290+
out.closeEntry();
291+
}
253292
}
254293
}
255294

295+
noDupe.clear();
256296
out.close();
257297
} catch (IOException e) {
258298
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);

src/the/bytecode/club/bytecodeviewer/Resources.java

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -23,48 +23,49 @@ public class Resources {
2323
public static BufferedImage icon;
2424
public static ImageIcon nextIcon;
2525
public static ImageIcon prevIcon;
26-
public static ImageIcon busy;
27-
public static ImageIcon busyB64;
28-
29-
public static ImageIcon bat;
30-
public static ImageIcon sh;
31-
public static ImageIcon csharp;
32-
public static ImageIcon cplusplus;
33-
public static ImageIcon config;
34-
public static ImageIcon jar;
35-
public static ImageIcon zip;
36-
public static ImageIcon packages;
37-
public static ImageIcon folder;
38-
public static ImageIcon android;
39-
public static ImageIcon file;
40-
public static ImageIcon textFile;
41-
public static ImageIcon classFile;
42-
public static ImageIcon imageFile;
43-
public static ImageIcon decoded;
26+
public static ImageIcon busyIcon;
27+
public static ImageIcon busyB64Icon;
28+
public static ImageIcon batIcon;
29+
public static ImageIcon shIcon;
30+
public static ImageIcon csharpIcon;
31+
public static ImageIcon cplusplusIcon;
32+
public static ImageIcon configIcon;
33+
public static ImageIcon jarIcon;
34+
public static ImageIcon zipIcon;
35+
public static ImageIcon packagesIcon;
36+
public static ImageIcon folderIcon;
37+
public static ImageIcon androidIcon;
38+
public static ImageIcon fileIcon;
39+
public static ImageIcon textIcon;
40+
public static ImageIcon classIcon;
41+
public static ImageIcon imageIcon;
42+
public static ImageIcon decodedIcon;
43+
public static ImageIcon javaIcon;
4444

4545

4646
static {
4747
icon = b642IMG("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAUd0lEQVR42pWaWXRbVZaGq5iHqgaSeJZsy7YkD7KtwZItebblQfI8x/HseIodO3bixE5iZw4ZSBwyACkCXQ003dD0oigq1UBqFVQ1HSB0wkyvXt1VPNSiavHCC288/b3/I11ZSszQDzuRfO89Z39n/3uffST9BMBP17Dbgna72B1hdmfQ7hK7W+yeoN0btPvE7v8Rdl+Y3Rsc4+7guHcF5wif9/ag3fYd/v70J/zHWlGFcLPRKqth99Yoc1TVKssTc1b74Krxw1Vbh3yxAl+9Mre/QZmnrvFHG+/Xnud4alwxzpEXnJOm+UGfbEH/wv2NAHkwMQ4P6GLk/1hlDyXFKVuXFI/1yQnKolJ0yqLTEhFjTEKsKRlxZgPi01OQkJ6qTJeRBn2mEYlZpjWN13gP7+VzfJ7G8WjRqXo1xwZDQmhe+kBfHhR7QHz7O300fq6LUhYBQkJ1UxDkFggZdEMQIJoTCkCsAhDn6TgdpKMWE5KyzcqSc9JDZsjNCL3WridZAmA3Q3F8zhMVBFpHELGHxJcHk2KVPZAYE4K5BYSkD+hjQuR8kAMQYENKgkwgUTBJFMzJgQhkpIrzRnHKJA6axdl0pFgzkGrNRJotS5nRbokw7e8pco8GRygugk4ixYXhAnGhOF90ml7Nvd5AX7SoRMKsGRElK7mJD9E4SFSqTg1KgLh0wy0AdF5z2uTIRrozV1lmvg2ZBQHLyLfK33KQnifX8nJgFuO9fC5VQaWr8RhRXWaaWijO92NgbAGQ2whyG5NIu0FJag0IDs5JOBkBtJXXnKfjWW47LG4HcgqdyC1yKePrDAFItaSjrrkZlf5aZBXYA4AuawgqHIgLxQXjvFTB98GEg9zOivCglhffAcHBExkFmSyVEZDJzQQQhyyePOSI07aSAjjKPMgrL4SroliZvbgAxpwsxCcnYmFxCecvXESO3J9bnK8gCa8BMaoE4kJpMFRBOMw6gXkoOT6Q0wSRIJCBIHcQRCW43EDqDWEQISkpGUkUZLJwADpkF+ed4nS+twTu6jJ4aspR5KtU5iwrRGqmGdHxsThw6GH8540PYfU4FSShrQIfDqRJjtHRpHYzDP3UYOh7BIjKizCImLBIECItGIV0mYzyCQeg83S6xF+FsvoaVDT6UNHkQ2WzH56qMqRlmRGTEIdXXn0Nn/3XfyOvxKPu98hzrspiNQ6BuDAZIlGTRIdRZ/T1QZjwnFkfBhMEuUOBcPNR0dCqk0psyYkwCA6uRYGTEqCgqlQ5pJwXx6ta61HT1ghfRzPqulrh72xBcXUFjJnikCEZX/71b3j5lcvweMvU/XyOz3MhOJ6t1I1siQ7nYdTDYeLCCgAXW4PhhqmB3EkQXogS2mgJoQbBnOBg5iAEJ+FkXEXKp7SuWjlU3dqgnG7obkdzTyda+zYq87U2wlnkRoopDTc++Bh/+cuXKCorRXldDfwCW9VSr57nOIW1FaHoMN/CYbiY9Id+xQRh1gfzJS8AcidB7mJLsCEsGvGSF1piU043Q2hR8LbUqdVv3NShHO8c6kX35gFsHO5H48Y2FFaUIiM7C+9eu64glvYdQk6eHcXectS3NaO5u0M9z0iWN9SqcZln4TBUAnOT/hAmVvKFix0VlFgECPsbai9cUoSgpJiAlJOCqAhAcFJGgfJp6e1SAD2jg+gbG1IgzRs7UFpVia6Nm1Qk/ud//4yz5x6HMcOM6lofnrz0Dzh3/hfo6utF86ZO1As0x2NucXwtMlw85gwXU5MYFzk8KvSdDAS5mw2bqlJCy8RiLWcZ5P7AxGZZVRASfkaiRiZtkMkZhY2b+9E/sRlDk2MKpLGjFUXlpZjfvgs3PvwEH3/yOfbvPwxjuhm/fOYf8e9vvysgzwhQLfwivc7BXrT1dytZMr+4SJrMuHicfy2JMSrMlXCQe9jFxgabP1Yplj5TUFLc1LgvsMIQolpkUC+RaBMIrv7g5CjGtk1hZOsWtG/qQrFAbN+xC1ffuaZs8/AI0rMy8MaVN/H21fewY24n7K481DT40SPPD2wZQffIINoHNikYRobzMAdZAMIlZpAughILj0oQ5G4FwjY60H6kqd4nPBr2Ug8KRLclPi+8Uk7rJKnDIcbntmJqfhaD4yPw+mrQ2NiE16/8Hr9784/o6elDVrZFVao3//Af6O7ugaekGM0dbRjdOqGem9g+jeGpcSVNRoZyZe6xlLMqUmL0g2U/PCparlBNZCDIfTwXaF0smzmjndGwSzTy4SwvEklVKv3WtjUpTXcN94mcRjA+uxXTu3Zgascs2ro7kV/oxpGDD+OV37yGixefRq7VionxSbz2xu/x9N8/B19DHQZGhrF99y4sHlzGrn17sG1xXsEMTY2pxWmVnGNF43zFzBeJSq4WFVGJIawcMyr54SA85Kg9wxLIDbP0RtluSfASt0SjFKX+alUqlaT6N6F3bBgj01uwded2zC/txuT2GdSKkzaHHXsXlvDiS7/C0p59sOU51PuXX/ktnnn2BYxOTuDQsaM4fuYUDj9yHEtHDwrMXswszKtFYa6xcDQyX0RiLMtuRiWYK1QJ/WMOa70Y1cRTJkHuJ4g+2Ayy32GlYtuQJ+1FoWi1vKEGvvYmVaG6JbmZ2JM7tmHH3gXsObQf2xd3oqG1GQ6XE16vV5L6n3Di2CNwFeSju6sbz7/wr3j+n1/C/gNH8MjZM3j0icdw8uyKgtl75IBajKn5OWyWPNsk+dLau1Gi0qKiwvmZo/SHjSkrqdaLMR0iQArrm0K9VGAHt6vdmzW92FelcoPRYEL2jQ9jdNukksTCgSUcOH4Eew/vx/D4KMq9FXA4nVjYuRtPXHwK3qpquPLzsXLqLC6JtC499QwOHDyIxy5dFJgLOPHoaRw88TB2H9yH2d07g1EZQYdUMs5HFZTI/JSXVZpP+mVy5Cj5Mw14fmFaUFUE+VkAJF2BsNRlMcklyZhsJRJeVhKGm2Fngm9hNJYW1WoePX0Cx8WhveJM56aNKJRkZiQO7T+Co4eOocDjRkVlJc6dewLnH38SS4t7ce7i4wrm1PlHceTUcSwzKsu7VfIPSeIzB5tkk2U5LpUKRj8oc/pF2ROERYkgVJMG8nOCJNsyVGebLocgljx2pu6aMpQ2VKO2owlNvZ1SJgcwPD2BrbvmsFO0ve/oIRw6eQwPnzqJA0cPY3JmGg3NTSguLYGnqBB75hcxsnkMnsJC7J5fwKmV85id3YaVC+fEzmLPgWVMz2/Hlu3bML1zToFsnqa8BpSMKWfKmvKiP9myMbN6pQWrF8twEOT+EIjBlgmjyCpDwpcjna2zskhqeYXqhfydzWiV0tgzOoSRmUlMyaTbJEFp01KxRqcmML5nAVv2L2Fibhua21pRXlmhgFrkdUlpKZb278P8rnlMTm9V0DM75tAiZXho2zTmDu7H7IF9GJb9aLOU5V6Rb5vIuK6rRXXQ3CBVnhQ51WnT6LCoPOHmHQFS1NCMFLu06XIczZBzQW6pdLfeYhT6pew2+VVDyIF7mB+zUypHugf7pBVpx+Dhneh/dDtGji6iV2S3eWwU/UMD8NXXobS8DCXSJBaJ3Ljj1/p96B4dwYgk9qaJUSVBp0jPXVGOscO7MHZ8D/okR/rGN0s+9oRAWP6dFUVKKQGQ1ZblVhChNLnkwORxKBBXVUkARAbyy4BtgwIyIWVXIHqkspRJL0X9dqxsRd2ZLvScmsPwyUUMHV/ExCMSmZNLGDy2gMkTSxgVB2ljx/Zg4uG9GDu0G91Sasu90sIXiWSsufANSJtydExanj6BEZDBntDmWOT3KoXkFAtIgYDkfS+InDmENrMwEqSSHW4YyGbJkY1DfSiuKBMHcpQTnqoK+Po60TEzis7FKWxankPv8nZ0755F5/wU2qZG0CiFoqqlUUXHH9wYB8dGUFvvh1U64s6js2jcJ/f2daNXgYi0NkaC5JbkC4hNpQDbFX12JIiqWioi+bkKxFrmhrN6NSI+GbBFVmzT+BCGZyYwtHUMrbKTl1fLzuspkI1PHNklSbo8g3x3AdyFHpXshcVFyviaVlpThVZpRYYlp3bI7j4kJbuithrt+6ZRd3pMnK5Hx0BgwbhwfpmX89MPSj1HgdgVSHIkyGr5NUhEjAKSoSIiIIxInRcVLX7UdjULiPRXY4MKZGJ+BpPz2zAoeq6u96kmsPPELPLP1sK70o+qlSHUr4yj9/wONJ+eRN3KKGrPDKPqXDfKzrZh+MRuDEk0muQQ1rl3Kxr2TaBICkt9e7N0DUNqwVpl4agEzu8REEdFoQJJl4ikUVpSZfU5kSBqQzTkWWAU/WUUOZBTVgCHt0g2G2nbm+UE2Cnlt1/OHSP9GJBojAvI3NKCql6N7a0qKlaHDcWSM22LW1C9bwydJ+fQviI92LFtqFwaQc3iKHxjvaiRHbu5pwteiYQqrdKMukuL1EGrR1qf/qlRdI32o0mkWiNlv1yqpluqFkGyJUfS3QEQgz0TOqlcESB8Y8iTiBTkIt1jR3ZpPmyVhXDWlMLtkzJaL7t7Wx3quqXXosSCkWGj1yqnvKKyEqXzmr52lLf4VM/FPkszQlrtNtidDlRUV6G5vQ1V0inz2Ov1VauKxkgMz2xB36Ts7Jt7UbepTfLTL3tZOezlHpF7AbKk/JoFJJURsUtEcs3azr7aayULSJpIyywgFgGxlrtV0rNZe/rZX+K996/h2vX38f6N67j+wQ1lNz78ANdv3MB7167htddfx9DFnYifM+PUSxfxzqfX8f5nHyp757PruPr5+3j783dx7fMPcOPjj/DBRx8qY9fM/z/65GM8/9KL2CiLxHz0yrnHKXtHdVMdrr73jti72LZnF8yy2KmiHoLoRFrBXmu1jU/Ky0SKKxsmt1SuYicsYmbpa5IzTHjrj3/At99++4PGHT7N6/pR92rmcLtw6syKev31119jZHZSJXmBHORMVgt+9eqv1bU//flPqv8zyhaRIiCJtnToJCLhIPfyTaIjEwanBWmUl+QJJWaQ/ishLQmv/+4KvvnmG7wh/8clJkBnTkFcmZzWii3QS7/Da7TlfcvYEB0Ver+0zPfRyqJiohEdGwN9UqKcGDORK3LLkvKdYjYiK9+BL//2V/XMv115XQ5VXlhcUgl7u0NjDU+Oq+6DqmEaJNrFt1xTxHnkngBIBpKdWQrEVGhTkUmSDjPOkIhf/+ZVfPXVV3jzrbfglx27fcsAyqe8qJvtQNNEj7pGm5EdOz4lMfR+z/ISdGkGJKYbZXXZWUt5L3HBXOVBqt+DzMZiGCWC8bKyW+dmQs8NSDXkZ8U3RL58z/nV5wguWeh8UYmoR28VEJFW8IQYOLPzjU5CRZBUudEoECzF/FIm1qCXg9K/4IsvvvhBe/vaVaTU2ULvdz55GMZdXmQv+8XqkLfcCveODngmO+EZaUGWvwyJIhWdOKgvtOClV15Wz1195yoW9uwOjZNfXoxUh0VFI8WZjSRRj17Kb7xEJPJTFHlDkPCopIjMdNJdRicn4JnnnsWnn36KK1euYEqavsmtk9gytWpHjh5R12l1XW2h1wvHDqGorxFlo51wDrXAvaUTjplOlC0OoGR5ALZjnXDtakdavQdRqUnSrhSGntVsVhpN7uKEoF/0Ty+JnmA1Iy7XGAGiPteKt5mgE90lOSXp87PVBhlvNiAqMR6/uPQkrkllevKpS4hN0iFaH4/ohFisj4nCA+seUs0hr9N8sqlpr2ePLiOztxbZIw2wjNYjc7wettk2uKc7YOmqgbGhHGZpy3UpyYhL0quxF/buDj1PSWW4pNy6AipJEbUwl3XBaMTmpEV8QKc+Mo2zEkQSOE+i4pJ+X17HyZl4Q2Iczsr54S3Jj8u/vYwLjz8WsvOPXcDZ8+fw1NNPqes0drva6xdefAHn5Pq58+eD/59bfX/hvBojU/Imxy0V0p4NvSkFaZIbly9fVs+zDVJduUBQ8owGVUP1xIu/casgqx9iM0zxNnMQJpBM/HJynS5WDkSn8brsEz9kzz33HAymNJxeWflR99PUuaeuElbZswwWM2KT9eiSanX60TOBz55FHZQUKyohwmUVm50a8SH2HXzDMDEqCazP6maT+gBsnT4WD8VHY11CDNbr4pTUopMSVBFgRYsXbSeI6YwpSDKnKtMbDdCn3Wq61OSQ8R5GwSXdg6fBC7u3ULXn8cZkxBh0MNosSt6MhEGKAfc5vSMSIsaSEvG1gvrGihcYKoaModPxgcwUxPAbVhk4OkWH2NRENVGCSRyTQpAkVS1ZSnRKdjpM/CyM3xvy2yd5bRJHzLbskJlsgb8ZZZMz5sp+YM1SZ3BHVTHyastgqypCZlGe6mrVV3z8ZoxVSiKSREkJCBc4zmoUkDRZeClEqyC3h0BiLKkBGEqMkREQwuhpUueTRGps1FSXLMmXLg0mD2FZMjmbOVuFR/QqTkm77RC55NHktbMqYHzNv7H5s8n5O1daIBtfC4BVopFdXiB7jFPywaYqJsssO41wCEqfqqF6YrIJkhrx1Zv6MpQgNEZFg2FkqEmGleGlVpl43DA5qaUsHznigLXSA5s4Y68WZ0UqTllhl68M+f7ykPE9/87rvM8uAHyGz3McjmcutMPksQXKv0CoUuvQImG6BSJKIhIEuS309TTDFAETJrNwGE6gdn+ZkBNnFOchq9QVgsqtcIfAFJw4rDlN4zXel122CsCWiIujVSctJ1hqVXLbAnlBnwK5ETD6HP6tbghEg9HyRYPhQIENMzMExAk1IDqhQdExDWwt4zXNeS0C4QCMgkps+2qZ1UrtzRBRWQYNZPW3KPxjOEwE0BpS44RahDQoJbswsLVM9XFB5/nMzQCBDS9dLZ4CCEaCdjME7ZYf1WzINIQufh/MzUA3Q4WDrWW8pjmvSehmGYWi8B1y0vxcEyTiJ05r/Mwp7wd+5vRdP2XiMTrc1vqZE8dZ62dOed/zMyfbWj9z+n/+8OyuNX54ds/3/OjsZzfZzT8+uzdsjO/68dkP/vDs/wBUXNeRym9KEQAAAABJRU5ErkJggg==");
4848
nextIcon = new ImageIcon(b642IMG("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAABnRSTlMANzlYqPBJSG/ZAAAASUlEQVR42mNgwAbS0oAEE4yHyWBmYAzjYDC694OJ4f9+BoY3H0BSbz6A2MxA6VciFyDqGAWQTWVkYEkCUrcOsDD8OwtkvMViMwAb8xEUHlHcFAAAAABJRU5ErkJggg=="));
4949
prevIcon = new ImageIcon(b642IMG("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAABnRSTlMANzlYgKhxpRi1AAAATElEQVR42mNgwAZYHIAEExA7qUAYLApMDmCGEwODCojByM/A8FEAyPi/moFh9QewYjCAM1iA+D2KqYwMrIlA6tUGFoa/Z4GMt1hsBgCe1wuKber+SwAAAABJRU5ErkJggg=="));
50-
busy = new ImageIcon(Resources.class.getClass().getResource("/resources/1.gif"));
51-
busyB64 = new ImageIcon(b642IMG("R0lGODlhEAALAPQAAP///wAAANra2tDQ0Orq6gcHBwAAAC8vL4KCgmFhYbq6uiMjI0tLS4qKimVlZb6+vicnJwUFBU9PT+bm5tjY2PT09Dk5Odzc3PLy8ra2tqCgoMrKyu7u7gAAAAAAAAAAACH5BAkLAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7"));
50+
busyIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/1.gif"));
51+
busyB64Icon = new ImageIcon(b642IMG("R0lGODlhEAALAPQAAP///wAAANra2tDQ0Orq6gcHBwAAAC8vL4KCgmFhYbq6uiMjI0tLS4qKimVlZb6+vicnJwUFBU9PT+bm5tjY2PT09Dk5Odzc3PLy8ra2tqCgoMrKyu7u7gAAAAAAAAAAACH5BAkLAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7"));
5252

53-
bat = new ImageIcon(Resources.class.getClass().getResource("/resources/bat.png"));
54-
sh = new ImageIcon(Resources.class.getClass().getResource("/resources/sh.png"));
55-
csharp = new ImageIcon(Resources.class.getClass().getResource("/resources/c#.png"));
56-
cplusplus = new ImageIcon(Resources.class.getClass().getResource("/resources/c++.png"));
57-
config = new ImageIcon(Resources.class.getClass().getResource("/resources/config.png"));
58-
jar = new ImageIcon(Resources.class.getClass().getResource("/resources/jar.png"));
59-
zip= new ImageIcon(Resources.class.getClass().getResource("/resources/zip.png"));
60-
packages = new ImageIcon(Resources.class.getClass().getResource("/resources/package.png"));
61-
folder = new ImageIcon(Resources.class.getClass().getResource("/resources/folder.png"));
62-
android = new ImageIcon(Resources.class.getClass().getResource("/resources/android.png"));
63-
file = new ImageIcon(Resources.class.getClass().getResource("/resources/file.png"));
64-
textFile = new ImageIcon(Resources.class.getClass().getResource("/resources/text.png"));
65-
classFile = new ImageIcon(Resources.class.getClass().getResource("/resources/java.png"));
66-
imageFile = new ImageIcon(Resources.class.getClass().getResource("/resources/image.png"));
67-
decoded = new ImageIcon(Resources.class.getClass().getResource("/resources/decoded.png"));
53+
batIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/bat.png"));
54+
shIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/sh.png"));
55+
csharpIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/c#.png"));
56+
cplusplusIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/c++.png"));
57+
configIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/config.png"));
58+
jarIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/jar.png"));
59+
zipIcon= new ImageIcon(Resources.class.getClass().getResource("/resources/zip.png"));
60+
packagesIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/package.png"));
61+
folderIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/folder.png"));
62+
androidIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/android.png"));
63+
fileIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/file.png"));
64+
textIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/text.png"));
65+
classIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/class.png"));
66+
imageIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/image.png"));
67+
decodedIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/decoded.png"));
68+
javaIcon = new ImageIcon(Resources.class.getClass().getResource("/resources/java.png"));
6869

6970
iconList = new ArrayList<BufferedImage>();
7071
int size = 16;

0 commit comments

Comments
 (0)