/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geogig.geoserver.web.security; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; 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.IModel; import org.apache.wicket.model.PropertyModel; import org.geogig.geoserver.config.WhitelistRule; public class WhitelistRuleEditor extends Panel { private static final long serialVersionUID = 1508347689900059344L; private boolean isNew; public WhitelistRuleEditor(String id, IModel<WhitelistRule> model, final ModalWindow window, final WhitelistRulePanel table, boolean isNew) { super(id, model); this.isNew = isNew; Form<WhitelistRule> form = new Form<>("form", model); add(form); TextField<String> name = new TextField<>("name", new PropertyModel<>(model, "name")); name.setRequired(true); TextField<String> pattern = new TextField<>("pattern", new PropertyModel<>( model, "pattern")); pattern.setRequired(true); form.add(name); form.add(pattern); form.add(new CheckBox("requireSSL", new PropertyModel<>(model, "requireSSL"))); final FeedbackPanel feedbackPanel = new FeedbackPanel("feedback"); feedbackPanel.setOutputMarkupId(true); form.add(feedbackPanel); form.add(new AjaxSubmitLink("submit", form) { private static final long serialVersionUID = 1080309070367012502L; @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedbackPanel); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { boolean isNew = WhitelistRuleEditor.this.isNew; if (isNew) { WhitelistRule rule = (WhitelistRule) form.getModelObject(); table.add(rule); } table.save(); window.close(target); target.add(table); } }); form.add(new AjaxLink<Void>("cancel") { private static final long serialVersionUID = 4762717512666965125L; @Override public void onClick(AjaxRequestTarget target) { window.close(target); target.add(table); } }); } }