summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/Gui.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/Gui.java')
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java48
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;
24import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; 24import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter;
25import cuchaz.enigma.gui.highlight.OtherHighlightPainter; 25import cuchaz.enigma.gui.highlight.OtherHighlightPainter;
26import cuchaz.enigma.gui.highlight.SelectionHighlightPainter; 26import cuchaz.enigma.gui.highlight.SelectionHighlightPainter;
27import cuchaz.enigma.gui.node.ClassSelectorPackageNode;
27import cuchaz.enigma.gui.panels.PanelDeobf; 28import cuchaz.enigma.gui.panels.PanelDeobf;
28import cuchaz.enigma.gui.panels.PanelEditor; 29import cuchaz.enigma.gui.panels.PanelEditor;
29import cuchaz.enigma.gui.panels.PanelIdentifier; 30import cuchaz.enigma.gui.panels.PanelIdentifier;
@@ -49,7 +50,6 @@ import java.util.Collections;
49import java.util.List; 50import java.util.List;
50import java.util.Vector; 51import java.util.Vector;
51import java.util.function.Function; 52import java.util.function.Function;
52import java.util.function.Supplier;
53 53
54public class Gui { 54public 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}