diff --git a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java +++ b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java @@ -356,6 +356,11 @@ actions.add(ProjectSensitiveActions.projectCommandAction(ActionProvider.COMMAND_TEST, bundle.getString("LBL_TestAction_Name"), null)); // NOI18N actions.add(CommonProjectActions.setProjectConfigurationAction()); actions.add(null); + List j2seActions = Utilities.actionsForPath("Projects/org-netbeans-modules-java-j2seproject/Actions"); + if (!j2seActions.isEmpty()) { + actions.addAll(j2seActions); + actions.add(null); + } actions.add(CommonProjectActions.setAsMainProjectAction()); actions.add(CommonProjectActions.openSubprojectsAction()); actions.add(CommonProjectActions.closeProjectAction()); diff --git a/projectuiapi/arch.xml b/projectuiapi/arch.xml --- a/projectuiapi/arch.xml +++ b/projectuiapi/arch.xml @@ -1001,6 +1001,26 @@ </folder> + +

+ Providers of generic actions for a specific project type can register + Action and JSeparator instances in a special folder + Projects/${project-code-name}/Actions/. So if any module wishes + to extend, hide or reorder some of them it can just register its actions there. + Example: +

+
+    <folder name="Projects" >
+        <folder name="project-code-name" >
+            <folder name="Actions" >
+                <file name="org-mymodule-MyAction.instance" >
+                    <attr name="instanceCreate" stringvalue="org.mymodule.MyAction" />
+                </file>
+            </folder>
+        </folder>
+    </folder>
+    
+