01: /******************************************************************************
02: * JBoss, a division of Red Hat *
03: * Copyright 2006, Red Hat Middleware, LLC, and individual *
04: * contributors as indicated by the @authors tag. See the *
05: * copyright.txt in the distribution for a full listing of *
06: * individual contributors. *
07: * *
08: * This is free software; you can redistribute it and/or modify it *
09: * under the terms of the GNU Lesser General Public License as *
10: * published by the Free Software Foundation; either version 2.1 of *
11: * the License, or (at your option) any later version. *
12: * *
13: * This software is distributed in the hope that it will be useful, *
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16: * Lesser General Public License for more details. *
17: * *
18: * You should have received a copy of the GNU Lesser General Public *
19: * License along with this software; if not, write to the Free *
20: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
21: * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
22: ******************************************************************************/package org.jboss.portal.theme.render.renderer;
23:
24: import org.jboss.portal.theme.page.WindowContext;
25: import org.jboss.portal.theme.page.WindowResult;
26: import org.jboss.portal.theme.render.ObjectRenderer;
27: import org.jboss.portal.theme.render.RenderException;
28: import org.jboss.portal.theme.render.RendererContext;
29:
30: /**
31: * A window renderer is responsible for the creation of the markup of each portlet window in a portal page region. <p>A
32: * Portlet window is the frame (the container) around the markup gernerated by the Portlet. It includes things like the
33: * title, and the portlet mode and portlet window state information. The window renderer is assumed to delegate to the
34: * <code>DecorationRenderer</code> to generate the title and mode and state markup, and to the
35: * <code>PortletRenderer</code> to render the markup produced by the portlet. Note that the renderer do not call the
36: * portlet container to execute the doView doEdit etc. method. The renderer is only responsible for placing the created
37: * markup inside the page, and creating the necessary markup around it.</p>
38: *
39: * @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
40: * @version $LastChangedRevision: 8784 $, $LastChangedDate: 2007-10-27 19:01:46 -0400 (Sat, 27 Oct 2007) $
41: * @see org.jboss.portal.theme.PortalRenderSet
42: * @see RegionRenderer
43: * @see DecorationRenderer
44: * @see PortletRenderer
45: */
46: public interface WindowRenderer extends ObjectRenderer {
47: /**
48: * Render the markup of a portlet window.
49: *
50: * @param rendererContext the state holder to provide information about the region, it's portlets, and the render
51: * set, which allows access to the other renderer interfaces of the render set.
52: * @throws org.jboss.portal.theme.render.RenderException
53: *
54: * @see RegionRenderer#renderBody
55: * @see PortletRenderer#render
56: * @see DecorationRenderer#render
57: * @see WindowContext
58: * @see WindowResult
59: */
60: void render(RendererContext rendererContext,
61: WindowRendererContext wrc) throws RenderException;
62: }
|