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 }