From 9a3e5a9d132735f818c379ba72c554362650690d Mon Sep 17 00:00:00 2001 From: lclc98 Date: Sun, 3 Jul 2016 00:05:04 +1000 Subject: Started Gui Refactor --- .../java/cuchaz/enigma/gui/panels/PanelDeobf.java | 28 ++++++++++ .../java/cuchaz/enigma/gui/panels/PanelEditor.java | 60 ++++++++++++++++++++++ .../cuchaz/enigma/gui/panels/PanelIdentifier.java | 34 ++++++++++++ .../java/cuchaz/enigma/gui/panels/PanelObf.java | 27 ++++++++++ 4 files changed, 149 insertions(+) create mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java create mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java create mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java create mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelObf.java (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 new file mode 100644 index 0000000..d89de36 --- /dev/null +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java @@ -0,0 +1,28 @@ +package cuchaz.enigma.gui.panels; + +import java.awt.BorderLayout; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; + +import cuchaz.enigma.gui.ClassSelector; +import cuchaz.enigma.gui.Gui; + +public class PanelDeobf extends JPanel { + + public final ClassSelector deobfClasses; + private final Gui gui; + + public PanelDeobf(Gui gui) { + this.gui = gui; + + this.deobfClasses = new ClassSelector(ClassSelector.DeobfuscatedClassEntryComparator); + this.deobfClasses.setListener(gui::navigateTo); + + this.setLayout(new BorderLayout()); + this.add(new JLabel("De-obfuscated Classes"), BorderLayout.NORTH); + this.add(new JScrollPane(this.deobfClasses), BorderLayout.CENTER); + + } +} diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java new file mode 100644 index 0000000..6237710 --- /dev/null +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java @@ -0,0 +1,60 @@ +package cuchaz.enigma.gui.panels; + +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +import javax.swing.JEditorPane; + +import cuchaz.enigma.gui.BrowserCaret; +import cuchaz.enigma.gui.Gui; +import de.sciss.syntaxpane.DefaultSyntaxKit; + +public class PanelEditor extends JEditorPane { + private final Gui gui; + + public PanelEditor(Gui gui) { + this.gui = gui; + + this.setEditable(false); + this.setCaret(new BrowserCaret()); + this.setContentType("text/java"); + this.addCaretListener(event -> gui.onCaretMove(event.getDot())); + this.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent event) { + switch (event.getKeyCode()) { + case KeyEvent.VK_R: + gui.popupMenu.renameMenu.doClick(); + break; + + case KeyEvent.VK_I: + gui.popupMenu.showInheritanceMenu.doClick(); + break; + + case KeyEvent.VK_M: + gui.popupMenu.showImplementationsMenu.doClick(); + break; + + case KeyEvent.VK_N: + gui.popupMenu.openEntryMenu.doClick(); + break; + + case KeyEvent.VK_P: + gui.popupMenu.openPreviousMenu.doClick(); + break; + + case KeyEvent.VK_C: + gui.popupMenu.showCallsMenu.doClick(); + break; + + case KeyEvent.VK_T: + gui.popupMenu.toggleMappingMenu.doClick(); + break; + } + } + }); + + DefaultSyntaxKit kit = (DefaultSyntaxKit) this.getEditorKit(); + kit.toggleComponent(this, "de.sciss.syntaxpane.components.TokenMarker"); + } +} diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java b/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java new file mode 100644 index 0000000..4261eb5 --- /dev/null +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java @@ -0,0 +1,34 @@ +package cuchaz.enigma.gui.panels; + +import java.awt.Dimension; +import java.awt.GridLayout; + +import javax.swing.BorderFactory; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import cuchaz.enigma.gui.Gui; +import cuchaz.enigma.gui.GuiTricks; + +public class PanelIdentifier extends JPanel { + + private final Gui gui; + + public PanelIdentifier(Gui gui) { + this.gui = gui; + + this.setLayout(new GridLayout(4, 1, 0, 0)); + this.setPreferredSize(new Dimension(0, 100)); + this.setBorder(BorderFactory.createTitledBorder("Identifier Info")); + } + + public void clearReference() { + this.removeAll(); + JLabel label = new JLabel("No identifier selected"); + GuiTricks.unboldLabel(label); + label.setHorizontalAlignment(JLabel.CENTER); + this.add(label); + + gui.redraw(); + } +} diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java new file mode 100644 index 0000000..745cb2e --- /dev/null +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java @@ -0,0 +1,27 @@ +package cuchaz.enigma.gui.panels; + +import java.awt.BorderLayout; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; + +import cuchaz.enigma.gui.ClassSelector; +import cuchaz.enigma.gui.Gui; + +public class PanelObf extends JPanel { + + private final Gui gui; + public final ClassSelector obfClasses; + + public PanelObf(Gui gui) { + this.gui = gui; + + this.obfClasses = new ClassSelector(ClassSelector.ObfuscatedClassEntryComparator); + this.obfClasses.setListener(gui::navigateTo); + + this.setLayout(new BorderLayout()); + this.add(new JLabel("Obfuscated Classes"), BorderLayout.NORTH); + this.add(new JScrollPane(this.obfClasses), BorderLayout.CENTER); + } +} -- cgit v1.2.3