From e41a2a237987753b4a8c5f850e724fb26fc8bd36 Mon Sep 17 00:00:00 2001 From: YanisBft Date: Tue, 29 Jun 2021 11:14:06 +0200 Subject: Expand All & Collapse All in deobf panel (#412) * Expand All & Collapse All in deobf panel * fixed smth that was bothering me--- .../main/java/cuchaz/enigma/gui/ClassSelector.java | 6 ++++++ .../java/cuchaz/enigma/gui/config/Decompiler.java | 4 ++-- .../enigma/gui/elements/DeobfPanelPopupMenu.java | 21 ++++++++++++++------- .../java/cuchaz/enigma/gui/elements/MenuBar.java | 6 +++--- .../java/cuchaz/enigma/gui/stats/StatsMember.java | 4 ++-- enigma/src/main/resources/lang/en_us.json | 8 +++++--- enigma/src/main/resources/lang/fr_fr.json | 2 ++ 7 files changed, 34 insertions(+), 17 deletions(-) diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java index 7044106..57b23c9 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java @@ -361,6 +361,12 @@ public class ClassSelector extends JTree { } } + public void collapseAll() { + for (ClassSelectorPackageNode packageNode : packageNodes()) { + collapsePath(new TreePath(new Object[]{getModel().getRoot(), packageNode})); + } + } + public ClassEntry getFirstClass() { ClassSelectorPackageNode packageNode = packageNodes().get(0); if (packageNode != null) { diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/config/Decompiler.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/config/Decompiler.java index 0f9e41c..8232ab6 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/config/Decompiler.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/config/Decompiler.java @@ -4,8 +4,8 @@ import cuchaz.enigma.source.DecompilerService; import cuchaz.enigma.source.Decompilers; public enum Decompiler { - PROCYON("Procyon", Decompilers.PROCYON), - CFR("CFR", Decompilers.CFR); + CFR("CFR", Decompilers.CFR), + PROCYON("Procyon", Decompilers.PROCYON); public final DecompilerService service; public final String name; diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java index c888e4f..9481412 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java @@ -11,15 +11,22 @@ import java.awt.*; public class DeobfPanelPopupMenu { private final JPopupMenu ui; - private final JMenuItem renamePackage; - private final JMenuItem renameClass; + private final JMenuItem renamePackage = new JMenuItem(); + private final JMenuItem renameClass = new JMenuItem(); + private final JMenuItem expandAll = new JMenuItem(); + private final JMenuItem collapseAll = new JMenuItem(); public DeobfPanelPopupMenu(Gui gui) { this.ui = new JPopupMenu(); + this.ui.add(this.renamePackage); + this.ui.add(this.renameClass); + this.ui.addSeparator(); + this.ui.add(this.expandAll); + this.ui.add(this.collapseAll); + ClassSelector deobfClasses = gui.getDeobfPanel().deobfClasses; - this.renamePackage = new JMenuItem(); this.renamePackage.addActionListener(a -> { TreePath path; @@ -33,11 +40,9 @@ public class DeobfPanelPopupMenu { deobfClasses.getUI().startEditingAtPath(deobfClasses, path); }); - this.ui.add(this.renamePackage); - - this.renameClass = new JMenuItem(); this.renameClass.addActionListener(a -> deobfClasses.getUI().startEditingAtPath(deobfClasses, deobfClasses.getSelectionPath())); - this.ui.add(this.renameClass); + this.expandAll.addActionListener(a -> deobfClasses.expandAll()); + this.collapseAll.addActionListener(a -> deobfClasses.collapseAll()); this.retranslateUi(); } @@ -52,5 +57,7 @@ public class DeobfPanelPopupMenu { public void retranslateUi() { this.renamePackage.setText(I18n.translate("popup_menu.deobf_panel.rename_package")); this.renameClass.setText(I18n.translate("popup_menu.deobf_panel.rename_class")); + this.expandAll.setText(I18n.translate("popup_menu.deobf_panel.expand_all")); + this.collapseAll.setText(I18n.translate("popup_menu.deobf_panel.collapse_all")); } } diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java index 6603dd5..a0b2a52 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java @@ -57,9 +57,9 @@ public class MenuBar { private final JMenuItem customScaleItem = new JMenuItem(); private final JMenu searchMenu = new JMenu(); - private final JMenuItem searchClassItem = new JMenuItem(); - private final JMenuItem searchMethodItem = new JMenuItem(); - private final JMenuItem searchFieldItem = new JMenuItem(); + private final JMenuItem searchClassItem = new JMenuItem(GuiUtil.CLASS_ICON); + private final JMenuItem searchMethodItem = new JMenuItem(GuiUtil.METHOD_ICON); + private final JMenuItem searchFieldItem = new JMenuItem(GuiUtil.FIELD_ICON); private final JMenu collabMenu = new JMenu(); private final JMenuItem connectItem = new JMenuItem(); diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsMember.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsMember.java index 70b4f40..0e2452f 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsMember.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsMember.java @@ -1,8 +1,8 @@ package cuchaz.enigma.gui.stats; public enum StatsMember { + CLASSES, METHODS, FIELDS, - PARAMETERS, - CLASSES + PARAMETERS } diff --git a/enigma/src/main/resources/lang/en_us.json b/enigma/src/main/resources/lang/en_us.json index 35a4d93..b3085be 100644 --- a/enigma/src/main/resources/lang/en_us.json +++ b/enigma/src/main/resources/lang/en_us.json @@ -51,12 +51,12 @@ "menu.search.method": "Search Methods", "menu.search.field": "Search Fields", "menu.collab": "Collab", - "menu.collab.connect": "Connect to server", + "menu.collab.connect": "Connect to Server", "menu.collab.connect.error": "Error connecting to server", "menu.collab.disconnect": "Disconnect", - "menu.collab.server.start": "Start server", + "menu.collab.server.start": "Start Server", "menu.collab.server.start.error": "Error starting server", - "menu.collab.server.stop": "Stop server", + "menu.collab.server.stop": "Stop Server", "menu.help": "Help", "menu.help.about": "About", "menu.help.about.title": "%s - About", @@ -85,6 +85,8 @@ "popup_menu.editor_tab.close_right": "Close All to the Right", "popup_menu.deobf_panel.rename_package": "Rename Package", "popup_menu.deobf_panel.rename_class": "Rename Class", + "popup_menu.deobf_panel.expand_all": "Expand All", + "popup_menu.deobf_panel.collapse_all": "Collapse All", "editor.decompiling": "Decompiling...", "editor.decompile_error": "An error was encountered while decompiling.", diff --git a/enigma/src/main/resources/lang/fr_fr.json b/enigma/src/main/resources/lang/fr_fr.json index ea1a20f..2c9ec2c 100644 --- a/enigma/src/main/resources/lang/fr_fr.json +++ b/enigma/src/main/resources/lang/fr_fr.json @@ -85,6 +85,8 @@ "popup_menu.editor_tab.close_right": "Tout fermer sur la droite", "popup_menu.deobf_panel.rename_package": "Renommer le package", "popup_menu.deobf_panel.rename_class": "Renommer la classe", + "popup_menu.deobf_panel.expand_all": "Tout développer", + "popup_menu.deobf_panel.collapse_all": "Tout réduire", "editor.decompiling": "Décompilation...", "editor.decompile_error": "Une erreur est survenue lors de la décompilation.", -- cgit v1.2.3