Package org.vfny.geoserver.form.wfs

Source Code of org.vfny.geoserver.form.wfs.WFSContentForm

/* Copyright (c) 2001, 2003 TOPP - www.openplans.org.  All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
/*
* Created on Jan 6, 2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.vfny.geoserver.form.wfs;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.vfny.geoserver.config.WFSConfig;
import org.vfny.geoserver.global.dto.WFSDTO;
import java.net.MalformedURLException;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;


/**
* DOCUMENT ME!
*
* @author User To change the template for this generated type comment go to
*         Window>Preferences>Java>Code Generation>Code and Comments
*/
public class WFSContentForm extends ActionForm {
    private boolean enabled;
    private String onlineResource;
    private String describeURL;
    private int serviceLevel;
    private String[] selectedFeatures;
    private String[] features;
    private boolean srsXmlStyle;
    private boolean srsXmlStyleChecked = false;
    private boolean citeConformanceHacks;
    private boolean citeConformanceHacksChecked = false;
    private boolean featureBounding;
    private boolean featureBoundingChecked = false;

    /*
     * Because of the way that STRUTS works, if the user does not check the enabled box,
     * or unchecks it, setEnabled() is never called, thus we must monitor setEnabled()
     * to see if it doesn't get called. This must be accessible, as ActionForms need to
     * know about it -- there is no way we can tell whether we are about to be passed to
     * an ActionForm or not.
     *
     * Probably a better way to do this, but I can't think of one.
     * -rgould
     *
     * TODO: Hey richard Jody here - Struts knows that boolean properties are
     * not set if the user does nothing. Apparently that is why the reset
     * method exists.
     * Reset is called *every* time on ActionForm. Before the populate
     * process has a go at things.
     *
     * The problem is that reset() retrieves the WFS's config enabled value
     * and uses that to pre-populate the form. Thus, if they deselect it, setEnabled is
     * never called, and enabled still remains true. The way I have done it isn't simple,
     * but it works just fine.
     */
    private boolean enabledChecked = false;

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public boolean isEnabled() {
        return enabled;
    }

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public String getOnlineResource() {
        return onlineResource;
    }

    /**
     * DOCUMENT ME!
     *
     * @param string
     */
    public void setDescribeURL(String string) {
        describeURL = string;
    }

    /**
     * DOCUMENT ME!
     *
     * @param b
     */
    public void setEnabled(boolean b) {
        enabledChecked = true;

        //System.out.println("setEnabled: enabledCheck/Enabled now " + b);
        enabled = b;
    }

    /**
     * DOCUMENT ME!
     *
     * @param string
     */
    public void setOnlineResource(String string) {
        onlineResource = string;
    }

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public String[] getFeatures() {
        return features;
    }

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public String[] getSelectedFeatures() {
        return selectedFeatures;
    }

    /**
     * DOCUMENT ME!
     *
     * @param strings
     */
    public void setFeatures(String[] strings) {
        features = strings;
    }

    /**
     * DOCUMENT ME!
     *
     * @param strings
     */
    public void setSelectedFeatures(String[] strings) {
        selectedFeatures = strings;
    }

    public void reset(ActionMapping arg0, HttpServletRequest arg1) {
        super.reset(arg0, arg1);

        enabledChecked = false;
        srsXmlStyleChecked = false;
        citeConformanceHacksChecked = false;
        featureBoundingChecked = false;

        ServletContext context = getServlet().getServletContext();
        WFSConfig config = (WFSConfig) context.getAttribute(WFSConfig.CONFIG_KEY);

        citeConformanceHacks = config.getCiteConformanceHacks();
        featureBounding = config.isFeatureBounding();

        serviceLevel = config.getServiceLevel();
        this.enabled = config.isEnabled();
        this.srsXmlStyle = config.isSrsXmlStyle();

        URL url = config.getOnlineResource();

        if (url != null) {
            this.onlineResource = url.toString();
        } else {
            this.onlineResource = "";
        }
    }

