From c621406c5ffdfef00f1d2d5ee609147f34047dc6 Mon Sep 17 00:00:00 2001 From: dev747368 <48332326+dev747368@users.noreply.github.com> Date: Thu, 17 Apr 2025 20:36:15 +0000 Subject: [PATCH] GP-5110 don't enable "Associate With Archive" action if built-in dt --- .../associate/AssociateDataTypeAction.java | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java index 67d1396d16..1dcad8d47d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/associate/AssociateDataTypeAction.java @@ -62,27 +62,15 @@ public class AssociateDataTypeAction extends DockingAction { @Override public boolean isEnabledForContext(ActionContext context) { - if (!(context instanceof DataTypesActionContext)) { - return false; - } - - return hasAnyDtNodes(((DataTypesActionContext) context).getSelectedNodes()); - } - - private boolean hasAnyDtNodes(List nodes) { - if (nodes.isEmpty()) { - return false; - } - for (GTreeNode node : nodes) { - if (node instanceof DataTypeNode) { - return true; - } - } - return false; + // enable this action if any node is a non-built-in data type + return context instanceof DataTypesActionContext dtac && + dtac.getSelectedNodes().stream().anyMatch(node -> { + return node instanceof DataTypeNode dtNode && + !(dtNode.getDataType() instanceof BuiltInDataType); + }); } private boolean isAlreadyAssociated(DataTypesActionContext dtContext) { - List nodes = dtContext.getDisassociatableNodes(); return !nodes.isEmpty(); }