Index: VcsFSCommandsAction.java =================================================================== RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFSCommandsAction.java,v retrieving revision 1.16 diff -b -u -r1.16 VcsFSCommandsAction.java --- VcsFSCommandsAction.java 30 Aug 2004 17:46:21 -0000 1.16 +++ VcsFSCommandsAction.java 6 Jan 2005 15:13:06 -0000 @@ -116,6 +116,19 @@ } filesWithMessages.put(messageFiles.toArray(new FileObject[0]), message); } else { + Lookup.Result nonRecFolders = nodes[i].getLookup().lookup(new Lookup.Template(NonRecursiveFolder.class)); + Collection nrfs = nonRecFolders.allInstances(); + if (nrfs != null && nrfs.size() > 0) { + List nrFiles = new ArrayList(nrfs.size()); + Collection fos = new ArrayList(nrfs.size()); + for (Iterator it = nrfs.iterator(); it.hasNext(); ) { + NonRecursiveFolder nrf = (NonRecursiveFolder) it.next(); + fos.add(nrf.getFolder()); + } + FileObject one = (FileObject) fos.iterator().next(); + addAllFromSingleFS(one, fos, nrFiles); + filesWithMessages.put(nrFiles.toArray(new FileObject[0]), NonRecursiveFolder.class); + } else { Lookup.Result fileObjects = nodes[i].getLookup().lookup(new Lookup.Template(FileObject.class)); Collection fos; if (fileObjects != null && (fos = fileObjects.allInstances()).size() > 0) { @@ -131,6 +144,7 @@ //files.addAll(dd.files()); //addAllWorkaround(dd.files(), files); addAllFromSingleFS(dd.getPrimaryFile(), dd.files(), files); + } } } } Index: CommandMenu.java =================================================================== RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/actions/CommandMenu.java,v retrieving revision 1.20 diff -b -u -r1.20 CommandMenu.java --- CommandMenu.java 17 Sep 2004 09:06:15 -0000 1.20 +++ CommandMenu.java 6 Jan 2005 15:13:06 -0000 @@ -417,7 +417,14 @@ public void run() { for (Iterator it = filesWithMessages.keySet().iterator(); it.hasNext(); ) { FileObject[] files = (FileObject[]) it.next(); - String message = (String) filesWithMessages.get(files); + Object fileInfo = filesWithMessages.get(files); + String message = null; + boolean nonRecursive; + if (fileInfo instanceof String) { + message = (String) fileInfo; + } else if (fileInfo == NonRecursiveFolder.class) { + nonRecursive = true; + } Command[] cmds; if (cmdSupports != null) { cmds = new Command[cmdSupports.length]; @@ -442,6 +449,9 @@ } if (message != null && cmd instanceof MessagingCommand) { ((MessagingCommand) cmd).setMessage(message); + } + if (nonRecursive && cmd instanceof RecursionAwareCommand) { + ((RecursionAwareCommand) cmd).setRecursionBanned(true); } cmd.setGUIMode(true); if (changeExpertMode) cmd.setExpertMode(expertMode);