/* (c) 2014, 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.importer.web; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.validation.IValidatable; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; import org.geoserver.web.GeoServerApplication; import org.geoserver.web.wicket.XMLNameValidator; @SuppressWarnings("serial") class NewWorkspacePanel extends Panel { String workspace; public NewWorkspacePanel(String id) { super(id); add(new FeedbackPanel("feedback").setOutputMarkupId(true)); TextField wst = new TextField("workspace", new PropertyModel(this, "workspace")); wst.setRequired(true); wst.add(new WorkspaceDoesNotExistValidator()); wst.add(new XMLNameValidator()); this.add(wst); } static class WorkspaceDoesNotExistValidator implements IValidator<String> { @Override public void validate(IValidatable<String> iv) { String value = iv.getValue(); if (GeoServerApplication.get().getCatalog().getWorkspaceByName(value) != null) { iv.error(new ValidationError("NewWorkspacePanel.duplicateWorkspace") .setVariable("workspace", value)); } } } }