netbeans.org is behind firewall, using runsocks wrapper... Index: src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java,v retrieving revision 1.50 diff -u -b -r1.50 J2SEPhysicalViewProvider.java --- src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 7 Apr 2005 12:34:53 -0000 1.50 +++ src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 14 Apr 2005 12:54:39 -0000 @@ -25,10 +25,12 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.ResourceBundle; import javax.swing.AbstractAction; import javax.swing.Action; +import javax.swing.JSeparator; import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -56,6 +58,11 @@ import org.netbeans.spi.project.ui.support.ProjectSensitiveActions; import org.openide.ErrorManager; import org.openide.filesystems.FileObject; +import org.openide.filesystems.FileSystem; +import org.openide.filesystems.Repository; +import org.openide.loaders.DataObject; +import org.openide.loaders.DataObjectNotFoundException; +import org.openide.loaders.FolderLookup; import org.openide.nodes.FilterNode; import org.openide.util.actions.SystemAction; import org.openide.loaders.DataFolder; @@ -265,33 +272,67 @@ ResourceBundle bundle = NbBundle.getBundle( J2SEPhysicalViewProvider.class ); - return new Action[] { - CommonProjectActions.newFileAction(), - null, - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_BUILD, bundle.getString( "LBL_BuildAction_Name" ), null ), // NOI18N - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_REBUILD, bundle.getString( "LBL_RebuildAction_Name" ), null ), // NOI18N - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_CLEAN, bundle.getString( "LBL_CleanAction_Name" ), null ), // NOI18N - ProjectSensitiveActions.projectCommandAction( JavaProjectConstants.COMMAND_JAVADOC, bundle.getString( "LBL_JavadocAction_Name" ), null ), // NOI18N - null, - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_RUN, bundle.getString( "LBL_RunAction_Name" ), null ), // NOI18N - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_DEBUG, bundle.getString( "LBL_DebugAction_Name" ), null ), // NOI18N - ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_TEST, bundle.getString( "LBL_TestAction_Name" ), null ), // NOI18N - null, - CommonProjectActions.setAsMainProjectAction(), - CommonProjectActions.openSubprojectsAction(), - CommonProjectActions.closeProjectAction(), - null, - SystemAction.get( org.openide.actions.FindAction.class ), + List actions = new ArrayList(); + + actions.add(CommonProjectActions.newFileAction()); + actions.add(null); + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_BUILD, bundle.getString( "LBL_BuildAction_Name" ), null )); // NOI18N + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_REBUILD, bundle.getString( "LBL_RebuildAction_Name" ), null )); // NOI18N + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_CLEAN, bundle.getString( "LBL_CleanAction_Name" ), null )); // NOI18N + actions.add(ProjectSensitiveActions.projectCommandAction( JavaProjectConstants.COMMAND_JAVADOC, bundle.getString( "LBL_JavadocAction_Name" ), null )); // NOI18N + actions.add(null); + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_RUN, bundle.getString( "LBL_RunAction_Name" ), null )); // NOI18N + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_DEBUG, bundle.getString( "LBL_DebugAction_Name" ), null )); // NOI18N + actions.add(ProjectSensitiveActions.projectCommandAction( ActionProvider.COMMAND_TEST, bundle.getString( "LBL_TestAction_Name" ), null )); // NOI18N + actions.add(null); + actions.add(CommonProjectActions.setAsMainProjectAction()); + actions.add(CommonProjectActions.openSubprojectsAction()); + actions.add(CommonProjectActions.closeProjectAction()); + actions.add(null); + actions.add(SystemAction.get( org.openide.actions.FindAction.class )); /* null, SystemAction.get( org.openide.actions.DeleteAction.class ), */ - null, - SystemAction.get( org.openide.actions.ToolsAction.class ), - null, - (broken ? brokenLinksAction : null), - CommonProjectActions.customizeProjectAction(), - }; + + // honor 57874 contact + + try { + Repository repository = Repository.getDefault(); + FileSystem sfs = repository.getDefaultFileSystem(); + FileObject fo = sfs.findResource("Projects/Popup"); // NOI18N + if (fo != null) { + DataObject dobj = DataObject.find(fo); + FolderLookup actionRegistry = new FolderLookup((DataFolder)dobj); + Lookup.Template query = new Lookup.Template(Object.class); + Lookup lookup = actionRegistry.getLookup(); + Iterator it = lookup.lookup(query).allInstances().iterator(); + if (it.hasNext()) { + actions.add(null); + } + while (it.hasNext()) { + Object next = it.next(); + if (next instanceof Action) { + actions.add(next); + } else if (next instanceof JSeparator) { + actions.add(null); + } + } + } + } catch (DataObjectNotFoundException ex) { + // data folder for exitinf fileobject expected + ErrorManager.getDefault().notify(ex); + } + + actions.add(null); + actions.add(SystemAction.get( org.openide.actions.ToolsAction.class )); + actions.add(null); + if (broken) { + actions.add(brokenLinksAction); + } + actions.add(CommonProjectActions.customizeProjectAction()); + + return (Action[]) actions.toArray(new Action[actions.size()]); }