diff options
| author | 2019-02-24 12:43:41 -0800 | |
|---|---|---|
| committer | 2019-02-24 22:43:41 +0200 | |
| commit | ad49f6d08133253b5e2e54cc13fe3a54d85bf8d6 (patch) | |
| tree | 81feffbf613a13d386eddb98a8df901e8b19e303 /src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java | |
| parent | Fix name duplication checking not occurring on root classes (diff) | |
| download | enigma-fork-ad49f6d08133253b5e2e54cc13fe3a54d85bf8d6.tar.gz enigma-fork-ad49f6d08133253b5e2e54cc13fe3a54d85bf8d6.tar.xz enigma-fork-ad49f6d08133253b5e2e54cc13fe3a54d85bf8d6.zip | |
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 <liach@users.noreply.github.com>
* Make the text green and italic instead
Signed-off-by: liach <liach@users.noreply.github.com>
* Update again for the new tree gen
Also tweaked new tree gen to show only useful branch nodes
Signed-off-by: liach <liach@users.noreply.github.com>
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java index 862bb92..e77b5cc 100644 --- a/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java +++ b/src/main/java/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java | |||
| @@ -24,12 +24,12 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 24 | 24 | ||
| 25 | private final Translator translator; | 25 | private final Translator translator; |
| 26 | private MethodEntry entry; | 26 | private MethodEntry entry; |
| 27 | private boolean isImplemented; | 27 | private boolean implemented; |
| 28 | 28 | ||
| 29 | public MethodInheritanceTreeNode(Translator translator, MethodEntry entry, boolean isImplemented) { | 29 | public MethodInheritanceTreeNode(Translator translator, MethodEntry entry, boolean implemented) { |
| 30 | this.translator = translator; | 30 | this.translator = translator; |
| 31 | this.entry = entry; | 31 | this.entry = entry; |
| 32 | this.isImplemented = isImplemented; | 32 | this.implemented = implemented; |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | public static MethodInheritanceTreeNode findNode(MethodInheritanceTreeNode node, MethodEntry entry) { | 35 | public static MethodInheritanceTreeNode findNode(MethodInheritanceTreeNode node, MethodEntry entry) { |
| @@ -53,11 +53,7 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | public boolean isImplemented() { | 55 | public boolean isImplemented() { |
| 56 | return this.isImplemented; | 56 | return this.implemented; |
| 57 | } | ||
| 58 | |||
| 59 | public boolean shouldExpand() { | ||
| 60 | return this.isImplemented || !this.isLeaf(); | ||
| 61 | } | 57 | } |
| 62 | 58 | ||
| 63 | @Override | 59 | @Override |
| @@ -65,7 +61,7 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 65 | MethodEntry translatedEntry = translator.translate(entry); | 61 | MethodEntry translatedEntry = translator.translate(entry); |
| 66 | String className = translatedEntry.getContainingClass().getFullName(); | 62 | String className = translatedEntry.getContainingClass().getFullName(); |
| 67 | 63 | ||
| 68 | if (!this.isImplemented) { | 64 | if (!this.implemented) { |
| 69 | return className; | 65 | return className; |
| 70 | } else { | 66 | } else { |
| 71 | String methodName = translatedEntry.getName(); | 67 | String methodName = translatedEntry.getName(); |
| @@ -73,20 +69,27 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode { | |||
| 73 | } | 69 | } |
| 74 | } | 70 | } |
| 75 | 71 | ||
| 76 | public void load(JarIndex index) { | 72 | /** |
| 73 | * Returns true if there is sub-node worthy to display. | ||
| 74 | */ | ||
| 75 | public boolean load(JarIndex index) { | ||
| 77 | // get all the child nodes | 76 | // get all the child nodes |
| 78 | EntryIndex entryIndex = index.getEntryIndex(); | 77 | EntryIndex entryIndex = index.getEntryIndex(); |
| 79 | InheritanceIndex inheritanceIndex = index.getInheritanceIndex(); | 78 | InheritanceIndex inheritanceIndex = index.getInheritanceIndex(); |
| 80 | 79 | ||
| 80 | boolean ret = false; | ||
| 81 | for (ClassEntry inheritorEntry : inheritanceIndex.getChildren(this.entry.getParent())) { | 81 | for (ClassEntry inheritorEntry : inheritanceIndex.getChildren(this.entry.getParent())) { |
| 82 | MethodEntry methodEntry = new MethodEntry(inheritorEntry, this.entry.getName(), this.entry.getDesc()); | 82 | MethodEntry methodEntry = new MethodEntry(inheritorEntry, this.entry.getName(), this.entry.getDesc()); |
| 83 | 83 | ||
| 84 | MethodInheritanceTreeNode node = new MethodInheritanceTreeNode(translator, methodEntry, entryIndex.hasMethod(methodEntry)); | 84 | MethodInheritanceTreeNode node = new MethodInheritanceTreeNode(translator, methodEntry, entryIndex.hasMethod(methodEntry)); |
| 85 | node.load(index); | 85 | boolean childOverride = node.load(index); |
| 86 | 86 | ||
| 87 | if (node.shouldExpand()) { | 87 | if (childOverride || node.implemented) { |
| 88 | this.add(node); | 88 | this.add(node); |
| 89 | ret = true; | ||
| 89 | } | 90 | } |
| 90 | } | 91 | } |
| 92 | |||
| 93 | return ret; | ||
| 91 | } | 94 | } |
| 92 | } | 95 | } |