From 59e189bef2b5e6d129fb7c2c988ed0b2130e36ac Mon Sep 17 00:00:00 2001 From: lclc98 Date: Mon, 4 Jul 2016 18:14:22 +1000 Subject: Reformat --- .../cuchaz/enigma/gui/BoxHighlightPainter.java | 64 --- src/main/java/cuchaz/enigma/gui/BrowserCaret.java | 2 - .../java/cuchaz/enigma/gui/ClassMatchingGui.java | 521 --------------------- src/main/java/cuchaz/enigma/gui/ClassSelector.java | 143 ++---- .../cuchaz/enigma/gui/ClassSelectorClassNode.java | 47 -- .../enigma/gui/ClassSelectorPackageNode.java | 42 -- src/main/java/cuchaz/enigma/gui/CodeReader.java | 202 -------- .../enigma/gui/DeobfuscatedHighlightPainter.java | 20 - src/main/java/cuchaz/enigma/gui/Gui.java | 20 +- src/main/java/cuchaz/enigma/gui/GuiController.java | 4 +- src/main/java/cuchaz/enigma/gui/GuiTricks.java | 52 -- .../java/cuchaz/enigma/gui/MemberMatchingGui.java | 442 ----------------- .../enigma/gui/ObfuscatedHighlightPainter.java | 20 - .../cuchaz/enigma/gui/OtherHighlightPainter.java | 20 - src/main/java/cuchaz/enigma/gui/ReadableToken.java | 36 -- .../java/cuchaz/enigma/gui/ScoredClassEntry.java | 29 -- .../enigma/gui/SelectionHighlightPainter.java | 29 -- .../java/cuchaz/enigma/gui/dialog/AboutDialog.java | 6 +- .../java/cuchaz/enigma/gui/dialog/CrashDialog.java | 4 +- .../cuchaz/enigma/gui/dialog/ProgressDialog.java | 4 +- .../java/cuchaz/enigma/gui/elements/MenuBar.java | 4 +- .../enigma/gui/filechooser/FileChooserFolder.java | 2 +- .../enigma/gui/highlight/BoxHighlightPainter.java | 64 +++ .../highlight/DeobfuscatedHighlightPainter.java | 20 + .../gui/highlight/ObfuscatedHighlightPainter.java | 20 + .../gui/highlight/OtherHighlightPainter.java | 20 + .../gui/highlight/SelectionHighlightPainter.java | 29 ++ .../enigma/gui/node/ClassSelectorClassNode.java | 42 ++ .../enigma/gui/node/ClassSelectorPackageNode.java | 36 ++ .../java/cuchaz/enigma/gui/panels/PanelDeobf.java | 1 - .../cuchaz/enigma/gui/panels/PanelIdentifier.java | 4 +- .../java/cuchaz/enigma/gui/panels/PanelObf.java | 2 +- 32 files changed, 289 insertions(+), 1662 deletions(-) delete mode 100644 src/main/java/cuchaz/enigma/gui/BoxHighlightPainter.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ClassMatchingGui.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ClassSelectorClassNode.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ClassSelectorPackageNode.java delete mode 100644 src/main/java/cuchaz/enigma/gui/CodeReader.java delete mode 100644 src/main/java/cuchaz/enigma/gui/DeobfuscatedHighlightPainter.java delete mode 100644 src/main/java/cuchaz/enigma/gui/GuiTricks.java delete mode 100644 src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ObfuscatedHighlightPainter.java delete mode 100644 src/main/java/cuchaz/enigma/gui/OtherHighlightPainter.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ReadableToken.java delete mode 100644 src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java delete mode 100644 src/main/java/cuchaz/enigma/gui/SelectionHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/highlight/BoxHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/highlight/DeobfuscatedHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/highlight/ObfuscatedHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/highlight/OtherHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/highlight/SelectionHighlightPainter.java create mode 100644 src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java create mode 100644 src/main/java/cuchaz/enigma/gui/node/ClassSelectorPackageNode.java (limited to 'src/main/java/cuchaz/enigma/gui') diff --git a/src/main/java/cuchaz/enigma/gui/BoxHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/BoxHighlightPainter.java deleted file mode 100644 index b66d13d..0000000 --- a/src/main/java/cuchaz/enigma/gui/BoxHighlightPainter.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *
- * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ -package cuchaz.enigma.gui; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Rectangle; -import java.awt.Shape; - -import javax.swing.text.BadLocationException; -import javax.swing.text.Highlighter; -import javax.swing.text.JTextComponent; - -public abstract class BoxHighlightPainter implements Highlighter.HighlightPainter { - - private Color fillColor; - private Color borderColor; - - protected BoxHighlightPainter(Color fillColor, Color borderColor) { - this.fillColor = fillColor; - this.borderColor = borderColor; - } - - @Override - public void paint(Graphics g, int start, int end, Shape shape, JTextComponent text) { - Rectangle bounds = getBounds(text, start, end); - - // fill the area - if (this.fillColor != null) { - g.setColor(this.fillColor); - g.fillRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4); - } - - // draw a box around the area - g.setColor(this.borderColor); - g.drawRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4); - } - - public static Rectangle getBounds(JTextComponent text, int start, int end) { - try { - // determine the bounds of the text - Rectangle bounds = text.modelToView(start).union(text.modelToView(end)); - - // adjust the box so it looks nice - bounds.x -= 2; - bounds.width += 2; - bounds.y += 1; - bounds.height -= 2; - - return bounds; - } catch (BadLocationException ex) { - // don't care... just return something - return new Rectangle(0, 0, 0, 0); - } - } -} diff --git a/src/main/java/cuchaz/enigma/gui/BrowserCaret.java b/src/main/java/cuchaz/enigma/gui/BrowserCaret.java index a75db36..f58d012 100644 --- a/src/main/java/cuchaz/enigma/gui/BrowserCaret.java +++ b/src/main/java/cuchaz/enigma/gui/BrowserCaret.java @@ -15,8 +15,6 @@ import javax.swing.text.Highlighter; public class BrowserCaret extends DefaultCaret { - private static final long serialVersionUID = 1158977422507969940L; - private static final Highlighter.HighlightPainter selectionPainter = (g, p0, p1, bounds, c) -> { }; diff --git a/src/main/java/cuchaz/enigma/gui/ClassMatchingGui.java b/src/main/java/cuchaz/enigma/gui/ClassMatchingGui.java deleted file mode 100644 index e813688..0000000 --- a/src/main/java/cuchaz/enigma/gui/ClassMatchingGui.java +++ /dev/null @@ -1,521 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import com.google.common.collect.BiMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.event.ActionListener;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.*;
-
-import cuchaz.enigma.Constants;
-import cuchaz.enigma.Deobfuscator;
-import cuchaz.enigma.convert.*;
-import cuchaz.enigma.mapping.ClassEntry;
-import cuchaz.enigma.mapping.Mappings;
-import cuchaz.enigma.mapping.MappingsChecker;
-import de.sciss.syntaxpane.DefaultSyntaxKit;
-
-
-public class ClassMatchingGui {
-
- private enum SourceType {
- Matched {
- @Override
- public Collection
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-
-import cuchaz.enigma.mapping.ClassEntry;
-
-public class ClassSelectorClassNode extends DefaultMutableTreeNode {
-
- private static final long serialVersionUID = -8956754339813257380L;
-
- private ClassEntry classEntry;
-
- public ClassSelectorClassNode(ClassEntry classEntry) {
- this.classEntry = classEntry;
- }
-
- public ClassEntry getClassEntry() {
- return this.classEntry;
- }
-
- @Override
- public String toString() {
- if (this.classEntry instanceof ScoredClassEntry) {
- return String.format("%d%% %s", (int) ((ScoredClassEntry) this.classEntry).getScore(), this.classEntry.getSimpleName());
- }
- return this.classEntry.getSimpleName();
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof ClassSelectorClassNode && equals((ClassSelectorClassNode) other);
- }
-
- public boolean equals(ClassSelectorClassNode other) {
- return this.classEntry.equals(other.classEntry);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/ClassSelectorPackageNode.java b/src/main/java/cuchaz/enigma/gui/ClassSelectorPackageNode.java
deleted file mode 100644
index 3b5ba8c..0000000
--- a/src/main/java/cuchaz/enigma/gui/ClassSelectorPackageNode.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-
-public class ClassSelectorPackageNode extends DefaultMutableTreeNode {
-
- private static final long serialVersionUID = -3730868701219548043L;
-
- private String packageName;
-
- public ClassSelectorPackageNode(String packageName) {
- this.packageName = packageName;
- }
-
- public String getPackageName() {
- return this.packageName;
- }
-
- @Override
- public String toString() {
- return this.packageName;
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof ClassSelectorPackageNode && equals((ClassSelectorPackageNode) other);
- }
-
- public boolean equals(ClassSelectorPackageNode other) {
- return this.packageName.equals(other.packageName);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/CodeReader.java b/src/main/java/cuchaz/enigma/gui/CodeReader.java
deleted file mode 100644
index a476fa5..0000000
--- a/src/main/java/cuchaz/enigma/gui/CodeReader.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import com.strobel.decompiler.languages.java.ast.CompilationUnit;
-
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JEditorPane;
-import javax.swing.SwingUtilities;
-import javax.swing.Timer;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Highlighter.HighlightPainter;
-
-import cuchaz.enigma.Deobfuscator;
-import cuchaz.enigma.analysis.EntryReference;
-import cuchaz.enigma.analysis.SourceIndex;
-import cuchaz.enigma.analysis.Token;
-import cuchaz.enigma.mapping.ClassEntry;
-import cuchaz.enigma.mapping.Entry;
-import de.sciss.syntaxpane.DefaultSyntaxKit;
-
-
-public class CodeReader extends JEditorPane {
-
- private static final long serialVersionUID = 3673180950485748810L;
-
- private static final Object lock = new Object();
-
- public interface SelectionListener {
- void onSelect(EntryReference
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import java.awt.Color;
-
-public class DeobfuscatedHighlightPainter extends BoxHighlightPainter {
-
- public DeobfuscatedHighlightPainter() {
- super(new Color(220, 255, 220), new Color(80, 160, 80));
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index 623e12e..d93aa9f 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -36,11 +36,17 @@ import cuchaz.enigma.gui.elements.MenuBar;
import cuchaz.enigma.gui.elements.PopupMenuBar;
import cuchaz.enigma.gui.filechooser.FileChooserFile;
import cuchaz.enigma.gui.filechooser.FileChooserFolder;
+import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter;
+import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter;
+import cuchaz.enigma.gui.highlight.OtherHighlightPainter;
+import cuchaz.enigma.gui.highlight.SelectionHighlightPainter;
import cuchaz.enigma.gui.panels.PanelDeobf;
import cuchaz.enigma.gui.panels.PanelEditor;
import cuchaz.enigma.gui.panels.PanelIdentifier;
import cuchaz.enigma.gui.panels.PanelObf;
import cuchaz.enigma.mapping.*;
+import cuchaz.enigma.throwables.IllegalNameException;
+import cuchaz.enigma.utils.Utils;
import de.sciss.syntaxpane.DefaultSyntaxKit;
public class Gui {
@@ -363,7 +369,7 @@ public class Gui {
if (token == null) {
throw new IllegalArgumentException("Token cannot be null!");
}
- CodeReader.navigateToToken(this.editor, token, m_selectionHighlightPainter);
+ Utils.navigateToToken(this.editor, token, m_selectionHighlightPainter);
redraw();
}
@@ -476,7 +482,7 @@ public class Gui {
label.setPreferredSize(new Dimension(100, label.getPreferredSize().height));
panel.add(label);
- panel.add(GuiTricks.unboldLabel(new JLabel(value, JLabel.LEFT)));
+ panel.add(Utils.unboldLabel(new JLabel(value, JLabel.LEFT)));
}
public void onCaretMove(int pos) {
@@ -498,13 +504,13 @@ public class Gui {
m_infoPanel.clearReference();
}
- this.popupMenu.renameMenu.setEnabled(isRenameable && isToken);
+ this.popupMenu.renameMenu.setEnabled(isRenameable);
this.popupMenu.showInheritanceMenu.setEnabled(isClassEntry || isMethodEntry || isConstructorEntry);
this.popupMenu.showImplementationsMenu.setEnabled(isClassEntry || isMethodEntry);
this.popupMenu.showCallsMenu.setEnabled(isClassEntry || isFieldEntry || isMethodEntry || isConstructorEntry);
this.popupMenu.openEntryMenu.setEnabled(isInJar && (isClassEntry || isFieldEntry || isMethodEntry || isConstructorEntry));
this.popupMenu.openPreviousMenu.setEnabled(this.controller.hasPreviousLocation());
- this.popupMenu.toggleMappingMenu.setEnabled(isRenameable && isToken);
+ this.popupMenu.toggleMappingMenu.setEnabled(isRenameable);
if (isToken && this.controller.entryHasDeobfuscatedName(m_reference.entry)) {
this.popupMenu.toggleMappingMenu.setText("Reset to obfuscated");
@@ -526,7 +532,6 @@ public class Gui {
private void navigateTo(EntryReference
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import java.awt.Font;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
-import java.util.Arrays;
-
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.ToolTipManager;
-
-public class GuiTricks {
-
- public static JLabel unboldLabel(JLabel label) {
- Font font = label.getFont();
- label.setFont(font.deriveFont(font.getStyle() & ~Font.BOLD));
- return label;
- }
-
- public static void showToolTipNow(JComponent component) {
- // HACKHACK: trick the tooltip manager into showing the tooltip right now
- ToolTipManager manager = ToolTipManager.sharedInstance();
- int oldDelay = manager.getInitialDelay();
- manager.setInitialDelay(0);
- manager.mouseMoved(new MouseEvent(component, MouseEvent.MOUSE_MOVED, System.currentTimeMillis(), 0, 0, 0, 0, false));
- manager.setInitialDelay(oldDelay);
- }
-
- public static void deactivateButton(JButton button) {
- button.setEnabled(false);
- button.setText("");
- Arrays.asList(button.getActionListeners()).forEach(button::removeActionListener);
- }
-
- public static void activateButton(JButton button, String text, ActionListener newListener) {
- button.setText(text);
- button.setEnabled(true);
- Arrays.asList(button.getActionListeners()).forEach(button::removeActionListener);
- button.addActionListener(newListener);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java b/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java
deleted file mode 100644
index 0713ad5..0000000
--- a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.*;
-import javax.swing.text.Highlighter.HighlightPainter;
-
-import cuchaz.enigma.Constants;
-import cuchaz.enigma.Deobfuscator;
-import cuchaz.enigma.analysis.SourceIndex;
-import cuchaz.enigma.analysis.Token;
-import cuchaz.enigma.convert.ClassMatches;
-import cuchaz.enigma.convert.MemberMatches;
-import cuchaz.enigma.mapping.ClassEntry;
-import cuchaz.enigma.mapping.Entry;
-import de.sciss.syntaxpane.DefaultSyntaxKit;
-
-
-public class MemberMatchingGui
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import java.awt.Color;
-
-public class ObfuscatedHighlightPainter extends BoxHighlightPainter {
-
- public ObfuscatedHighlightPainter() {
- super(new Color(255, 220, 220), new Color(160, 80, 80));
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/OtherHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/OtherHighlightPainter.java
deleted file mode 100644
index 256f69e..0000000
--- a/src/main/java/cuchaz/enigma/gui/OtherHighlightPainter.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import java.awt.Color;
-
-public class OtherHighlightPainter extends BoxHighlightPainter {
-
- public OtherHighlightPainter() {
- super(null, new Color(180, 180, 180));
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/ReadableToken.java b/src/main/java/cuchaz/enigma/gui/ReadableToken.java
deleted file mode 100644
index feec8c0..0000000
--- a/src/main/java/cuchaz/enigma/gui/ReadableToken.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-public class ReadableToken {
-
- public int line;
- public int startColumn;
- public int endColumn;
-
- public ReadableToken(int line, int startColumn, int endColumn) {
- this.line = line;
- this.startColumn = startColumn;
- this.endColumn = endColumn;
- }
-
- @Override
- public String toString() {
- StringBuilder buf = new StringBuilder();
- buf.append("line ");
- buf.append(line);
- buf.append(" columns ");
- buf.append(startColumn);
- buf.append("-");
- buf.append(endColumn);
- return buf.toString();
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java b/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java
deleted file mode 100644
index 359ec7a..0000000
--- a/src/main/java/cuchaz/enigma/gui/ScoredClassEntry.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import cuchaz.enigma.mapping.ClassEntry;
-
-public class ScoredClassEntry extends ClassEntry {
-
- private static final long serialVersionUID = -8798725308554217105L;
-
- private float score;
-
- public ScoredClassEntry(ClassEntry other, float score) {
- super(other);
- this.score = score;
- }
-
- public float getScore() {
- return this.score;
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/SelectionHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/SelectionHighlightPainter.java
deleted file mode 100644
index fcad07c..0000000
--- a/src/main/java/cuchaz/enigma/gui/SelectionHighlightPainter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-package cuchaz.enigma.gui;
-
-import java.awt.*;
-
-import javax.swing.text.Highlighter;
-import javax.swing.text.JTextComponent;
-
-public class SelectionHighlightPainter implements Highlighter.HighlightPainter {
-
- @Override
- public void paint(Graphics g, int start, int end, Shape shape, JTextComponent text) {
- // draw a thick border
- Graphics2D g2d = (Graphics2D) g;
- Rectangle bounds = BoxHighlightPainter.getBounds(text, start, end);
- g2d.setColor(Color.black);
- g2d.setStroke(new BasicStroke(2.0f));
- g2d.drawRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/AboutDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/AboutDialog.java
index da4f5fb..f690b15 100644
--- a/src/main/java/cuchaz/enigma/gui/dialog/AboutDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/dialog/AboutDialog.java
@@ -19,7 +19,7 @@ import java.io.IOException;
import javax.swing.*;
import cuchaz.enigma.Constants;
-import cuchaz.enigma.Util;
+import cuchaz.enigma.utils.Utils;
public class AboutDialog {
@@ -31,7 +31,7 @@ public class AboutDialog {
// load the content
try {
- String html = Util.readResourceToString("/about.html");
+ String html = Utils.readResourceToString("/about.html");
html = String.format(html, Constants.NAME, Constants.VERSION);
JLabel label = new JLabel(html);
label.setHorizontalAlignment(JLabel.CENTER);
@@ -44,7 +44,7 @@ public class AboutDialog {
String html = "%s";
html = String.format(html, Constants.URL, Constants.URL);
JButton link = new JButton(html);
- link.addActionListener(event -> Util.openUrl(Constants.URL));
+ link.addActionListener(event -> Utils.openUrl(Constants.URL));
link.setBorderPainted(false);
link.setOpaque(false);
link.setBackground(Color.WHITE);
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
index 71aab01..8d3df47 100644
--- a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java
@@ -19,7 +19,7 @@ import java.io.StringWriter;
import javax.swing.*;
import cuchaz.enigma.Constants;
-import cuchaz.enigma.gui.GuiTricks;
+import cuchaz.enigma.utils.Utils;
public class CrashDialog {
@@ -48,7 +48,7 @@ public class CrashDialog {
FlowLayout buttonsLayout = new FlowLayout();
buttonsLayout.setAlignment(FlowLayout.RIGHT);
buttonsPanel.setLayout(buttonsLayout);
- buttonsPanel.add(GuiTricks.unboldLabel(new JLabel("If you choose exit, you will lose any unsaved work.")));
+ buttonsPanel.add(Utils.unboldLabel(new JLabel("If you choose exit, you will lose any unsaved work.")));
JButton ignoreButton = new JButton("Ignore");
ignoreButton.addActionListener(event -> {
// close (hide) the dialog
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java
index dc4d91e..c752c86 100644
--- a/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java
@@ -19,7 +19,7 @@ import javax.swing.*;
import cuchaz.enigma.Constants;
import cuchaz.enigma.Deobfuscator.ProgressListener;
-import cuchaz.enigma.gui.GuiTricks;
+import cuchaz.enigma.utils.Utils;
public class ProgressDialog implements ProgressListener, AutoCloseable {
@@ -44,7 +44,7 @@ public class ProgressDialog implements ProgressListener, AutoCloseable {
JPanel panel = new JPanel();
pane.add(panel);
panel.setLayout(new BorderLayout());
- this.labelText = GuiTricks.unboldLabel(new JLabel());
+ this.labelText = Utils.unboldLabel(new JLabel());
this.progress = new JProgressBar();
this.labelText.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
panel.add(this.labelText, BorderLayout.NORTH);
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
index 233d55e..e870334 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
@@ -9,7 +9,7 @@ import javax.swing.*;
import cuchaz.enigma.gui.Gui;
import cuchaz.enigma.gui.dialog.AboutDialog;
-import cuchaz.enigma.mapping.MappingParseException;
+import cuchaz.enigma.throwables.MappingParseException;
public class MenuBar extends JMenuBar {
@@ -69,8 +69,6 @@ public class MenuBar extends JMenuBar {
this.gui.getController().openMappings(this.gui.mappingsFileChooser.getSelectedFile());
} catch (IOException ex) {
throw new Error(ex);
- } catch (MappingParseException ex) {
- JOptionPane.showMessageDialog(this.gui.getFrame(), ex.getMessage());
}
}
});
diff --git a/src/main/java/cuchaz/enigma/gui/filechooser/FileChooserFolder.java b/src/main/java/cuchaz/enigma/gui/filechooser/FileChooserFolder.java
index bd8f0f0..93ca5d6 100644
--- a/src/main/java/cuchaz/enigma/gui/filechooser/FileChooserFolder.java
+++ b/src/main/java/cuchaz/enigma/gui/filechooser/FileChooserFolder.java
@@ -2,7 +2,7 @@ package cuchaz.enigma.gui.filechooser;
import javax.swing.JFileChooser;
-public class FileChooserFolder extends JFileChooser{
+public class FileChooserFolder extends JFileChooser {
public FileChooserFolder() {
this.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
diff --git a/src/main/java/cuchaz/enigma/gui/highlight/BoxHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/highlight/BoxHighlightPainter.java
new file mode 100644
index 0000000..0a73088
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/highlight/BoxHighlightPainter.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.highlight;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Rectangle;
+import java.awt.Shape;
+
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Highlighter;
+import javax.swing.text.JTextComponent;
+
+public abstract class BoxHighlightPainter implements Highlighter.HighlightPainter {
+
+ private Color fillColor;
+ private Color borderColor;
+
+ protected BoxHighlightPainter(Color fillColor, Color borderColor) {
+ this.fillColor = fillColor;
+ this.borderColor = borderColor;
+ }
+
+ @Override
+ public void paint(Graphics g, int start, int end, Shape shape, JTextComponent text) {
+ Rectangle bounds = getBounds(text, start, end);
+
+ // fill the area
+ if (this.fillColor != null) {
+ g.setColor(this.fillColor);
+ g.fillRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4);
+ }
+
+ // draw a box around the area
+ g.setColor(this.borderColor);
+ g.drawRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4);
+ }
+
+ public static Rectangle getBounds(JTextComponent text, int start, int end) {
+ try {
+ // determine the bounds of the text
+ Rectangle bounds = text.modelToView(start).union(text.modelToView(end));
+
+ // adjust the box so it looks nice
+ bounds.x -= 2;
+ bounds.width += 2;
+ bounds.y += 1;
+ bounds.height -= 2;
+
+ return bounds;
+ } catch (BadLocationException ex) {
+ // don't care... just return something
+ return new Rectangle(0, 0, 0, 0);
+ }
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/highlight/DeobfuscatedHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/highlight/DeobfuscatedHighlightPainter.java
new file mode 100644
index 0000000..5d57203
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/highlight/DeobfuscatedHighlightPainter.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.highlight;
+
+import java.awt.Color;
+
+public class DeobfuscatedHighlightPainter extends BoxHighlightPainter {
+
+ public DeobfuscatedHighlightPainter() {
+ super(new Color(220, 255, 220), new Color(80, 160, 80));
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/highlight/ObfuscatedHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/highlight/ObfuscatedHighlightPainter.java
new file mode 100644
index 0000000..ee64d86
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/highlight/ObfuscatedHighlightPainter.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.highlight;
+
+import java.awt.Color;
+
+public class ObfuscatedHighlightPainter extends BoxHighlightPainter {
+
+ public ObfuscatedHighlightPainter() {
+ super(new Color(255, 220, 220), new Color(160, 80, 80));
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/highlight/OtherHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/highlight/OtherHighlightPainter.java
new file mode 100644
index 0000000..43d8352
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/highlight/OtherHighlightPainter.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.highlight;
+
+import java.awt.Color;
+
+public class OtherHighlightPainter extends BoxHighlightPainter {
+
+ public OtherHighlightPainter() {
+ super(null, new Color(180, 180, 180));
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/highlight/SelectionHighlightPainter.java b/src/main/java/cuchaz/enigma/gui/highlight/SelectionHighlightPainter.java
new file mode 100644
index 0000000..f772284
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/highlight/SelectionHighlightPainter.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.highlight;
+
+import java.awt.*;
+
+import javax.swing.text.Highlighter;
+import javax.swing.text.JTextComponent;
+
+public class SelectionHighlightPainter implements Highlighter.HighlightPainter {
+
+ @Override
+ public void paint(Graphics g, int start, int end, Shape shape, JTextComponent text) {
+ // draw a thick border
+ Graphics2D g2d = (Graphics2D) g;
+ Rectangle bounds = BoxHighlightPainter.getBounds(text, start, end);
+ g2d.setColor(Color.black);
+ g2d.setStroke(new BasicStroke(2.0f));
+ g2d.drawRoundRect(bounds.x, bounds.y, bounds.width, bounds.height, 4, 4);
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java
new file mode 100644
index 0000000..e083572
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorClassNode.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.node;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import cuchaz.enigma.mapping.ClassEntry;
+
+public class ClassSelectorClassNode extends DefaultMutableTreeNode {
+
+ private ClassEntry classEntry;
+
+ public ClassSelectorClassNode(ClassEntry classEntry) {
+ this.classEntry = classEntry;
+ }
+
+ public ClassEntry getClassEntry() {
+ return this.classEntry;
+ }
+
+ @Override
+ public String toString() {
+ return this.classEntry.getSimpleName();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ return other instanceof ClassSelectorClassNode && equals((ClassSelectorClassNode) other);
+ }
+
+ public boolean equals(ClassSelectorClassNode other) {
+ return this.classEntry.equals(other.classEntry);
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/node/ClassSelectorPackageNode.java b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorPackageNode.java
new file mode 100644
index 0000000..805b3a8
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/node/ClassSelectorPackageNode.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.gui.node;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+
+public class ClassSelectorPackageNode extends DefaultMutableTreeNode {
+
+ private String packageName;
+
+ public ClassSelectorPackageNode(String packageName) {
+ this.packageName = packageName;
+ }
+
+ @Override
+ public String toString() {
+ return this.packageName;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ return other instanceof ClassSelectorPackageNode && equals((ClassSelectorPackageNode) other);
+ }
+
+ public boolean equals(ClassSelectorPackageNode other) {
+ return this.packageName.equals(other.packageName);
+ }
+}
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java
index 2cc8b76..bba7132 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelDeobf.java
@@ -23,6 +23,5 @@ public class PanelDeobf extends JPanel {
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/PanelIdentifier.java b/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java
index 4261eb5..faa023b 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelIdentifier.java
@@ -8,7 +8,7 @@ import javax.swing.JLabel;
import javax.swing.JPanel;
import cuchaz.enigma.gui.Gui;
-import cuchaz.enigma.gui.GuiTricks;
+import cuchaz.enigma.utils.Utils;
public class PanelIdentifier extends JPanel {
@@ -25,7 +25,7 @@ public class PanelIdentifier extends JPanel {
public void clearReference() {
this.removeAll();
JLabel label = new JLabel("No identifier selected");
- GuiTricks.unboldLabel(label);
+ Utils.unboldLabel(label);
label.setHorizontalAlignment(JLabel.CENTER);
this.add(label);
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
index 3e0374e..94b384f 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelObf.java
@@ -19,7 +19,7 @@ public class PanelObf extends JPanel {
public PanelObf(Gui gui) {
this.gui = gui;
- Comparator