org.geogig.geoserver.web.security.WhitelistRuleEditor.java Source code

Java tutorial

Introduction

Here is the source code for org.geogig.geoserver.web.security.WhitelistRuleEditor.java

Source

/* (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);
            }
        });
    }
}