    public ActionErrors validate(ActionMapping mapping,
        HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();

        if ((serviceLevel != WFSDTO.BASIC)
                && (serviceLevel != WFSDTO.TRANSACTIONAL)
                && (serviceLevel != WFSDTO.COMPLETE)) {
            errors.add("serviceLevel",
                new ActionError("error.serviceLevel.invalid"));
        }

        if ((onlineResource == null) || onlineResource.equals("")) {
            errors.add("onlineResource",
                new ActionError("error.wfs.onlineResource.required"));
        } else {
            try {
                URL url = new URL(onlineResource);
            } catch (MalformedURLException badURL) {
                errors.add("onlineResource",
                    new ActionError("error.wfs.onlineResource.malformed", badURL));
            }
        }

        return errors;
    }

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public boolean isEnabledChecked() {
        return enabledChecked;
    }

    /**
     * DOCUMENT ME!
     *
     * @param b
     */
    public void setEnabledChecked(boolean b) {
        enabledChecked = b;
    }

    /**
     * DOCUMENT ME!
     *
     * @return
     */
    public boolean isSrsXmlStyleChecked() {
        return srsXmlStyleChecked;
    }

    /**
     * DOCUMENT ME!
     *
     * @param b
     */
    public void setSrsXmlStyleChecked(boolean b) {
        srsXmlStyleChecked = b;
    }

    /**
     * Access serviceLevel property.
     *
     * @return Returns the serviceLevel.
     */
    public int getServiceLevel() {
        return serviceLevel;
    }

    /**
     * Set serviceLevel to serviceLevel.
     *
     * @param serviceLevel The serviceLevel to set.
     */
    public void setServiceLevel(int serviceLevel) {
        this.serviceLevel = serviceLevel;
    }

    /**
     * Whether the srs xml attribute should be in the EPSG:4326 (non-xml)
     * style, or in the http://www.opengis.net/gml/srs/epsg.xml#4326 style.
     *
     * @return <tt>true</tt> if the srs is reported with the xml style
     */
    public boolean isSrsXmlStyle() {
        return srsXmlStyle;
    }

    /**
     * Sets whether the srs xml attribute should be in the EPSG:4326 (non-xml)
     * style, or in the http://www.opengis.net/gml/srs/epsg.xml#4326 style.
     *
     * @param doXmlStyle whether the srs style should be xml or not.
     */
    public void setSrsXmlStyle(boolean doXmlStyle) {
        this.srsXmlStyleChecked = true;
        this.srsXmlStyle = doXmlStyle;
    }

    /**
     * turn on/off the citeConformanceHacks option.
     *
     * @param on
     */
    public void setCiteConformanceHacks(boolean on) {
        this.citeConformanceHacksChecked = true; //this function only gets called when the form has it checked...
        citeConformanceHacks = on;
    }

    /**
     * get the current value of the citeConformanceHacks
     *
     * @return
     */
    public boolean getCiteConformanceHacks() {
        return (citeConformanceHacks);
    }

    /**
     * get the current value of the citeConformanceHacksChecked (ie. was it in
     * the http form?)
     *
     * @return
     */
    public boolean getCiteConformanceHacksChecked() {
        return (citeConformanceHacksChecked);
    }

    /**
     * turn on/off the featureBounding option.
     *
     * @param on
     */
    public void setFeatureBounding(boolean on) {
        this.featureBoundingChecked = true; //this function only gets called when the form has it checked...
        featureBounding = on;
    }

    /**
     * get the current value of the featureBounding
     *
     * @return
     */
    public boolean isFeatureBounding() {
        return (featureBounding);
    }

    /**
     * get the current value of the featureBoundingChecked (ie. was it in the
     * http form?)
     *
     * @return
     */
    public boolean isFeatureBoundingChecked() {
        return (featureBoundingChecked);
    }
}
TOP

Related Classes of org.vfny.geoserver.form.wfs.WFSContentForm

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.