summaryrefslogtreecommitdiff
path: root/enigma-swing/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'enigma-swing/src/main/java')
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java20
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java34
2 files changed, 50 insertions, 4 deletions
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java
index 323d304a..cbc9688e 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -37,10 +37,7 @@ import cuchaz.enigma.gui.config.UiConfig;
37import cuchaz.enigma.gui.dialog.CrashDialog; 37import cuchaz.enigma.gui.dialog.CrashDialog;
38import cuchaz.enigma.gui.dialog.JavadocDialog; 38import cuchaz.enigma.gui.dialog.JavadocDialog;
39import cuchaz.enigma.gui.dialog.SearchDialog; 39import cuchaz.enigma.gui.dialog.SearchDialog;
40import cuchaz.enigma.gui.elements.CollapsibleTabbedPane; 40import cuchaz.enigma.gui.elements.*;
41import cuchaz.enigma.gui.elements.EditorTabPopupMenu;
42import cuchaz.enigma.gui.elements.MenuBar;
43import cuchaz.enigma.gui.elements.ValidatableUi;
44import cuchaz.enigma.gui.events.EditorActionListener; 41import cuchaz.enigma.gui.events.EditorActionListener;
45import cuchaz.enigma.gui.panels.*; 42import cuchaz.enigma.gui.panels.*;
46import cuchaz.enigma.gui.util.History; 43import cuchaz.enigma.gui.util.History;
@@ -107,6 +104,7 @@ public class Gui implements LanguageChangeListener {
107 private JLabel statusLabel; 104 private JLabel statusLabel;
108 105
109 private final EditorTabPopupMenu editorTabPopupMenu; 106 private final EditorTabPopupMenu editorTabPopupMenu;
107 private final DeobfPanelPopupMenu deobfPanelPopupMenu;
110 private final JTabbedPane openFiles; 108 private final JTabbedPane openFiles;
111 private final HashBiMap<ClassEntry, EditorPanel> editors = HashBiMap.create(); 109 private final HashBiMap<ClassEntry, EditorPanel> editors = HashBiMap.create();
112 110
@@ -292,6 +290,19 @@ public class Gui implements LanguageChangeListener {
292 } 290 }
293 }); 291 });
294 292
293 deobfPanelPopupMenu = new DeobfPanelPopupMenu(this);
294 deobfPanel.deobfClasses.addMouseListener(new MouseAdapter() {
295 @Override
296 public void mousePressed(MouseEvent e) {
297 if (SwingUtilities.isRightMouseButton(e)) {
298 int i = deobfPanel.deobfClasses.getRowForPath(deobfPanel.deobfClasses.getSelectionPath());
299 if (i != -1) {
300 deobfPanelPopupMenu.show(deobfPanel.deobfClasses, e.getX(), e.getY());
301 }
302 }
303 }
304 });
305
295 // layout controls 306 // layout controls
296 JPanel centerPanel = new JPanel(); 307 JPanel centerPanel = new JPanel();
297 centerPanel.setLayout(new BorderLayout()); 308 centerPanel.setLayout(new BorderLayout());
@@ -893,6 +904,7 @@ public class Gui implements LanguageChangeListener {
893 this.menuBar.retranslateUi(); 904 this.menuBar.retranslateUi();
894 this.obfPanel.retranslateUi(); 905 this.obfPanel.retranslateUi();
895 this.deobfPanel.retranslateUi(); 906 this.deobfPanel.retranslateUi();
907 this.deobfPanelPopupMenu.retranslateUi();
896 this.infoPanel.retranslateUi(); 908 this.infoPanel.retranslateUi();
897 this.editors.values().forEach(EditorPanel::retranslateUi); 909 this.editors.values().forEach(EditorPanel::retranslateUi);
898 } 910 }
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
new file mode 100644
index 00000000..a4d749c2
--- /dev/null
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/DeobfPanelPopupMenu.java
@@ -0,0 +1,34 @@
1package cuchaz.enigma.gui.elements;
2
3import cuchaz.enigma.gui.ClassSelector;
4import cuchaz.enigma.gui.Gui;
5import cuchaz.enigma.utils.I18n;
6
7import javax.swing.*;
8import java.awt.*;
9
10public class DeobfPanelPopupMenu {
11
12 private final JPopupMenu ui;
13 private final JMenuItem rename;
14
15 public DeobfPanelPopupMenu(Gui gui) {
16 this.ui = new JPopupMenu();
17
18 ClassSelector deobfClasses = gui.getDeobfPanel().deobfClasses;
19
20 this.rename = new JMenuItem();
21 this.rename.addActionListener(a -> deobfClasses.getUI().startEditingAtPath(deobfClasses, deobfClasses.getSelectionPath()));
22 this.ui.add(this.rename);
23
24 this.retranslateUi();
25 }
26
27 public void show(Component invoker, int x, int y) {
28 this.ui.show(invoker, x, y);
29 }
30
31 public void retranslateUi() {
32 this.rename.setText(I18n.translate("popup_menu.deobf_panel.rename"));
33 }
34}