Better Functioning Last Directories
This makes it easier on the user by making the directory picking process a bit better
This commit is contained in:
parent
3349dd65b7
commit
0973dfdf41
12 changed files with 63 additions and 27 deletions
|
@ -34,7 +34,9 @@ public class Configuration
|
||||||
public static boolean warnForEditing = false;
|
public static boolean warnForEditing = false;
|
||||||
public static boolean runningObfuscation = false;
|
public static boolean runningObfuscation = false;
|
||||||
public static final long start = System.currentTimeMillis();
|
public static final long start = System.currentTimeMillis();
|
||||||
public static String lastDirectory = ".";
|
public static String lastOpenDirectory = ".";
|
||||||
|
public static String lastSaveDirectory = ".";
|
||||||
|
public static String lastPluginDirectory = ".";
|
||||||
public static boolean pingback = false;
|
public static boolean pingback = false;
|
||||||
public static boolean deleteForeignLibraries = true;
|
public static boolean deleteForeignLibraries = true;
|
||||||
public static boolean canExit = false;
|
public static boolean canExit = false;
|
||||||
|
@ -50,9 +52,27 @@ public class Configuration
|
||||||
public static RSTATheme rstaTheme = lafTheme.getRSTATheme();
|
public static RSTATheme rstaTheme = lafTheme.getRSTATheme();
|
||||||
public static long lastHotKeyExecuted = 0;
|
public static long lastHotKeyExecuted = 0;
|
||||||
|
|
||||||
public static File getLastDirectory()
|
public static File getLastOpenDirectory()
|
||||||
{
|
{
|
||||||
File lastDir = new File(lastDirectory);
|
File lastDir = new File(lastOpenDirectory);
|
||||||
|
if(lastDir.exists())
|
||||||
|
return lastDir;
|
||||||
|
|
||||||
|
return new File(".");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static File getLastSaveDirectory()
|
||||||
|
{
|
||||||
|
File lastDir = new File(lastSaveDirectory);
|
||||||
|
if(lastDir.exists())
|
||||||
|
return lastDir;
|
||||||
|
|
||||||
|
return new File(".");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static File getLastPluginDirectory()
|
||||||
|
{
|
||||||
|
File lastDir = new File(lastPluginDirectory);
|
||||||
if(lastDir.exists())
|
if(lastDir.exists())
|
||||||
return lastDir;
|
return lastDir;
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class GlobalHotKeys
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select Zip Export",
|
"Select Zip Export",
|
||||||
"Zip Archives",
|
"Zip Archives",
|
||||||
"zip");
|
"zip");
|
||||||
|
@ -94,7 +94,7 @@ public class GlobalHotKeys
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
|
|
||||||
if (!file.getAbsolutePath().endsWith(".zip"))
|
if (!file.getAbsolutePath().endsWith(".zip"))
|
||||||
|
|
|
@ -139,7 +139,7 @@ public class SettingsSerializer
|
||||||
save(BytecodeViewer.viewer.isMaximized);
|
save(BytecodeViewer.viewer.isMaximized);
|
||||||
save("deprecated");
|
save("deprecated");
|
||||||
save("deprecated");
|
save("deprecated");
|
||||||
save(Configuration.lastDirectory);
|
save(Configuration.lastOpenDirectory);
|
||||||
save(Configuration.python2);
|
save(Configuration.python2);
|
||||||
save(Configuration.rt);
|
save(Configuration.rt);
|
||||||
save("deprecated");
|
save("deprecated");
|
||||||
|
@ -336,7 +336,7 @@ public class SettingsSerializer
|
||||||
}
|
}
|
||||||
//86 is deprecated
|
//86 is deprecated
|
||||||
//87 is deprecated
|
//87 is deprecated
|
||||||
Configuration.lastDirectory = asString(88);
|
Configuration.lastOpenDirectory = asString(88);
|
||||||
Configuration.python2 = asString(89);
|
Configuration.python2 = asString(89);
|
||||||
Configuration.rt = asString(90);
|
Configuration.rt = asString(90);
|
||||||
|
|
||||||
|
@ -388,6 +388,8 @@ public class SettingsSerializer
|
||||||
Configuration.javaTools = asString(134);
|
Configuration.javaTools = asString(134);
|
||||||
Configuration.python2Extra = asString(135);
|
Configuration.python2Extra = asString(135);
|
||||||
Configuration.python3Extra = asString(136);
|
Configuration.python3Extra = asString(136);
|
||||||
|
Configuration.lastSaveDirectory = asString(137);
|
||||||
|
Configuration.lastPluginDirectory = asString(138);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfBoundsException e)
|
catch (IndexOutOfBoundsException e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -850,7 +850,9 @@ public class MainViewerGUI extends JFrame
|
||||||
{
|
{
|
||||||
final File file = DialogueUtils.fileChooser("Select External Plugin",
|
final File file = DialogueUtils.fileChooser("Select External Plugin",
|
||||||
"External Plugin",
|
"External Plugin",
|
||||||
|
Configuration.getLastOpenDirectory(),
|
||||||
PluginManager.fileFilter(),
|
PluginManager.fileFilter(),
|
||||||
|
(f)-> Configuration.lastPluginDirectory = f.getAbsolutePath(),
|
||||||
FileChooser.EVERYTHING);
|
FileChooser.EVERYTHING);
|
||||||
|
|
||||||
if(file == null)
|
if(file == null)
|
||||||
|
|
|
@ -131,7 +131,7 @@ public class PluginWriter extends JFrame
|
||||||
if(savePath == null)
|
if(savePath == null)
|
||||||
{
|
{
|
||||||
final String ext = FileNameUtils.getExtension(pluginName);
|
final String ext = FileNameUtils.getExtension(pluginName);
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastPluginDirectory(),
|
||||||
"Save Plugin",
|
"Save Plugin",
|
||||||
"BCV Plugin",
|
"BCV Plugin",
|
||||||
ext);
|
ext);
|
||||||
|
@ -139,7 +139,7 @@ public class PluginWriter extends JFrame
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastPluginDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
String path = file.getAbsolutePath();
|
String path = file.getAbsolutePath();
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class ResourceDecompiling
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select Zip Export",
|
"Select Zip Export",
|
||||||
"Zip Archives",
|
"Zip Archives",
|
||||||
"zip");
|
"zip");
|
||||||
|
@ -42,7 +42,7 @@ public class ResourceDecompiling
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
|
|
||||||
//auto appened zip
|
//auto appened zip
|
||||||
|
@ -193,7 +193,7 @@ public class ResourceDecompiling
|
||||||
|
|
||||||
final ClassNode cn = BytecodeViewer.getCurrentlyOpenedClassNode();
|
final ClassNode cn = BytecodeViewer.getCurrentlyOpenedClassNode();
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select Java Files",
|
"Select Java Files",
|
||||||
"Java Source Files",
|
"Java Source Files",
|
||||||
"java");
|
"java");
|
||||||
|
@ -201,7 +201,7 @@ public class ResourceDecompiling
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
|
|
||||||
BytecodeViewer.updateBusyStatus(true);
|
BytecodeViewer.updateBusyStatus(true);
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class APKExport implements Exporter
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select APK Export",
|
"Select APK Export",
|
||||||
"Android APK",
|
"Android APK",
|
||||||
"apk");
|
"apk");
|
||||||
|
@ -76,7 +76,7 @@ public class APKExport implements Exporter
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
final File file = fc.getSelectedFile();
|
final File file = fc.getSelectedFile();
|
||||||
String output = file.getAbsolutePath();
|
String output = file.getAbsolutePath();
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class DexExport implements Exporter
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select DEX Export",
|
"Select DEX Export",
|
||||||
"Android DEX Files",
|
"Android DEX Files",
|
||||||
"dex");
|
"dex");
|
||||||
|
@ -41,7 +41,7 @@ public class DexExport implements Exporter
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
final File file = fc.getSelectedFile();
|
final File file = fc.getSelectedFile();
|
||||||
String output = file.getAbsolutePath();
|
String output = file.getAbsolutePath();
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class RunnableJarExporter implements Exporter
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select Jar Export",
|
"Select Jar Export",
|
||||||
"Jar Archives",
|
"Jar Archives",
|
||||||
"jar");
|
"jar");
|
||||||
|
@ -35,7 +35,7 @@ public class RunnableJarExporter implements Exporter
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
String path = file.getAbsolutePath();
|
String path = file.getAbsolutePath();
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class ZipExport implements Exporter
|
||||||
if (!BytecodeViewer.autoCompileSuccessful())
|
if (!BytecodeViewer.autoCompileSuccessful())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastSaveDirectory(),
|
||||||
"Select Zip Export",
|
"Select Zip Export",
|
||||||
"Zip Archives",
|
"Zip Archives",
|
||||||
"zip");
|
"zip");
|
||||||
|
@ -35,7 +35,7 @@ public class ZipExport implements Exporter
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastSaveDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
|
|
||||||
//auto append .zip
|
//auto append .zip
|
||||||
|
|
|
@ -77,7 +77,16 @@ public class DialogueUtils
|
||||||
*/
|
*/
|
||||||
public static File fileChooser(String title, String description, FileFilter filter, String... extensions)
|
public static File fileChooser(String title, String description, FileFilter filter, String... extensions)
|
||||||
{
|
{
|
||||||
final JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
return fileChooser(title, description, Configuration.getLastOpenDirectory(), filter,
|
||||||
|
(f)-> Configuration.lastOpenDirectory = f.getAbsolutePath(), extensions);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prompts a File Chooser dilogue
|
||||||
|
*/
|
||||||
|
public static File fileChooser(String title, String description, File directory, FileFilter filter, OnOpenEvent onOpen, String... extensions)
|
||||||
|
{
|
||||||
|
final JFileChooser fc = new FileChooser(directory,
|
||||||
title,
|
title,
|
||||||
description,
|
description,
|
||||||
extensions);
|
extensions);
|
||||||
|
@ -89,7 +98,7 @@ public class DialogueUtils
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
try {
|
try {
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
Configuration.lastDirectory = file.getAbsolutePath();
|
onOpen.onOpen(file);
|
||||||
return file;
|
return file;
|
||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
BytecodeViewer.handleException(e1);
|
BytecodeViewer.handleException(e1);
|
||||||
|
@ -97,4 +106,9 @@ public class DialogueUtils
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface OnOpenEvent
|
||||||
|
{
|
||||||
|
void onOpen(File fileSelected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,11 @@ package the.bytecode.club.bytecodeviewer.util;
|
||||||
import me.konloch.kontainer.io.HTTPRequest;
|
import me.konloch.kontainer.io.HTTPRequest;
|
||||||
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
|
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
|
||||||
import the.bytecode.club.bytecodeviewer.Configuration;
|
import the.bytecode.club.bytecodeviewer.Configuration;
|
||||||
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
|
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
||||||
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.filechooser.FileFilter;
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
@ -78,7 +76,7 @@ public class VersionChecker implements Runnable
|
||||||
}
|
}
|
||||||
else if (result == 1)
|
else if (result == 1)
|
||||||
{
|
{
|
||||||
JFileChooser fc = new FileChooser(Configuration.getLastDirectory(),
|
JFileChooser fc = new FileChooser(Configuration.getLastOpenDirectory(),
|
||||||
"Select Save File",
|
"Select Save File",
|
||||||
"Zip Archives",
|
"Zip Archives",
|
||||||
"zip");
|
"zip");
|
||||||
|
@ -92,7 +90,7 @@ public class VersionChecker implements Runnable
|
||||||
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
int returnVal = fc.showSaveDialog(BytecodeViewer.viewer);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||||
{
|
{
|
||||||
Configuration.lastDirectory = fc.getSelectedFile().getAbsolutePath();
|
Configuration.lastOpenDirectory = fc.getSelectedFile().getAbsolutePath();
|
||||||
File file = fc.getSelectedFile();
|
File file = fc.getSelectedFile();
|
||||||
if (!file.getAbsolutePath().endsWith(".zip"))
|
if (!file.getAbsolutePath().endsWith(".zip"))
|
||||||
file = new File(file.getAbsolutePath() + ".zip");
|
file = new File(file.getAbsolutePath() + ".zip");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue