Translations & Cleanup
This commit is contained in:
parent
0898588be6
commit
296227360a
5 changed files with 21 additions and 19 deletions
|
@ -75,8 +75,6 @@ import static the.bytecode.club.bytecodeviewer.util.MiscUtils.guessLanguage;
|
||||||
* This is caused by the ctrlMouseWheelZoom code, a temporary patch is just removing it worst case
|
* This is caused by the ctrlMouseWheelZoom code, a temporary patch is just removing it worst case
|
||||||
* + Versioning and updating need to be fixed
|
* + Versioning and updating need to be fixed
|
||||||
* + Fix classfile searcher
|
* + Fix classfile searcher
|
||||||
* + JHexEditor in dark mode is nearly unreadable -> Theme support
|
|
||||||
* + JHexEditor doesn't apply font size from settings
|
|
||||||
*
|
*
|
||||||
* TODO API BUGS:
|
* TODO API BUGS:
|
||||||
* + All of the plugins that modify code need to include BytecodeViewer.updateAllClassNodeByteArrays();
|
* + All of the plugins that modify code need to include BytecodeViewer.updateAllClassNodeByteArrays();
|
||||||
|
@ -91,11 +89,11 @@ import static the.bytecode.club.bytecodeviewer.util.MiscUtils.guessLanguage;
|
||||||
* + Fix hook inject for EZ-Injection
|
* + Fix hook inject for EZ-Injection
|
||||||
*
|
*
|
||||||
* TODO FEATURES:
|
* TODO FEATURES:
|
||||||
* + On refresh save position
|
* + System Consoles and Error Dialogs should create a new tab rather than a new window
|
||||||
|
* + On refresh save scroll position
|
||||||
* + Option to only compile currently viewed class (true by default)
|
* + Option to only compile currently viewed class (true by default)
|
||||||
* + CLI Headless needs to be supported
|
* + CLI Headless needs to be supported
|
||||||
* + Add stackmapframes to bytecode decompiler
|
* + Add stackmapframes to bytecode decompiler
|
||||||
* + Add JEB decompiler optionally, requires them to add jeb library jar
|
|
||||||
* + Add https://github.com/exbin/bined as the replacement Hed Viewer/Editor
|
* + Add https://github.com/exbin/bined as the replacement Hed Viewer/Editor
|
||||||
* + Make the decompilers launch in a separate process
|
* + Make the decompilers launch in a separate process
|
||||||
* + Make it use that global last used file folder inside of export as jar
|
* + Make it use that global last used file folder inside of export as jar
|
||||||
|
@ -108,6 +106,7 @@ import static the.bytecode.club.bytecodeviewer.util.MiscUtils.guessLanguage;
|
||||||
*
|
*
|
||||||
* TODO IDEAS:
|
* TODO IDEAS:
|
||||||
* + App Bundle Support
|
* + App Bundle Support
|
||||||
|
* + Add JEB decompiler optionally, requires them to add jeb library jar
|
||||||
* + Add the setting to force all non-class resources to be opened with the Hex Viewer
|
* + Add the setting to force all non-class resources to be opened with the Hex Viewer
|
||||||
* ^ Optionally a right-click menu open-as would work inside of the resource list
|
* ^ Optionally a right-click menu open-as would work inside of the resource list
|
||||||
* + Allow class files to be opened without needing the .class extension
|
* + Allow class files to be opened without needing the .class extension
|
||||||
|
@ -177,6 +176,7 @@ public class BytecodeViewer
|
||||||
{
|
{
|
||||||
//precache settings file
|
//precache settings file
|
||||||
SettingsSerializer.preloadSettingsFile();
|
SettingsSerializer.preloadSettingsFile();
|
||||||
|
|
||||||
//setup look and feel
|
//setup look and feel
|
||||||
Configuration.lafTheme.setLAF();
|
Configuration.lafTheme.setLAF();
|
||||||
|
|
||||||
|
@ -244,6 +244,7 @@ public class BytecodeViewer
|
||||||
{
|
{
|
||||||
for (Process proc : createdProcesses)
|
for (Process proc : createdProcesses)
|
||||||
proc.destroy();
|
proc.destroy();
|
||||||
|
|
||||||
SettingsSerializer.saveSettings();
|
SettingsSerializer.saveSettings();
|
||||||
cleanup();
|
cleanup();
|
||||||
}, "Shutdown Hook"));
|
}, "Shutdown Hook"));
|
||||||
|
@ -291,12 +292,9 @@ public class BytecodeViewer
|
||||||
resourceContainers.add(container);
|
resourceContainers.add(container);
|
||||||
SwingUtilities.invokeLater(() ->
|
SwingUtilities.invokeLater(() ->
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
viewer.resourcePane.addResourceContainer(container);
|
viewer.resourcePane.addResourceContainer(container);
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -359,6 +357,7 @@ public class BytecodeViewer
|
||||||
for (ResourceContainer container : resourceContainers)
|
for (ResourceContainer container : resourceContainers)
|
||||||
{
|
{
|
||||||
ClassNode node = container.getClassNode(name);
|
ClassNode node = container.getClassNode(name);
|
||||||
|
|
||||||
if (node != null)
|
if (node != null)
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
@ -414,7 +413,7 @@ public class BytecodeViewer
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets all of the loaded classes as an array list
|
* Gets all of the loaded classes as an array list
|
||||||
* <p>
|
*
|
||||||
* TODO: remove this and replace it with:
|
* TODO: remove this and replace it with:
|
||||||
* BytecodeViewer.getResourceContainers().forEach(container -> {
|
* BytecodeViewer.getResourceContainers().forEach(container -> {
|
||||||
* execute(new ArrayList<>(container.resourceClasses.values()));
|
* execute(new ArrayList<>(container.resourceClasses.values()));
|
||||||
|
@ -562,7 +561,7 @@ public class BytecodeViewer
|
||||||
*/
|
*/
|
||||||
public static void showMessage(String message)
|
public static void showMessage(String message)
|
||||||
{
|
{
|
||||||
BetterJOptionPane.showMessageDialog(viewer, message);
|
ExtendedJOptionPane.showMessageDialog(viewer, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -572,7 +571,7 @@ public class BytecodeViewer
|
||||||
*/
|
*/
|
||||||
public static String showInput(String message)
|
public static String showInput(String message)
|
||||||
{
|
{
|
||||||
return BetterJOptionPane.showInputDialog(viewer, message);
|
return ExtendedJOptionPane.showInputDialog(viewer, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -681,9 +680,8 @@ public class BytecodeViewer
|
||||||
{
|
{
|
||||||
if (ask)
|
if (ask)
|
||||||
{
|
{
|
||||||
MultipleChoiceDialog dialog = new MultipleChoiceDialog("Bytecode Viewer - Reset Workspace",
|
MultipleChoiceDialog dialog = new MultipleChoiceDialog(TranslatedStrings.RESET_TITLE.toString(),
|
||||||
"Are you sure you want to reset the workspace?" +
|
TranslatedStrings.RESET_CONFIRM.toString(),
|
||||||
"\n\rIt will also reset your file navigator and search.",
|
|
||||||
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (dialog.promptChoice() != 0)
|
if (dialog.promptChoice() != 0)
|
||||||
|
|
|
@ -16,7 +16,7 @@ import static javax.swing.JOptionPane.*;
|
||||||
* @since 7/4/2021
|
* @since 7/4/2021
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class BetterJOptionPane
|
public class ExtendedJOptionPane
|
||||||
{
|
{
|
||||||
public static void showMessageDialog(Component parentComponent,
|
public static void showMessageDialog(Component parentComponent,
|
||||||
Object message) throws HeadlessException
|
Object message) throws HeadlessException
|
|
@ -77,7 +77,7 @@ public class SettingsDialog extends JScrollPane
|
||||||
|
|
||||||
public void showDialog()
|
public void showDialog()
|
||||||
{
|
{
|
||||||
BetterJOptionPane.showJPanelDialog(null, this, 460, dialogs::add);
|
ExtendedJOptionPane.showJPanelDialog(null, this, 460, dialogs::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buildPanel()
|
private void buildPanel()
|
||||||
|
|
|
@ -67,6 +67,8 @@ public enum TranslatedStrings
|
||||||
SELECT_EXTERNAL_PLUGIN_TITLE,
|
SELECT_EXTERNAL_PLUGIN_TITLE,
|
||||||
SELECT_EXTERNAL_PLUGIN_DESCRIPTION,
|
SELECT_EXTERNAL_PLUGIN_DESCRIPTION,
|
||||||
FOREIGN_LIBRARY_WARNING,
|
FOREIGN_LIBRARY_WARNING,
|
||||||
|
RESET_TITLE,
|
||||||
|
RESET_CONFIRM,
|
||||||
EXIT_TITLE,
|
EXIT_TITLE,
|
||||||
EXIT_CONFIRM,
|
EXIT_CONFIRM,
|
||||||
ABOUT_TITLE,
|
ABOUT_TITLE,
|
||||||
|
|
|
@ -245,7 +245,9 @@
|
||||||
"SELECT_FILE_DESCRIPTION": "APKs, DEX, Class Files or Zip/Jar/War Archives",
|
"SELECT_FILE_DESCRIPTION": "APKs, DEX, Class Files or Zip/Jar/War Archives",
|
||||||
"SELECT_EXTERNAL_PLUGIN_TITLE": "Select External Plugin",
|
"SELECT_EXTERNAL_PLUGIN_TITLE": "Select External Plugin",
|
||||||
"SELECT_EXTERNAL_PLUGIN_DESCRIPTION": "BCV External Plugin in js, java, python, ruby or groovy",
|
"SELECT_EXTERNAL_PLUGIN_DESCRIPTION": "BCV External Plugin in js, java, python, ruby or groovy",
|
||||||
"FOREIGN_LIBRARY_WARNING": "WARNING: With this being toggled off outdated libraries will NOT be removed.\nIt's also a security issue.\nONLY TURN IT OFF IF YOU KNOW WHAT YOU'RE DOING.",
|
"FOREIGN_LIBRARY_WARNING": "WARNING: With this being toggled off outdated libraries will NOT be removed.\n\rIt's also a security issue.\n\rONLY TURN IT OFF IF YOU KNOW WHAT YOU'RE DOING.",
|
||||||
|
"RESET_TITLE": "{PRODUCT_NAME} - Reset Workspace",
|
||||||
|
"RESET_CONFIRM": "Are you sure you want to reset the workspace?\n\rIt will also reset your file navigator and search.",
|
||||||
"EXIT_TITLE": "{PRODUCT_NAME} - Exit",
|
"EXIT_TITLE": "{PRODUCT_NAME} - Exit",
|
||||||
"EXIT_CONFIRM": "Are you sure you want to exit?",
|
"EXIT_CONFIRM": "Are you sure you want to exit?",
|
||||||
"ABOUT_TITLE": "{PRODUCT_NAME} - About - {WEBSITE} | {TBC}",
|
"ABOUT_TITLE": "{PRODUCT_NAME} - About - {WEBSITE} | {TBC}",
|
||||||
|
|
Loading…
Reference in a new issue