From 65a8ff63bae4f6f2e025e3dbf0b7b8eb64193039 Mon Sep 17 00:00:00 2001 From: Erlend Ã…mdal Date: Sun, 12 May 2019 09:47:41 +0200 Subject: Add forward and backward reference history with mouse navigation (#132) * Add History * Add forward and backward reference history * Update PopupMenuBar text for history * Fix indentation * Fix more indentation --- .../java/cuchaz/enigma/gui/panels/PanelDeobf.java | 2 +- .../java/cuchaz/enigma/gui/panels/PanelEditor.java | 19 +++++++++++++++++-- src/main/java/cuchaz/enigma/gui/panels/PanelObf.java | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src/main/java/cuchaz/enigma/gui/panels') diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java index 68cc8e1..2a4e2d7 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java @@ -15,7 +15,7 @@ public class PanelDeobf extends JPanel { this.gui = gui; this.deobfClasses = new ClassSelector(gui, ClassSelector.DEOBF_CLASS_COMPARATOR, true); - this.deobfClasses.setSelectionListener(gui::navigateTo); + this.deobfClasses.setSelectionListener(gui.getController()::navigateTo); this.deobfClasses.setRenameSelectionListener(gui::onPanelRename); this.setLayout(new BorderLayout()); diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java index f766743..f19d98f 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java @@ -21,8 +21,19 @@ public class PanelEditor extends JEditorPane { this.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON3) - self.setCaretPosition(self.viewToModel(e.getPoint())); + switch (e.getButton()) { + case MouseEvent.BUTTON3: // Right click + self.setCaretPosition(self.viewToModel(e.getPoint())); + break; + + case 4: // Back navigation + gui.getController().openPreviousReference(); + break; + + case 5: // Forward navigation + gui.getController().openNextReference(); + break; + } } }); this.addKeyListener(new KeyAdapter() { @@ -49,6 +60,10 @@ public class PanelEditor extends JEditorPane { gui.popupMenu.openPreviousMenu.doClick(); break; + case KeyEvent.VK_E: + gui.popupMenu.openNextMenu.doClick(); + break; + case KeyEvent.VK_C: gui.popupMenu.showCallsMenu.doClick(); break; diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java index ccdc9f8..8ee564b 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java @@ -26,7 +26,7 @@ public class PanelObf extends JPanel { }; this.obfClasses = new ClassSelector(gui, obfClassComparator, false); - this.obfClasses.setSelectionListener(gui::navigateTo); + this.obfClasses.setSelectionListener(gui.getController()::navigateTo); this.obfClasses.setRenameSelectionListener(gui::onPanelRename); this.setLayout(new BorderLayout()); -- cgit v1.2.3