diff options
| author | 2021-03-19 15:27:44 +0100 | |
|---|---|---|
| committer | 2021-03-19 15:27:44 +0100 | |
| commit | 4c6812d61adcd9fe32277a2906a705ca6ce68cf8 (patch) | |
| tree | 20736fb77b1b30a467b0eae379f0960dfd8ff2be | |
| parent | Update all deps, remove usage of jcenter (#359) (diff) | |
| parent | Icons everywhere (diff) | |
| download | enigma-4c6812d61adcd9fe32277a2906a705ca6ce68cf8.tar.gz enigma-4c6812d61adcd9fe32277a2906a705ca6ce68cf8.tar.xz enigma-4c6812d61adcd9fe32277a2906a705ca6ce68cf8.zip | |
Merge pull request #360 from YanisBft/icons-everywhere
Icons everywhere
12 files changed, 145 insertions, 20 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 a999cfa5..c5f827ef 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -40,6 +40,10 @@ import cuchaz.enigma.gui.dialog.SearchDialog; | |||
| 40 | import cuchaz.enigma.gui.elements.*; | 40 | import cuchaz.enigma.gui.elements.*; |
| 41 | import cuchaz.enigma.gui.events.EditorActionListener; | 41 | import cuchaz.enigma.gui.events.EditorActionListener; |
| 42 | import cuchaz.enigma.gui.panels.*; | 42 | import cuchaz.enigma.gui.panels.*; |
| 43 | import cuchaz.enigma.gui.renderer.CallsTreeCellRenderer; | ||
| 44 | import cuchaz.enigma.gui.renderer.ImplementationsTreeCellRenderer; | ||
| 45 | import cuchaz.enigma.gui.renderer.InheritanceTreeCellRenderer; | ||
| 46 | import cuchaz.enigma.gui.renderer.MessageListCellRenderer; | ||
| 43 | import cuchaz.enigma.gui.util.History; | 47 | import cuchaz.enigma.gui.util.History; |
| 44 | import cuchaz.enigma.gui.util.LanguageChangeListener; | 48 | import cuchaz.enigma.gui.util.LanguageChangeListener; |
| 45 | import cuchaz.enigma.gui.util.LanguageUtil; | 49 | import cuchaz.enigma.gui.util.LanguageUtil; |
| @@ -167,6 +171,7 @@ public class Gui implements LanguageChangeListener { | |||
| 167 | // init inheritance panel | 171 | // init inheritance panel |
| 168 | inheritanceTree = new JTree(); | 172 | inheritanceTree = new JTree(); |
| 169 | inheritanceTree.setModel(null); | 173 | inheritanceTree.setModel(null); |
| 174 | inheritanceTree.setCellRenderer(new InheritanceTreeCellRenderer(this)); | ||
| 170 | inheritanceTree.setShowsRootHandles(true); | 175 | inheritanceTree.setShowsRootHandles(true); |
| 171 | inheritanceTree.addMouseListener(new MouseAdapter() { | 176 | inheritanceTree.addMouseListener(new MouseAdapter() { |
| 172 | @Override | 177 | @Override |
| @@ -191,8 +196,6 @@ public class Gui implements LanguageChangeListener { | |||
| 191 | } | 196 | } |
| 192 | } | 197 | } |
| 193 | }); | 198 | }); |
| 194 | TreeCellRenderer cellRenderer = inheritanceTree.getCellRenderer(); | ||
| 195 | inheritanceTree.setCellRenderer(new MethodTreeCellRenderer(cellRenderer)); | ||
| 196 | 199 | ||
| 197 | JPanel inheritancePanel = new JPanel(); | 200 | JPanel inheritancePanel = new JPanel(); |
| 198 | inheritancePanel.setLayout(new BorderLayout()); | 201 | inheritancePanel.setLayout(new BorderLayout()); |
| @@ -201,6 +204,7 @@ public class Gui implements LanguageChangeListener { | |||
| 201 | // init implementations panel | 204 | // init implementations panel |
| 202 | implementationsTree = new JTree(); | 205 | implementationsTree = new JTree(); |
| 203 | implementationsTree.setModel(null); | 206 | implementationsTree.setModel(null); |
| 207 | implementationsTree.setCellRenderer(new ImplementationsTreeCellRenderer(this)); | ||
| 204 | implementationsTree.setShowsRootHandles(true); | 208 | implementationsTree.setShowsRootHandles(true); |
| 205 | implementationsTree.addMouseListener(new MouseAdapter() { | 209 | implementationsTree.addMouseListener(new MouseAdapter() { |
| 206 | @Override | 210 | @Override |
| @@ -230,6 +234,7 @@ public class Gui implements LanguageChangeListener { | |||
| 230 | // init call panel | 234 | // init call panel |
| 231 | callsTree = new JTree(); | 235 | callsTree = new JTree(); |
| 232 | callsTree.setModel(null); | 236 | callsTree.setModel(null); |
| 237 | callsTree.setCellRenderer(new CallsTreeCellRenderer(this)); | ||
| 233 | callsTree.setShowsRootHandles(true); | 238 | callsTree.setShowsRootHandles(true); |
| 234 | callsTree.addMouseListener(new MouseAdapter() { | 239 | callsTree.addMouseListener(new MouseAdapter() { |
| 235 | @SuppressWarnings("unchecked") | 240 | @SuppressWarnings("unchecked") |
| @@ -947,6 +952,7 @@ public class Gui implements LanguageChangeListener { | |||
| 947 | this.deobfPanelPopupMenu.retranslateUi(); | 952 | this.deobfPanelPopupMenu.retranslateUi(); |
| 948 | this.infoPanel.retranslateUi(); | 953 | this.infoPanel.retranslateUi(); |
| 949 | this.structurePanel.retranslateUi(); | 954 | this.structurePanel.retranslateUi(); |
| 955 | this.editorTabPopupMenu.retranslateUi(); | ||
| 950 | this.editors.values().forEach(EditorPanel::retranslateUi); | 956 | this.editors.values().forEach(EditorPanel::retranslateUi); |
| 951 | } | 957 | } |
| 952 | 958 | ||
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorTabPopupMenu.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorTabPopupMenu.java index 39ed9789..c2982cd0 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorTabPopupMenu.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/EditorTabPopupMenu.java | |||
| @@ -28,26 +28,28 @@ public class EditorTabPopupMenu { | |||
| 28 | 28 | ||
| 29 | this.ui = new JPopupMenu(); | 29 | this.ui = new JPopupMenu(); |
| 30 | 30 | ||
| 31 | this.close = new JMenuItem(I18n.translate("popup_menu.editor_tab.close")); | 31 | this.close = new JMenuItem(); |
| 32 | this.close.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, KeyEvent.CTRL_DOWN_MASK)); | 32 | this.close.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, KeyEvent.CTRL_DOWN_MASK)); |
| 33 | this.close.addActionListener(a -> gui.closeEditor(editor)); | 33 | this.close.addActionListener(a -> gui.closeEditor(editor)); |
| 34 | this.ui.add(this.close); | 34 | this.ui.add(this.close); |
| 35 | 35 | ||
| 36 | this.closeAll = new JMenuItem(I18n.translate("popup_menu.editor_tab.close_all")); | 36 | this.closeAll = new JMenuItem(); |
| 37 | this.closeAll.addActionListener(a -> gui.closeAllEditorTabs()); | 37 | this.closeAll.addActionListener(a -> gui.closeAllEditorTabs()); |
| 38 | this.ui.add(this.closeAll); | 38 | this.ui.add(this.closeAll); |
| 39 | 39 | ||
| 40 | this.closeOthers = new JMenuItem(I18n.translate("popup_menu.editor_tab.close_others")); | 40 | this.closeOthers = new JMenuItem(); |
| 41 | this.closeOthers.addActionListener(a -> gui.closeTabsExcept(editor)); | 41 | this.closeOthers.addActionListener(a -> gui.closeTabsExcept(editor)); |
| 42 | this.ui.add(this.closeOthers); | 42 | this.ui.add(this.closeOthers); |
| 43 | 43 | ||
| 44 | this.closeLeft = new JMenuItem(I18n.translate("popup_menu.editor_tab.close_left")); | 44 | this.closeLeft = new JMenuItem(); |
| 45 | this.closeLeft.addActionListener(a -> gui.closeTabsLeftOf(editor)); | 45 | this.closeLeft.addActionListener(a -> gui.closeTabsLeftOf(editor)); |
| 46 | this.ui.add(this.closeLeft); | 46 | this.ui.add(this.closeLeft); |
| 47 | 47 | ||
| 48 | this.closeRight = new JMenuItem(I18n.translate("popup_menu.editor_tab.close_right")); | 48 | this.closeRight = new JMenuItem(); |
| 49 | this.closeRight.addActionListener(a -> gui.closeTabsRightOf(editor)); | 49 | this.closeRight.addActionListener(a -> gui.closeTabsRightOf(editor)); |
| 50 | this.ui.add(this.closeRight); | 50 | this.ui.add(this.closeRight); |
| 51 | |||
| 52 | this.retranslateUi(); | ||
| 51 | } | 53 | } |
| 52 | 54 | ||
| 53 | public void show(Component invoker, int x, int y, EditorPanel editorPanel) { | 55 | public void show(Component invoker, int x, int y, EditorPanel editorPanel) { |
| @@ -55,4 +57,11 @@ public class EditorTabPopupMenu { | |||
| 55 | ui.show(invoker, x, y); | 57 | ui.show(invoker, x, y); |
| 56 | } | 58 | } |
| 57 | 59 | ||
| 60 | public void retranslateUi() { | ||
| 61 | this.close.setText(I18n.translate("popup_menu.editor_tab.close")); | ||
| 62 | this.closeAll.setText(I18n.translate("popup_menu.editor_tab.close_all")); | ||
| 63 | this.closeOthers.setText(I18n.translate("popup_menu.editor_tab.close_others")); | ||
| 64 | this.closeLeft.setText(I18n.translate("popup_menu.editor_tab.close_left")); | ||
| 65 | this.closeRight.setText(I18n.translate("popup_menu.editor_tab.close_right")); | ||
| 66 | } | ||
| 58 | } | 67 | } |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java index 12f1d758..6078145f 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java | |||
| @@ -84,13 +84,13 @@ public class StructurePanel extends JPanel { | |||
| 84 | 84 | ||
| 85 | @Override | 85 | @Override |
| 86 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { | 86 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { |
| 87 | JComponent c = (JComponent) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); | 87 | Component c = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); |
| 88 | ParentedEntry entry = ((StructureTreeNode) value).getEntry(); | 88 | ParentedEntry<?> entry = ((StructureTreeNode) value).getEntry(); |
| 89 | 89 | ||
| 90 | if (entry instanceof ClassEntry) { | 90 | if (entry instanceof ClassEntry) { |
| 91 | this.setIcon(GuiUtil.getClassIcon(gui, (ClassEntry) entry)); | 91 | this.setIcon(GuiUtil.getClassIcon(gui, (ClassEntry) entry)); |
| 92 | } else if (entry instanceof MethodEntry) { | 92 | } else if (entry instanceof MethodEntry) { |
| 93 | this.setIcon(((MethodEntry) entry).isConstructor() ? GuiUtil.CONSTRUCTOR_ICON : GuiUtil.METHOD_ICON); | 93 | this.setIcon(GuiUtil.getMethodIcon((MethodEntry) entry)); |
| 94 | } else if (entry instanceof FieldEntry) { | 94 | } else if (entry instanceof FieldEntry) { |
| 95 | this.setIcon(GuiUtil.FIELD_ICON); | 95 | this.setIcon(GuiUtil.FIELD_ICON); |
| 96 | } | 96 | } |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/CallsTreeCellRenderer.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/CallsTreeCellRenderer.java new file mode 100644 index 00000000..d5cfdab8 --- /dev/null +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/CallsTreeCellRenderer.java | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | package cuchaz.enigma.gui.renderer; | ||
| 2 | |||
| 3 | import cuchaz.enigma.analysis.*; | ||
| 4 | import cuchaz.enigma.gui.Gui; | ||
| 5 | import cuchaz.enigma.gui.config.UiConfig; | ||
| 6 | import cuchaz.enigma.gui.util.GuiUtil; | ||
| 7 | import cuchaz.enigma.translation.representation.entry.MethodEntry; | ||
| 8 | |||
| 9 | import javax.swing.*; | ||
| 10 | import javax.swing.tree.DefaultTreeCellRenderer; | ||
| 11 | import java.awt.*; | ||
| 12 | |||
| 13 | public class CallsTreeCellRenderer extends DefaultTreeCellRenderer { | ||
| 14 | private final Gui gui; | ||
| 15 | |||
| 16 | public CallsTreeCellRenderer(Gui gui) { | ||
| 17 | this.gui = gui; | ||
| 18 | } | ||
| 19 | |||
| 20 | @Override | ||
| 21 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { | ||
| 22 | Component c = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); | ||
| 23 | EntryReference<?, ?> reference = ((ReferenceTreeNode<?, ?>) value).getReference(); | ||
| 24 | |||
| 25 | this.setForeground(UiConfig.getTextColor()); | ||
| 26 | |||
| 27 | // if the node represents the method calling the entry | ||
| 28 | if (reference != null) { | ||
| 29 | if (reference.context instanceof MethodEntry) { | ||
| 30 | this.setIcon(GuiUtil.getMethodIcon((MethodEntry) reference.context)); | ||
| 31 | } | ||
| 32 | // if the node represents the called entry | ||
| 33 | } else { | ||
| 34 | if (value instanceof ClassReferenceTreeNode) { | ||
| 35 | this.setIcon(GuiUtil.getClassIcon(this.gui, ((ClassReferenceTreeNode) value).getEntry())); | ||
| 36 | } else if (value instanceof MethodReferenceTreeNode) { | ||
| 37 | this.setIcon(GuiUtil.getMethodIcon(((MethodReferenceTreeNode) value).getEntry())); | ||
| 38 | } else if (value instanceof FieldReferenceTreeNode) { | ||
| 39 | this.setIcon(GuiUtil.FIELD_ICON); | ||
| 40 | } | ||
| 41 | } | ||
| 42 | |||
| 43 | return c; | ||
| 44 | } | ||
| 45 | } | ||
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/ImplementationsTreeCellRenderer.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/ImplementationsTreeCellRenderer.java new file mode 100644 index 00000000..2eb7efc4 --- /dev/null +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/ImplementationsTreeCellRenderer.java | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | package cuchaz.enigma.gui.renderer; | ||
| 2 | |||
| 3 | import cuchaz.enigma.analysis.ClassImplementationsTreeNode; | ||
| 4 | import cuchaz.enigma.analysis.MethodImplementationsTreeNode; | ||
| 5 | import cuchaz.enigma.gui.Gui; | ||
| 6 | import cuchaz.enigma.gui.config.UiConfig; | ||
| 7 | import cuchaz.enigma.gui.util.GuiUtil; | ||
| 8 | |||
| 9 | import javax.swing.*; | ||
| 10 | import javax.swing.tree.DefaultTreeCellRenderer; | ||
| 11 | import java.awt.*; | ||
| 12 | |||
| 13 | public class ImplementationsTreeCellRenderer extends DefaultTreeCellRenderer { | ||
| 14 | private final Gui gui; | ||
| 15 | |||
| 16 | public ImplementationsTreeCellRenderer(Gui gui) { | ||
| 17 | this.gui = gui; | ||
| 18 | } | ||
| 19 | |||
| 20 | @Override | ||
| 21 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { | ||
| 22 | Component c = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); | ||
| 23 | |||
| 24 | this.setForeground(UiConfig.getTextColor()); | ||
| 25 | |||
| 26 | if (value instanceof ClassImplementationsTreeNode) { | ||
| 27 | this.setIcon(GuiUtil.getClassIcon(this.gui, ((ClassImplementationsTreeNode) value).getClassEntry())); | ||
| 28 | } else if (value instanceof MethodImplementationsTreeNode) { | ||
| 29 | this.setIcon(GuiUtil.getMethodIcon(((MethodImplementationsTreeNode) value).getMethodEntry())); | ||
| 30 | } | ||
| 31 | |||
| 32 | return c; | ||
| 33 | } | ||
| 34 | } | ||
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/InheritanceTreeCellRenderer.java index 3f38f4fc..e377b9a3 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/InheritanceTreeCellRenderer.java | |||
| @@ -9,35 +9,45 @@ | |||
| 9 | * Jeff Martin - initial API and implementation | 9 | * Jeff Martin - initial API and implementation |
| 10 | ******************************************************************************/ | 10 | ******************************************************************************/ |
| 11 | 11 | ||
| 12 | package cuchaz.enigma.gui; | 12 | package cuchaz.enigma.gui.renderer; |
| 13 | 13 | ||
| 14 | import java.awt.Component; | 14 | import java.awt.Component; |
| 15 | import java.awt.Font; | 15 | import java.awt.Font; |
| 16 | 16 | ||
| 17 | import javax.swing.JTree; | 17 | import javax.swing.JTree; |
| 18 | import javax.swing.tree.TreeCellRenderer; | 18 | import javax.swing.tree.DefaultTreeCellRenderer; |
| 19 | 19 | ||
| 20 | import cuchaz.enigma.analysis.ClassInheritanceTreeNode; | ||
| 20 | import cuchaz.enigma.analysis.MethodInheritanceTreeNode; | 21 | import cuchaz.enigma.analysis.MethodInheritanceTreeNode; |
| 22 | import cuchaz.enigma.gui.Gui; | ||
| 21 | import cuchaz.enigma.gui.config.UiConfig; | 23 | import cuchaz.enigma.gui.config.UiConfig; |
| 24 | import cuchaz.enigma.gui.util.GuiUtil; | ||
| 22 | 25 | ||
| 23 | class MethodTreeCellRenderer implements TreeCellRenderer { | 26 | public class InheritanceTreeCellRenderer extends DefaultTreeCellRenderer { |
| 27 | private final Gui gui; | ||
| 24 | 28 | ||
| 25 | private final TreeCellRenderer parent; | 29 | public InheritanceTreeCellRenderer(Gui gui) { |
| 26 | 30 | this.gui = gui; | |
| 27 | MethodTreeCellRenderer(TreeCellRenderer parent) { | ||
| 28 | this.parent = parent; | ||
| 29 | } | 31 | } |
| 30 | 32 | ||
| 31 | @Override | 33 | @Override |
| 32 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { | 34 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { |
| 33 | Component ret = parent.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); | 35 | Component ret = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); |
| 36 | |||
| 34 | if (!(value instanceof MethodInheritanceTreeNode) || ((MethodInheritanceTreeNode) value).isImplemented()) { | 37 | if (!(value instanceof MethodInheritanceTreeNode) || ((MethodInheritanceTreeNode) value).isImplemented()) { |
| 35 | ret.setForeground(UiConfig.getTextColor()); | 38 | ret.setForeground(UiConfig.getTextColor()); |
| 36 | ret.setFont(ret.getFont().deriveFont(Font.PLAIN)); | 39 | ret.setFont(ret.getFont().deriveFont(Font.PLAIN)); |
| 40 | if (value instanceof ClassInheritanceTreeNode) { | ||
| 41 | this.setIcon(GuiUtil.getClassIcon(this.gui, ((ClassInheritanceTreeNode) value).getClassEntry())); | ||
| 42 | } else if (value instanceof MethodInheritanceTreeNode) { | ||
| 43 | this.setIcon(GuiUtil.getMethodIcon(((MethodInheritanceTreeNode) value).getMethodEntry())); | ||
| 44 | } | ||
| 37 | } else { | 45 | } else { |
| 38 | ret.setForeground(UiConfig.getNumberColor()); | 46 | ret.setForeground(UiConfig.getNumberColor()); |
| 39 | ret.setFont(ret.getFont().deriveFont(Font.ITALIC)); | 47 | ret.setFont(ret.getFont().deriveFont(Font.ITALIC)); |
| 48 | this.setIcon(GuiUtil.CLASS_ICON); | ||
| 40 | } | 49 | } |
| 50 | |||
| 41 | return ret; | 51 | return ret; |
| 42 | } | 52 | } |
| 43 | } | 53 | } |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/MessageListCellRenderer.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/MessageListCellRenderer.java index 1d603409..b6ae0c50 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/MessageListCellRenderer.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/renderer/MessageListCellRenderer.java | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | package cuchaz.enigma.gui; | 1 | package cuchaz.enigma.gui.renderer; |
| 2 | 2 | ||
| 3 | import java.awt.Component; | 3 | import java.awt.Component; |
| 4 | 4 | ||
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java index 95f08539..1a86148d 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java | |||
| @@ -3,6 +3,7 @@ package cuchaz.enigma.gui.util; | |||
| 3 | import cuchaz.enigma.gui.Gui; | 3 | import cuchaz.enigma.gui.Gui; |
| 4 | import cuchaz.enigma.translation.representation.AccessFlags; | 4 | import cuchaz.enigma.translation.representation.AccessFlags; |
| 5 | import cuchaz.enigma.translation.representation.entry.ClassEntry; | 5 | import cuchaz.enigma.translation.representation.entry.ClassEntry; |
| 6 | import cuchaz.enigma.translation.representation.entry.MethodEntry; | ||
| 6 | import cuchaz.enigma.utils.Os; | 7 | import cuchaz.enigma.utils.Os; |
| 7 | 8 | ||
| 8 | import javax.imageio.ImageIO; | 9 | import javax.imageio.ImageIO; |
| @@ -106,4 +107,11 @@ public class GuiUtil { | |||
| 106 | 107 | ||
| 107 | return CLASS_ICON; | 108 | return CLASS_ICON; |
| 108 | } | 109 | } |
| 110 | |||
| 111 | public static Icon getMethodIcon(MethodEntry entry) { | ||
| 112 | if (entry.isConstructor()) { | ||
| 113 | return CONSTRUCTOR_ICON; | ||
| 114 | } | ||
| 115 | return METHOD_ICON; | ||
| 116 | } | ||
| 109 | } | 117 | } |
diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java index 7904c5f0..788c5347 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/ClassInheritanceTreeNode.java | |||
| @@ -44,6 +44,13 @@ public class ClassInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 44 | return null; | 44 | return null; |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | /** | ||
| 48 | * Returns the class entry represented by this tree node. | ||
| 49 | */ | ||
| 50 | public ClassEntry getClassEntry() { | ||
| 51 | return this.obfClassEntry; | ||
| 52 | } | ||
| 53 | |||
| 47 | public String getObfClassName() { | 54 | public String getObfClassName() { |
| 48 | return this.obfClassEntry.getFullName(); | 55 | return this.obfClassEntry.getFullName(); |
| 49 | } | 56 | } |
diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java index e77b5cce..7bee4dc7 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java | |||
| @@ -48,6 +48,9 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 48 | return null; | 48 | return null; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | /** | ||
| 52 | * Returns the method entry represented by this tree node. | ||
| 53 | */ | ||
| 51 | public MethodEntry getMethodEntry() { | 54 | public MethodEntry getMethodEntry() { |
| 52 | return this.entry; | 55 | return this.entry; |
| 53 | } | 56 | } |
diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java index c0a3a754..ce23cb6d 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/ReferenceTreeNode.java | |||
| @@ -14,6 +14,9 @@ package cuchaz.enigma.analysis; | |||
| 14 | import cuchaz.enigma.translation.representation.entry.Entry; | 14 | import cuchaz.enigma.translation.representation.entry.Entry; |
| 15 | 15 | ||
| 16 | public interface ReferenceTreeNode<E extends Entry<?>, C extends Entry<?>> { | 16 | public interface ReferenceTreeNode<E extends Entry<?>, C extends Entry<?>> { |
| 17 | /** | ||
| 18 | * Returns the entry represented by this tree node. | ||
| 19 | */ | ||
| 17 | E getEntry(); | 20 | E getEntry(); |
| 18 | 21 | ||
| 19 | EntryReference<E, C> getReference(); | 22 | EntryReference<E, C> getReference(); |
diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java index 8782b8f1..55d75cf3 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java | |||
| @@ -26,7 +26,7 @@ public class StructureTreeNode extends DefaultMutableTreeNode { | |||
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | /** | 28 | /** |
| 29 | * Returns the parented entry corresponding to this tree node. | 29 | * Returns the parented entry represented by this tree node. |
| 30 | */ | 30 | */ |
| 31 | public ParentedEntry getEntry() { | 31 | public ParentedEntry getEntry() { |
| 32 | return this.entry; | 32 | return this.entry; |