    001    // Copyright 2006, 2007, 2008, 2009, 2010, 2011 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
    015    package org.apache.tapestry5.internal;
    016
    017    import org.apache.tapestry5.ioc.util.TimeInterval;
    018    import org.apache.tapestry5.services.javascript.JavaScriptStack;
    019
    020    public final class InternalConstants
    021    {
    022        /**
    023         * Init parameter used to identify the package from which application classes are loaded. Such
    024         * classes are in the
    025         * pages, components and mixins sub-packages.
    026         */
    027        public static final String TAPESTRY_APP_PACKAGE_PARAM = "tapestry.app-package";
    028
    029        /**
    030         * Turns off loading of default modules (as driven by JAR file Manifest entries).
    031         */
    032        public static final String DISABLE_DEFAULT_MODULES_PARAM = "tapestry.disable-default-modules";
    033
    034        /**
    035         * The name of the query parameter that stores the page activation context inside an action
    036         * request.
    037         */
    038        public static final String PAGE_CONTEXT_NAME = "t:ac";
    039
    040        /**
    041         * Name of event triggered by Grid sub-components when an in-place Grid is updated.
    042         */
    043        public static final String GRID_INPLACE_UPDATE = "inplaceupdate";
    044
    045        /**
    046         * The name of a query parameter that stores the containing page (used in action links when the
    047         * page containing the
    048         * component is not the same as the page that was rendering). The active page (the page which
    049         * initiated the render)
    050         * is encoded into the URL, and the containing page is tacked on as this query parameter.
    051         */
    052        public static final String CONTAINER_PAGE_NAME = "t:cp";
    053
    054        public static final String OBJECT_RENDER_DIV_SECTION = "t-env-data-section";
    055
    056        public static final String MIXINS_SUBPACKAGE = "mixins";
    057
    058        public static final String COMPONENTS_SUBPACKAGE = "components";
    059
    060        public static final String PAGES_SUBPACKAGE = "pages";
    061
    062        public static final String BASE_SUBPACKAGE = "base";
    063
    064        /**
    065         * Used in some Ajax scenarios to set the content type for the response early, when the Page
    066         * instance (the authority
    067         * on content types) is known. The value is of type {@link org.apache.tapestry5.ContentType}.
    068         */
    069        public static final String CONTENT_TYPE_ATTRIBUTE_NAME = "content-type";
    070
    071        public static final String CHARSET_CONTENT_TYPE_PARAMETER = "charset";
    072
    073        /**
    074         * Request attribute that stores a {@link org.apache.tapestry5.internal.structure.Page} instance
    075         * that will be
    076         * rendered as the {@linkplain org.apache.tapestry5.SymbolConstants#SUPPRESS_REDIRECT_FROM_ACTION_REQUESTS
    077         * immediate
    078         * mode response}.
    079         */
    080        public static final String IMMEDIATE_RESPONSE_PAGE_ATTRIBUTE = "tapestry.immediate-response-page";
    081
    082        /**
    083         * Required MIME type for JSON responses. If this MIME type is not used, the client-side
    084         * Prototype code will not
    085         * recognize the response as JSON, and the Ajax.Response.responseJSON property will be null.
    086         */
    087        public static final String JSON_MIME_TYPE = "application/json";
    088
    089        /**
    090         * Request attribute key; if non-null, then automatic GZIP compression of response stream is
    091         * suppressed. This is
    092         * useful when the code opening the response stream wants to explicitly control whether GZIP
    093         * compression occurs or
    094         * not.
    095         *
    096         * @since 5.1.0.0
    097         */
    098        public static final String SUPPRESS_COMPRESSION = "tapestry.supress-compression";
    099
    100        /**
    101         * Name of response header for content encoding.
    102         *
    103         * @since 5.1.0.0
    104         */
    105        public static final String CONTENT_ENCODING_HEADER = "Content-Encoding";
    106
    107        /**
    108         * Response content encoding value indicating use of GZIP compression.
    109         *
    110         * @since 5.1.0.0
    111         */
    112        public static final String GZIP_CONTENT_ENCODING = "gzip";
    113
    114        /**
    115         * Identifies the start of an expansion inside a template.
    116         */
    117        public static final String EXPANSION_START = "${";
    118
    119        /**
    120         * Special prefix for parameters that are inherited from named parameters of their container.
    121         */
    122        public static final String INHERIT_BINDING_PREFIX = "inherit:";
    123
    124        public static final long TEN_YEARS = new TimeInterval("10y").milliseconds();
    125
    126        public static final String[] EMPTY_STRING_ARRAY = new String[0];
    127
    128        /**
    129         * Name of the core {@link JavaScriptStack}, which supplies the basic JavaScript infrastructure
    130         * on the client.
    131         *
    132         * @since 5.2.0
    133         */
    134        public static final String CORE_STACK_NAME = "core";
    135
    136        /**
    137         * Virtual folder name for the core library. The core library is special as any component not present in another
    138         * library (including the application library) is searched for inside core.
    139         *
    140         * @since 5.3
    141         */
    142        public static final String CORE_LIBRARY = "core";
    143
    144        /**
    145         * The names of the standard controlled subpackages.
    146         *
    147         * @since 5.3
    148         */
    149        public static final String[] SUBPACKAGES =
    150                {PAGES_SUBPACKAGE, COMPONENTS_SUBPACKAGE, MIXINS_SUBPACKAGE, BASE_SUBPACKAGE};
    151
    152        /**
    153         * The element name for a submit input element used to cancel the form (rather than
    154         * submit it normally).
    155         *
    156         * @since 5.3
    157         */
    158        public static final String CANCEL_NAME = "cancel";
    159    }