From ad49f6d08133253b5e2e54cc13fe3a54d85bf8d6 Mon Sep 17 00:00:00 2001 From: liach Date: Sun, 24 Feb 2019 12:43:41 -0800 Subject: Adds a red highlight for overridden methods in method inheritance tree gui (#112) * Make implemented method nodes in inheritance ui more obvious Signed-off-by: liach * Make the text green and italic instead Signed-off-by: liach * Update again for the new tree gen Also tweaked new tree gen to show only useful branch nodes Signed-off-by: liach --- .../cuchaz/enigma/gui/MethodTreeCellRenderer.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java (limited to 'src/main/java/cuchaz/enigma/gui/MethodTreeCellRenderer.java') 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 @@ +/******************************************************************************* + * 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.analysis.MethodInheritanceTreeNode; + +import javax.swing.*; +import javax.swing.tree.TreeCellRenderer; +import java.awt.*; + +class MethodTreeCellRenderer implements TreeCellRenderer { + + private final TreeCellRenderer parent; + + MethodTreeCellRenderer(TreeCellRenderer parent) { + this.parent = parent; + } + + @Override + public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { + Component ret = parent.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); + if (value instanceof MethodInheritanceTreeNode && ((MethodInheritanceTreeNode) value).isImplemented()) { + ret.setForeground(Color.BLACK); + ret.setFont(ret.getFont().deriveFont(Font.PLAIN)); + } else { + ret.setForeground(Color.GRAY); + ret.setFont(ret.getFont().deriveFont(Font.ITALIC)); + } + return ret; + } +} -- cgit v1.2.3