From 5db99f4167039dc1ec7aa8720e8da2054ed6b94e Mon Sep 17 00:00:00 2001 From: ghidragon <106987263+ghidragon@users.noreply.github.com> Date: Thu, 6 Apr 2023 16:39:40 -0400 Subject: [PATCH] GP-3281 fixed DataTypes tree is allow multiple file archives with the same name to be opened. --- .../plugin/core/datamgr/tree/ArchiveRootNode.java | 2 +- .../plugin/core/datamgr/tree/FileArchiveNode.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/ArchiveRootNode.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/ArchiveRootNode.java index 8c38512932..7b72a2e3b9 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/ArchiveRootNode.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/ArchiveRootNode.java @@ -222,8 +222,8 @@ public class ArchiveRootNode extends DataTypeTreeNode { int index = Collections.binarySearch(allChildrenList, node); if (index < 0) { index = -index - 1; - addNode(index, node); } + addNode(index, node); } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/FileArchiveNode.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/FileArchiveNode.java index 1eb46bc540..1a6f2ed809 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/FileArchiveNode.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/FileArchiveNode.java @@ -30,10 +30,12 @@ public class FileArchiveNode extends ArchiveNode { new GIcon("icon.plugin.datatypes.tree.node.archive.file.checked.out.exclusive"); FileArchive fileArchive; // casted reference for easy access + String fullName; public FileArchiveNode(FileArchive archive, ArrayPointerFilterState filterState) { super(archive, filterState); this.fileArchive = archive; + fullName = archive.getName() + ": " + archive.getFile().getAbsolutePath(); } @Override @@ -58,6 +60,16 @@ public class FileArchiveNode extends ArchiveNode { return "[Unsaved New Archive]"; } + @Override + public String getName() { + return fullName; + } + + @Override + public String getDisplayText() { + return archive.getName(); + } + public boolean hasWriteLock() { return fileArchive.hasWriteLock(); }