    001// Copyright 2010, 2011, 2012 The Apache Software Foundation
    002//
    003// Licensed under the Apache License, Version 2.0 (the "License");
    004// you may not use this file except in compliance with the License.
    005// You may obtain a copy of the License at
    006//
    007// http://www.apache.org/licenses/LICENSE-2.0
    008//
    009// Unless required by applicable law or agreed to in writing, software
    010// distributed under the License is distributed on an "AS IS" BASIS,
    011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    012// See the License for the specific language governing permissions and
    013// limitations under the License.
    014
    015package org.apache.tapestry5.corelib;
    016
    017import org.apache.tapestry5.EventConstants;
    018import org.apache.tapestry5.corelib.components.LinkSubmit;
    019import org.apache.tapestry5.corelib.components.Submit;
    020
    021/**
    022 * Defines the client and server-side behavior of a {@link Submit} or {@link LinkSubmit} component.
    023 *
    024 * @since 5.2.0
    025 */
    026public enum SubmitMode
    027{
    028    /**
    029     * Submit the form normally, with full validation on the client and server side.
    030     */
    031    NORMAL,
    032
    033    /**
    034     * Cancel the form; bypass form validation on both the client and the server. The {@link org.apache.tapestry5.corelib.components.Form} fires
    035     * the {@link EventConstants#CANCELED} event. If the event handler for that event allows the submission to proceed, then server-side validation still occurs
    036     * on the server, though generally the data is discarded by the event listener
    037     * (listening to the Submit component's {@link EventConstants#SELECTED} event).
    038     */
    039    CANCEL,
    040
    041    /**
    042     * Submits the form, bypassing client-side validation, but performing all normal server-side processing (including validation).
    043     *
    044     * @since 5.3.3
    045     */
    046    UNCONDITIONAL;
    047}