Package org.geoserver.web.security.catalog

Source Code of org.geoserver.web.security.catalog.CatalogModePage

package org.geoserver.web.security.catalog;

import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;

import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.RadioChoice;
import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.model.CompoundPropertyModel;
import org.geoserver.security.DataAccessRuleDAO;
import org.geoserver.security.DataAccessManager.CatalogMode;
import org.geoserver.web.GeoServerHomePage;
import org.geoserver.web.GeoServerSecuredPage;
import org.geoserver.web.security.data.CatalogModeModel;
import org.geoserver.web.wicket.ParamResourceModel;

public class CatalogModePage extends GeoServerSecuredPage {

    List<CatalogMode> CATALOG_MODES = Arrays.asList(CatalogMode.HIDE, CatalogMode.MIXED,
            CatalogMode.CHALLENGE);

    Form formCatalogMode;

    RadioChoice catalogMode;

    public CatalogModePage() {
        setModel(new CompoundPropertyModel(new CatalogModeModel(DataAccessRuleDAO.get().getMode())));

        formCatalogMode = new Form("catalogModeForm");
        add(formCatalogMode);
        catalogMode = new RadioChoice("catalogMode", CATALOG_MODES, new CatalogModeRenderer());
        catalogMode.setSuffix(" ");
        formCatalogMode.add(catalogMode);
       
        formCatalogMode.add(new BookmarkablePageLink("cancel", GeoServerHomePage.class));
        formCatalogMode.add(saveLink());
    }

    SubmitLink saveLink() {
        return new SubmitLink("save") {
            @Override
            public void onSubmit() {
                onFormSubmit();
            }

            private void onFormSubmit() {
                try {
                    DataAccessRuleDAO dao = DataAccessRuleDAO.get();
                    CatalogMode newMode = dao.getByAlias(catalogMode.getValue());
                    dao.setCatalogMode(newMode);
                    dao.storeRules();
                    setResponsePage(CatalogModePage.class);
                } catch (Exception e) {
                    LOGGER.log(Level.SEVERE, "Error occurred while saving user", e);
                    error(new ParamResourceModel("saveError", getPage(), e.getMessage()));
                }

            }
        };
    }

    class CatalogModeRenderer implements IChoiceRenderer {

        public Object getDisplayValue(Object object) {
            return (String) new ParamResourceModel(((CatalogMode) object).name(), getPage())
                    .getObject();
        }

        public String getIdValue(Object object, int index) {
            return ((CatalogMode) object).name();
        }
    }

}
TOP

Related Classes of org.geoserver.web.security.catalog.CatalogModePage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.