From 0f47403d0220757fed189b76e2071e25b1025cb8 Mon Sep 17 00:00:00 2001 From: Runemoro Date: Wed, 3 Jun 2020 13:39:42 -0400 Subject: Split GUI code to separate module (#242) * Split into modules * Post merge compile fixes Co-authored-by: modmuss50 --- .../java/cuchaz/enigma/gui/panels/PanelDeobf.java | 26 ---- .../java/cuchaz/enigma/gui/panels/PanelEditor.java | 171 --------------------- .../cuchaz/enigma/gui/panels/PanelIdentifier.java | 32 ---- .../java/cuchaz/enigma/gui/panels/PanelObf.java | 37 ----- 4 files changed, 266 deletions(-) delete mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java delete mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java delete mode 100644 src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java delete 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 deleted file mode 100644 index c24226b..0000000 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java +++ /dev/null @@ -1,26 +0,0 @@ -package cuchaz.enigma.gui.panels; - -import cuchaz.enigma.gui.ClassSelector; -import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.utils.I18n; - -import javax.swing.*; -import java.awt.*; - -public class PanelDeobf extends JPanel { - - public final ClassSelector deobfClasses; - private final Gui gui; - - public PanelDeobf(Gui gui) { - this.gui = gui; - - this.deobfClasses = new ClassSelector(gui, ClassSelector.DEOBF_CLASS_COMPARATOR, true); - this.deobfClasses.setSelectionListener(gui.getController()::navigateTo); - this.deobfClasses.setRenameSelectionListener(gui::onPanelRename); - - this.setLayout(new BorderLayout()); - this.add(new JLabel(I18n.translate("info_panel.classes.deobfuscated")), 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 deleted file mode 100644 index 8637afd..0000000 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java +++ /dev/null @@ -1,171 +0,0 @@ -package cuchaz.enigma.gui.panels; - -import cuchaz.enigma.EnigmaProject; -import cuchaz.enigma.analysis.EntryReference; -import cuchaz.enigma.config.Config; -import cuchaz.enigma.gui.BrowserCaret; -import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.translation.representation.entry.ClassEntry; -import cuchaz.enigma.translation.representation.entry.Entry; -import cuchaz.enigma.gui.util.ScaleUtil; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -public class PanelEditor extends JEditorPane { - private boolean mouseIsPressed = false; - public int fontSize = 12; - - public PanelEditor(Gui gui) { - this.setEditable(false); - this.setSelectionColor(new Color(31, 46, 90)); - this.setCaret(new BrowserCaret()); - this.setFont(ScaleUtil.getFont(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); - this.addCaretListener(event -> gui.onCaretMove(event.getDot(), mouseIsPressed)); - final PanelEditor self = this; - this.addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(MouseEvent mouseEvent) { - mouseIsPressed = true; - } - - @Override - public void mouseReleased(MouseEvent e) { - 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; - } - mouseIsPressed = false; - } - }); - this.addKeyListener(new KeyAdapter() { - @Override - public void keyPressed(KeyEvent event) { - if (event.isControlDown()) { - gui.setShouldNavigateOnClick(false); - switch (event.getKeyCode()) { - 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_E: - gui.popupMenu.openNextMenu.doClick(); - break; - - case KeyEvent.VK_C: - if (event.isShiftDown()) { - gui.popupMenu.showCallsSpecificMenu.doClick(); - } else { - gui.popupMenu.showCallsMenu.doClick(); - } - break; - - case KeyEvent.VK_O: - gui.popupMenu.toggleMappingMenu.doClick(); - break; - - case KeyEvent.VK_R: - gui.popupMenu.renameMenu.doClick(); - break; - - case KeyEvent.VK_D: - gui.popupMenu.editJavadocMenu.doClick(); - break; - - case KeyEvent.VK_F5: - gui.getController().refreshCurrentClass(); - break; - - case KeyEvent.VK_F: - // prevent navigating on click when quick find activated - break; - - case KeyEvent.VK_ADD: - case KeyEvent.VK_EQUALS: - case KeyEvent.VK_PLUS: - self.offsetEditorZoom(2); - break; - case KeyEvent.VK_SUBTRACT: - case KeyEvent.VK_MINUS: - self.offsetEditorZoom(-2); - break; - - default: - gui.setShouldNavigateOnClick(true); // CTRL - break; - } - } - } - - @Override - public void keyTyped(KeyEvent event) { - if (!gui.popupMenu.renameMenu.isEnabled()) return; - - if (!event.isControlDown() && !event.isAltDown() && Character.isJavaIdentifierPart(event.getKeyChar())) { - EnigmaProject project = gui.getController().project; - EntryReference, Entry> reference = project.getMapper().deobfuscate(gui.cursorReference); - Entry entry = reference.getNameableEntry(); - - String name = String.valueOf(event.getKeyChar()); - if (entry instanceof ClassEntry && ((ClassEntry) entry).getParent() == null) { - String packageName = ((ClassEntry) entry).getPackageName(); - if (packageName != null) { - name = packageName + "/" + name; - } - } - - gui.popupMenu.renameMenu.doClick(); - gui.renameTextField.setText(name); - } - } - - @Override - public void keyReleased(KeyEvent event) { - gui.setShouldNavigateOnClick(event.isControlDown()); - } - }); - } - - public void offsetEditorZoom(int zoomAmount) { - int newResult = this.fontSize + zoomAmount; - if (newResult > 8 && newResult < 72) { - this.fontSize = newResult; - this.setFont(ScaleUtil.getFont(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); - } - } - - public void resetEditorZoom() { - this.fontSize = 12; - this.setFont(ScaleUtil.getFont(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); - } - - @Override - public Color getCaretColor() { - return new Color(Config.getInstance().caretColor); - } -} diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java b/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java deleted file mode 100644 index de069bc..0000000 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java +++ /dev/null @@ -1,32 +0,0 @@ -package cuchaz.enigma.gui.panels; - -import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.utils.I18n; -import cuchaz.enigma.gui.util.ScaleUtil; -import cuchaz.enigma.utils.Utils; - -import javax.swing.*; -import java.awt.*; - -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(ScaleUtil.getDimension(0, 100)); - this.setBorder(BorderFactory.createTitledBorder(I18n.translate("info_panel.identifier"))); - } - - public void clearReference() { - this.removeAll(); - JLabel label = new JLabel(I18n.translate("info_panel.identifier.none")); - Utils.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 deleted file mode 100644 index dd7f9f9..0000000 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java +++ /dev/null @@ -1,37 +0,0 @@ -package cuchaz.enigma.gui.panels; - -import cuchaz.enigma.gui.ClassSelector; -import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.translation.representation.entry.ClassEntry; -import cuchaz.enigma.utils.I18n; - -import javax.swing.*; -import java.awt.*; -import java.util.Comparator; - -public class PanelObf extends JPanel { - - public final ClassSelector obfClasses; - private final Gui gui; - - public PanelObf(Gui gui) { - this.gui = gui; - - Comparator obfClassComparator = (a, b) -> { - String aname = a.getFullName(); - String bname = b.getFullName(); - if (aname.length() != bname.length()) { - return aname.length() - bname.length(); - } - return aname.compareTo(bname); - }; - - this.obfClasses = new ClassSelector(gui, obfClassComparator, false); - this.obfClasses.setSelectionListener(gui.getController()::navigateTo); - this.obfClasses.setRenameSelectionListener(gui::onPanelRename); - - this.setLayout(new BorderLayout()); - this.add(new JLabel(I18n.translate("info_panel.classes.obfuscated")), BorderLayout.NORTH); - this.add(new JScrollPane(this.obfClasses), BorderLayout.CENTER); - } -} -- cgit v1.2.3