package org.erlide.tracing.core.ui.dialogs; import java.util.Set; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.swt.widgets.Shell; /** * Dialog window for saving configurations. * * @author Piotr Dorobisz * */ public class ConfigurationSaveAsDialog extends InputDialog { /** * Creates dialog window (@see InputDialog). * * @param parentShell * @param dialogTitle * @param dialogMessage * @param initialValue * @param existingNames * existing configurations */ public ConfigurationSaveAsDialog(final Shell parentShell, final String dialogTitle, final String dialogMessage, final String initialValue, final Set<String> existingNames) { super(parentShell, dialogTitle, dialogMessage, initialValue, new Validator(existingNames)); } private static class Validator implements IInputValidator { private final Set<String> existingNames; public Validator(final Set<String> existingNames) { this.existingNames = existingNames; } @Override public String isValid(final String newText) { if (newText == null || newText.length() == 0) { return ""; } if (existingNames.contains(newText)) { return "Configuration with this name already exists"; } return null; } } }