diff --git a/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java b/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java index d9da46b293..fd3bc48b18 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java @@ -52,7 +52,14 @@ import utilities.util.reflection.ReflectionUtilities; * method is used to determine if an action if applicable to the current context. Overriding this * method allows actions to manage their own enablement. Otherwise, the default behavior for this * method is to return the current enabled property of the action. This allows for the possibility - * for plugins to manage the enablement of its actions. + * for plugins to externally manage the enablement of its actions. + *
+ * NOTE: If you wish to do your own external enablement management for an action (which is highly
+ * discouraged), it is very important that you don't use any of the internal enablement mechanisms
+ * by setting the predicates {@link #enabledWhen(Predicate)}, {@link #validContextWhen(Predicate)}
+ * or overriding {@link #isValidContext(ActionContext)}. These predicates and methods trigger
+ * internal enablement management which will interfere with you own calls to
+ * {@link DockingAction#setEnabled(boolean)}.
*/
public abstract class DockingAction implements DockingActionIf {
diff --git a/Ghidra/Framework/Docking/src/main/java/docking/action/builder/AbstractActionBuilder.java b/Ghidra/Framework/Docking/src/main/java/docking/action/builder/AbstractActionBuilder.java
index c9eae2d655..5c4f49ffec 100644
--- a/Ghidra/Framework/Docking/src/main/java/docking/action/builder/AbstractActionBuilder.java
+++ b/Ghidra/Framework/Docking/src/main/java/docking/action/builder/AbstractActionBuilder.java
@@ -516,7 +516,8 @@ public abstract class AbstractActionBuilder Note: this triggers automatic action enablement so you should not later call
+ * {@link DockingAction#setEnabled(boolean)} to manually manage action enablement.
*
* @param predicate the predicate that will be used to dynamically determine an action's
* validity for a given {@link ActionContext}
@@ -563,6 +567,13 @@ public abstract class AbstractActionBuilder Note: this triggers automatic action enablement so you should not later call
+ * {@link DockingAction#setEnabled(boolean)} to manually manage action enablement.
+ *
+
* @param newActionContextClass the more specific ActionContext type.
* @param