diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFileWizardMainPage.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFileWizardMainPage.java index 95d79e47931..3e07923871e 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFileWizardMainPage.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFileWizardMainPage.java @@ -16,11 +16,15 @@ package org.eclipse.rse.internal.files.ui.wizards; +import java.util.Vector; + +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.rse.internal.files.ui.FileResources; import org.eclipse.rse.services.clientserver.messages.SystemMessage; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; +import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileChildrenContentsType; import org.eclipse.rse.ui.ISystemMessages; import org.eclipse.rse.ui.RSEUIPlugin; import org.eclipse.rse.ui.SystemWidgetHelpers; @@ -123,7 +127,42 @@ public class SystemNewFileWizardMainPage protected void initializeInput() { connectionName.setEditable(false); - nameValidator = new ValidatorFileName(); + + // get existing names + if (parentFolders != null && parentFolders.length > 0) + { + IRemoteFile parentFolder = parentFolders[0]; + try + { + Object[] contents = null; + if (parentFolder.isStale()) + { + contents = parentFolder.getParentRemoteFileSubSystem().resolveFilterString(new NullProgressMonitor(), parentFolder, "*"); + } + else + { + contents = parentFolder.getContents(RemoteFileChildrenContentsType.getInstance()); + } + Vector names = new Vector(); + for (int i = 0; i < contents.length; i++) + { + IRemoteFile child = (IRemoteFile)contents[i]; + if (child.isFile()) + { + names.add(child.getName()); + } + } + nameValidator = new ValidatorFileName(names); + } + catch (Exception e) + { + + } + } + else + { + nameValidator = new ValidatorFileName(); + } if ((parentFolders == null) || (parentFolders.length == 0)) { diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFolderWizardMainPage.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFolderWizardMainPage.java index 9997298bae2..5681cddcbed 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFolderWizardMainPage.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/wizards/SystemNewFolderWizardMainPage.java @@ -16,17 +16,21 @@ package org.eclipse.rse.internal.files.ui.wizards; +import java.util.Vector; + +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.rse.internal.files.ui.FileResources; import org.eclipse.rse.services.clientserver.messages.SystemMessage; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; +import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileChildrenContentsType; import org.eclipse.rse.ui.ISystemMessages; import org.eclipse.rse.ui.RSEUIPlugin; import org.eclipse.rse.ui.SystemWidgetHelpers; import org.eclipse.rse.ui.messages.ISystemMessageLine; import org.eclipse.rse.ui.validators.ISystemValidator; -import org.eclipse.rse.ui.validators.ValidatorFolderName; +import org.eclipse.rse.ui.validators.ValidatorFileName; import org.eclipse.rse.ui.validators.ValidatorUniqueString; import org.eclipse.rse.ui.wizards.AbstractSystemWizardPage; import org.eclipse.swt.events.ModifyEvent; @@ -127,7 +131,41 @@ public class SystemNewFolderWizardMainPage protected void initializeInput() { connectionName.setEditable(false); - nameValidator = new ValidatorFolderName(); + // get existing names + if (parentFolders != null && parentFolders.length > 0) + { + IRemoteFile parentFolder = parentFolders[0]; + try + { + Object[] contents = null; + if (parentFolder.isStale()) + { + contents = parentFolder.getParentRemoteFileSubSystem().resolveFilterString(new NullProgressMonitor(), parentFolder, "*"); + } + else + { + contents = parentFolder.getContents(RemoteFileChildrenContentsType.getInstance()); + } + Vector names = new Vector(); + for (int i = 0; i < contents.length; i++) + { + IRemoteFile child = (IRemoteFile)contents[i]; + if (!child.isFile()) + { + names.add(child.getName()); + } + } + nameValidator = new ValidatorFileName(names); + } + catch (Exception e) + { + + } + } + else + { + nameValidator = new ValidatorFileName(); + } if (parentFolders == null) { folderName.setEditable(false);