summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui')
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java14
-rw-r--r--src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java40
2 files changed, 47 insertions, 7 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index c419aae..a604323 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -38,10 +38,7 @@ import de.sciss.syntaxpane.DefaultSyntaxKit;
38import javax.swing.*; 38import javax.swing.*;
39import javax.swing.text.BadLocationException; 39import javax.swing.text.BadLocationException;
40import javax.swing.text.Highlighter; 40import javax.swing.text.Highlighter;
41import javax.swing.tree.DefaultMutableTreeNode; 41import javax.swing.tree.*;
42import javax.swing.tree.DefaultTreeModel;
43import javax.swing.tree.TreeNode;
44import javax.swing.tree.TreePath;
45import java.awt.*; 42import java.awt.*;
46import java.awt.event.*; 43import java.awt.event.*;
47import java.nio.file.Path; 44import java.nio.file.Path;
@@ -153,7 +150,7 @@ public class Gui {
153 inheritanceTree.addMouseListener(new MouseAdapter() { 150 inheritanceTree.addMouseListener(new MouseAdapter() {
154 @Override 151 @Override
155 public void mouseClicked(MouseEvent event) { 152 public void mouseClicked(MouseEvent event) {
156 if (event.getClickCount() == 2) { 153 if (event.getClickCount() >= 2) {
157 // get the selected node 154 // get the selected node
158 TreePath path = inheritanceTree.getSelectionPath(); 155 TreePath path = inheritanceTree.getSelectionPath();
159 if (path == null) { 156 if (path == null) {
@@ -173,6 +170,9 @@ public class Gui {
173 } 170 }
174 } 171 }
175 }); 172 });
173 TreeCellRenderer cellRenderer = inheritanceTree.getCellRenderer();
174 inheritanceTree.setCellRenderer(new MethodTreeCellRenderer((DefaultTreeCellRenderer) cellRenderer));
175
176 JPanel inheritancePanel = new JPanel(); 176 JPanel inheritancePanel = new JPanel();
177 inheritancePanel.setLayout(new BorderLayout()); 177 inheritancePanel.setLayout(new BorderLayout());
178 inheritancePanel.add(new JScrollPane(inheritanceTree)); 178 inheritancePanel.add(new JScrollPane(inheritanceTree));
@@ -183,7 +183,7 @@ public class Gui {
183 implementationsTree.addMouseListener(new MouseAdapter() { 183 implementationsTree.addMouseListener(new MouseAdapter() {
184 @Override 184 @Override
185 public void mouseClicked(MouseEvent event) { 185 public void mouseClicked(MouseEvent event) {
186 if (event.getClickCount() == 2) { 186 if (event.getClickCount() >= 2) {
187 // get the selected node 187 // get the selected node
188 TreePath path = implementationsTree.getSelectionPath(); 188 TreePath path = implementationsTree.getSelectionPath();
189 if (path == null) { 189 if (path == null) {
@@ -212,7 +212,7 @@ public class Gui {
212 @SuppressWarnings("unchecked") 212 @SuppressWarnings("unchecked")
213 @Override 213 @Override
214 public void mouseClicked(MouseEvent event) { 214 public void mouseClicked(MouseEvent event) {
215 if (event.getClickCount() == 2) { 215 if (event.getClickCount() >= 2) {
216 // get the selected node 216 // get the selected node
217 TreePath path = callsTree.getSelectionPath(); 217 TreePath path = callsTree.getSelectionPath();
218 if (path == null) { 218 if (path == null) {
diff --git a/src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java b/src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java
new file mode 100644
index 0000000..c78ead2
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java
@@ -0,0 +1,40 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 * <p>
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma.gui;
13
14import cuchaz.enigma.analysis.MethodInheritanceTreeNode;
15
16import javax.swing.*;
17import javax.swing.tree.TreeCellRenderer;
18import java.awt.*;
19
20class MethodTreeCellRenderer implements TreeCellRenderer {
21
22 private final TreeCellRenderer parent;
23
24 MethodTreeCellRenderer(TreeCellRenderer parent) {
25 this.parent = parent;
26 }
27
28 @Override
29 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
30 Component ret = parent.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
31 if (value instanceof MethodInheritanceTreeNode && ((MethodInheritanceTreeNode) value).isImplemented()) {
32 ret.setForeground(Color.BLACK);
33 ret.setFont(ret.getFont().deriveFont(Font.PLAIN));
34 } else {
35 ret.setForeground(Color.GRAY);
36 ret.setFont(ret.getFont().deriveFont(Font.ITALIC));
37 }
38 return ret;
39 }
40}