diff options
| author | 2016-08-24 00:40:12 +0200 | |
|---|---|---|
| committer | 2016-08-24 00:40:12 +0200 | |
| commit | 58c0189e572792ec488c29a4a67e7ae0ce9e6334 (patch) | |
| tree | 94fbc455e6cf16638801c2fed46a191e34751aca /src/main/java/cuchaz/enigma/gui/Gui.java | |
| parent | Ignore all files that start with "." and not end with ".mapping" (fix #8) (diff) | |
| download | enigma-fork-58c0189e572792ec488c29a4a67e7ae0ce9e6334.tar.gz enigma-fork-58c0189e572792ec488c29a4a67e7ae0ce9e6334.tar.xz enigma-fork-58c0189e572792ec488c29a4a67e7ae0ce9e6334.zip | |
Rewrite rename update for packages render, now package will never be closed during renaming (Fix #6)
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/Gui.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/Gui.java | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index bc49a3f..9fd824b 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -24,6 +24,7 @@ import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter; | |||
| 24 | import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; | 24 | import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; |
| 25 | import cuchaz.enigma.gui.highlight.OtherHighlightPainter; | 25 | import cuchaz.enigma.gui.highlight.OtherHighlightPainter; |
| 26 | import cuchaz.enigma.gui.highlight.SelectionHighlightPainter; | 26 | import cuchaz.enigma.gui.highlight.SelectionHighlightPainter; |
| 27 | import cuchaz.enigma.gui.node.ClassSelectorPackageNode; | ||
| 27 | import cuchaz.enigma.gui.panels.PanelDeobf; | 28 | import cuchaz.enigma.gui.panels.PanelDeobf; |
| 28 | import cuchaz.enigma.gui.panels.PanelEditor; | 29 | import cuchaz.enigma.gui.panels.PanelEditor; |
| 29 | import cuchaz.enigma.gui.panels.PanelIdentifier; | 30 | import cuchaz.enigma.gui.panels.PanelIdentifier; |
| @@ -49,7 +50,6 @@ import java.util.Collections; | |||
| 49 | import java.util.List; | 50 | import java.util.List; |
| 50 | import java.util.Vector; | 51 | import java.util.Vector; |
| 51 | import java.util.function.Function; | 52 | import java.util.function.Function; |
| 52 | import java.util.function.Supplier; | ||
| 53 | 53 | ||
| 54 | public class Gui { | 54 | public class Gui { |
| 55 | 55 | ||
| @@ -762,11 +762,53 @@ public class Gui { | |||
| 762 | DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) node.getChildAt(i); | 762 | DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) node.getChildAt(i); |
| 763 | ClassEntry prevDataChild = (ClassEntry) childNode.getUserObject(); | 763 | ClassEntry prevDataChild = (ClassEntry) childNode.getUserObject(); |
| 764 | ClassEntry dataChild = new ClassEntry(data + "/" + prevDataChild.getSimpleName()); | 764 | ClassEntry dataChild = new ClassEntry(data + "/" + prevDataChild.getSimpleName()); |
| 765 | this.controller.rename(new EntryReference<>(prevDataChild, prevDataChild.getName()), dataChild.getName()); | 765 | this.controller.rename(new EntryReference<>(prevDataChild, prevDataChild.getName()), dataChild.getName(), false); |
| 766 | } | 766 | } |
| 767 | } | 767 | } |
| 768 | // class rename | 768 | // class rename |
| 769 | else if (data instanceof ClassEntry) | 769 | else if (data instanceof ClassEntry) |
| 770 | this.controller.rename(new EntryReference<>((ClassEntry) prevData, ((ClassEntry) prevData).getName()), ((ClassEntry) data).getName()); | 770 | this.controller.rename(new EntryReference<>((ClassEntry) prevData, ((ClassEntry) prevData).getName()), ((ClassEntry) data).getName(), false); |
| 771 | } | ||
| 772 | |||
| 773 | public void moveClassTree(EntryReference<Entry, Entry> deobfReference, String newName) | ||
| 774 | { | ||
| 775 | ClassEntry oldEntry = deobfReference.entry.getClassEntry(); | ||
| 776 | ClassEntry newEntry = new ClassEntry(newName); | ||
| 777 | moveClassTree(deobfReference, newName, oldEntry.getPackageName().equals(Constants.NONE_PACKAGE), | ||
| 778 | newEntry.getClassEntry().getPackageName().equals(Constants.NONE_PACKAGE)); | ||
| 779 | } | ||
| 780 | |||
| 781 | public void moveClassTree(EntryReference<Entry, Entry> deobfReference, String newName, boolean isOldOb, boolean isNewOb) | ||
| 782 | { | ||
| 783 | ClassEntry oldEntry = deobfReference.entry.getClassEntry(); | ||
| 784 | ClassEntry newEntry = new ClassEntry(newName); | ||
| 785 | |||
| 786 | // Ob -> deob | ||
| 787 | if (isOldOb && !isNewOb) | ||
| 788 | { | ||
| 789 | this.deobfPanel.deobfClasses.moveClassTree(oldEntry, newEntry, obfPanel.obfClasses); | ||
| 790 | ClassSelectorPackageNode packageNode = this.obfPanel.obfClasses.getPackageNode(oldEntry); | ||
| 791 | this.obfPanel.obfClasses.removeNode(packageNode, oldEntry); | ||
| 792 | this.obfPanel.obfClasses.removeNodeIfEmpty(packageNode); | ||
| 793 | } | ||
| 794 | // Deob -> ob | ||
| 795 | else if (isNewOb && !isOldOb) | ||
| 796 | { | ||
| 797 | this.obfPanel.obfClasses.moveClassTree(oldEntry, newEntry, deobfPanel.deobfClasses); | ||
| 798 | ClassSelectorPackageNode packageNode = this.deobfPanel.deobfClasses.getPackageNode(oldEntry); | ||
| 799 | this.deobfPanel.deobfClasses.removeNode(packageNode, oldEntry); | ||
| 800 | this.deobfPanel.deobfClasses.removeNodeIfEmpty(packageNode); | ||
| 801 | } | ||
| 802 | // Local move | ||
| 803 | else if (isOldOb) | ||
| 804 | { | ||
| 805 | this.obfPanel.obfClasses.moveClassTree(oldEntry, newEntry, null); | ||
| 806 | this.obfPanel.obfClasses.removeNodeIfEmpty(this.obfPanel.obfClasses.getPackageNode(oldEntry)); | ||
| 807 | } | ||
| 808 | else | ||
| 809 | { | ||
| 810 | this.deobfPanel.deobfClasses.moveClassTree(oldEntry, newEntry, null); | ||
| 811 | this.deobfPanel.deobfClasses.removeNodeIfEmpty(this.deobfPanel.deobfClasses.getPackageNode(oldEntry)); | ||
| 812 | } | ||
| 771 | } | 813 | } |
| 772 | } | 814 | } |