001// Copyright 2007, 2008, 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.internal.services; 016 017import org.apache.tapestry5.json.JSONObject; 018 019import java.io.IOException; 020 021/** 022 * Used to render portions of a page as part of an {@linkplain AjaxComponentEventRequestHandler Ajax request}. This 023 * encapsulates rendering of the partial response and then the construction of a {@linkplain 024 * org.apache.tapestry5.json.JSONObject JSON reply}. Works with the pipeline defined by the {@link 025 * org.apache.tapestry5.services.PartialMarkupRenderer} service. 026 * 027 * @see org.apache.tapestry5.internal.services.PageRenderQueue 028 */ 029public interface AjaxPartialResponseRenderer 030{ 031 /** 032 * Used to render a partial response as part of an Ajax action request. A call to {@link 033 * PageRenderQueue#addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)} 034 * should precede this call. 035 */ 036 void renderPartialPageMarkup() throws IOException; 037 038 /** 039 * Used to render the partial response using a base reply object, to which any Tapestry-related 040 * information (usually related to zone updates and initializations) will be added. In effect, this] 041 * "enhances" the reply, which contains just data, to include UI aspects that are handled by client-side 042 * code on the client. 043 * 044 * @param reply 045 * @throws IOException 046 * @since 5.4 047 */ 048 void renderPartialPageMarkup(JSONObject reply) throws IOException; 049}