[jboss-svn-commits] JBoss Portal SVN: r5202 - in trunk: core core/src/bin/portal-core-war/layouts/generic core/src/resources/portal-core-war/WEB-INF/layout theme theme/src theme/src/main/org/jboss/portal/test/theme theme/src/main/org/jboss/portal/test/theme/metadata theme/src/main/org/jboss/portal/theme/deployment/jboss theme/src/main/org/jboss/portal/theme/impl/render theme/src/main/org/jboss/portal/theme/impl/render/div theme/src/main/org/jboss/portal/theme/impl/render/dynamic theme/src/main/org/jboss/portal/theme/impl/render/empty theme/src/main/org/jboss/portal/theme/metadata theme/src/main/org/jboss/portal/theme/render theme/src/main/org/jboss/portal/theme/render/region theme/src/resources theme/src/resources/portal-ajax-war theme/src/resources/portal-ajax-war/WEB-INF
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 14 16:14:44 EDT 2006
Author: roy.russo at jboss.com
Date: 2006-09-14 16:14:36 -0400 (Thu, 14 Sep 2006)
New Revision: 5202
Added:
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRendererTools.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/region/AJAXScripts.java
trunk/theme/src/resources/
trunk/theme/src/resources/portal-ajax-war/
trunk/theme/src/resources/portal-ajax-war/WEB-INF/
trunk/theme/src/resources/portal-ajax-war/WEB-INF/jboss-web.xml
trunk/theme/src/resources/portal-ajax-war/WEB-INF/web.xml
Removed:
trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java
Modified:
trunk/core/build.xml
trunk/core/src/bin/portal-core-war/layouts/generic/index.jsp
trunk/core/src/resources/portal-core-war/WEB-INF/layout/portal-renderSet.xml
trunk/theme/build.xml
trunk/theme/src/main/org/jboss/portal/test/theme/TestHelper.java
trunk/theme/src/main/org/jboss/portal/test/theme/metadata/TestRenderSetMetaData.java
trunk/theme/src/main/org/jboss/portal/theme/deployment/jboss/RenderSetMetaDataFactory.java
trunk/theme/src/main/org/jboss/portal/theme/metadata/RendererSetMetaData.java
trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java
Log:
JBPORTAL-1008 - Integrate drap&drop theme into the Portal
Modified: trunk/core/build.xml
===================================================================
--- trunk/core/build.xml 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/core/build.xml 2006-09-14 20:14:36 UTC (rev 5202)
@@ -299,6 +299,10 @@
<copy todir="${build.resources}/jboss-portal/portal-cms.sar/portal-cms.war">
<fileset dir="${build.resources}/portal-cms-war"/>
</copy>
+ <!-- portal-ajax.war -->
+ <copy todir="${build.resources}/jboss-portal/portal-ajax.war">
+ <fileset dir="${jboss.portal-theme.root}/resources/portal-ajax-war"/>
+ </copy>
<!-- hibernate configuration for identity -->
<copy todir="${build.resources}/jboss-portal/conf/hibernate/user">
<fileset dir="${jboss.portal-identity.root}/resources/hibernate" includes="domain.hbm.xml"/>
Modified: trunk/core/src/bin/portal-core-war/layouts/generic/index.jsp
===================================================================
--- trunk/core/src/bin/portal-core-war/layouts/generic/index.jsp 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/core/src/bin/portal-core-war/layouts/generic/index.jsp 2006-09-14 20:14:36 UTC (rev 5202)
@@ -15,6 +15,7 @@
</head>
<body id="body">
+<p:region regionName='AJAXScripts' regionID='AJAXScripts'/>
<div id="portal-container">
<div id="sizer">
<div id="expander">
@@ -23,8 +24,10 @@
<tr>
<td align="center" valign="top" id="header">
- <!-- TODO: Needs to be defined as a region for access control -->
+ <!-- Utility controls -->
<p:region regionName='UtilityNavigation' regionID='UtilityNavigation'/>
+
+ <!-- navigation tabs and such -->
<p:region regionName='navigation' regionID='navigation'/>
<div id="spacer"></div>
</td>
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/layout/portal-renderSet.xml
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/layout/portal-renderSet.xml 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/layout/portal-renderSet.xml 2006-09-14 20:14:36 UTC (rev 5202)
@@ -2,18 +2,20 @@
<portal-renderSet>
<renderSet name="divRenderer">
<set content-type="text/html">
- <region-renderer>org.jboss.portal.theme.impl.render.DivRegionRenderer</region-renderer>
- <window-renderer>org.jboss.portal.theme.impl.render.DivWindowRenderer</window-renderer>
- <portlet-renderer>org.jboss.portal.theme.impl.render.DivPortletRenderer</portlet-renderer>
- <decoration-renderer>org.jboss.portal.theme.impl.render.DivDecorationRenderer</decoration-renderer>
+ <ajax-enabled>true</ajax-enabled>
+ <region-renderer>org.jboss.portal.theme.impl.render.div.DivRegionRenderer</region-renderer>
+ <window-renderer>org.jboss.portal.theme.impl.render.div.DivWindowRenderer</window-renderer>
+ <portlet-renderer>org.jboss.portal.theme.impl.render.div.DivPortletRenderer</portlet-renderer>
+ <decoration-renderer>org.jboss.portal.theme.impl.render.div.DivDecorationRenderer</decoration-renderer>
</set>
</renderSet>
<renderSet name="emptyRenderer">
<set content-type="text/html">
- <region-renderer>org.jboss.portal.theme.impl.render.EmptyRegionRenderer</region-renderer>
- <window-renderer>org.jboss.portal.theme.impl.render.EmptyWindowRenderer</window-renderer>
- <portlet-renderer>org.jboss.portal.theme.impl.render.EmptyPortletRenderer</portlet-renderer>
- <decoration-renderer>org.jboss.portal.theme.impl.render.EmptyDecorationRenderer</decoration-renderer>
+ <ajax-enabled>true</ajax-enabled>
+ <region-renderer>org.jboss.portal.theme.impl.render.empty.EmptyRegionRenderer</region-renderer>
+ <window-renderer>org.jboss.portal.theme.impl.render.empty.EmptyWindowRenderer</window-renderer>
+ <portlet-renderer>org.jboss.portal.theme.impl.render.empty.EmptyPortletRenderer</portlet-renderer>
+ <decoration-renderer>org.jboss.portal.theme.impl.render.empty.EmptyDecorationRenderer</decoration-renderer>
</set>
</renderSet>
</portal-renderSet>
Modified: trunk/theme/build.xml
===================================================================
--- trunk/theme/build.xml 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/build.xml 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project [
- <!ENTITY libraries SYSTEM "../thirdparty/libraries.ent">
- <!ENTITY buildmagic SYSTEM "../tools/etc/buildfragments/buildmagic.ent">
- <!ENTITY tools SYSTEM "../tools/etc/buildfragments/tools.ent">
- <!ENTITY modules SYSTEM "../tools/etc/buildfragments/modules.ent">
- <!ENTITY defaults SYSTEM "../tools/etc/buildfragments/defaults.ent">
- <!ENTITY targets SYSTEM "../tools/etc/buildfragments/targets.ent">
-]>
+ <!ENTITY libraries SYSTEM "../thirdparty/libraries.ent">
+ <!ENTITY buildmagic SYSTEM "../tools/etc/buildfragments/buildmagic.ent">
+ <!ENTITY tools SYSTEM "../tools/etc/buildfragments/tools.ent">
+ <!ENTITY modules SYSTEM "../tools/etc/buildfragments/modules.ent">
+ <!ENTITY defaults SYSTEM "../tools/etc/buildfragments/defaults.ent">
+ <!ENTITY targets SYSTEM "../tools/etc/buildfragments/targets.ent">
+ ]>
<!-- $Id$ -->
@@ -31,7 +31,7 @@
<!--| It also sets up the basic extention tasks amoung other things. |-->
<!--+====================================================================+-->
- &buildmagic;
+ &buildmagic;
&modules;
&defaults;
&tools;
@@ -114,8 +114,8 @@
<!--+====================================================================+-->
<target name="compile"
- description="Compile all source files."
- depends="_default:compile-classes,
+ description="Compile all source files."
+ depends="_default:compile-classes,
_default:compile-etc,
_default:compile-resources">
<!-- Add module specific elements here. -->
@@ -130,8 +130,8 @@
<!--+====================================================================+-->
<target name="output"
- description="Generate all target output."
- depends="compile">
+ description="Generate all target output."
+ depends="compile">
<!-- -->
<mkdir dir="${build.lib}"/>
@@ -145,6 +145,11 @@
<jar jarfile="${build.lib}/portal-theme-test-lib.jar">
<fileset dir="${build.classes}" includes="org/jboss/portal/test/**"/>
</jar>
+
+ <copy todir="${build.resources}/portal-ajax-war">
+ <fileset dir="${source.bin}/portal-ajax-war"/>
+ <fileset dir="${source.resources}/portal-ajax-war"/>
+ </copy>
</target>
<!-- ================================================================== -->
@@ -181,9 +186,9 @@
<target name="style" depends="init">
<xslt
- style="${source.resources}/style/toto.xsl"
- in="${source.resources}/test/default-portal.xml"
- out="${build.resources}/test/toto.xml">
+ style="${source.resources}/style/toto.xsl"
+ in="${source.resources}/test/default-portal.xml"
+ out="${build.resources}/test/toto.xml">
</xslt>
</target>
@@ -207,13 +212,13 @@
<mkdir dir="${build.testlog}"/>
<junit
- dir="${module.output}"
- printsummary="${junit.printsummary}"
- haltonerror="${junit.haltonerror}"
- haltonfailure="${junit.haltonfailure}"
- fork="${junit.fork}"
- timeout="${junit.timeout}"
- jvm="${junit.jvm}">
+ dir="${module.output}"
+ printsummary="${junit.printsummary}"
+ haltonerror="${junit.haltonerror}"
+ haltonfailure="${junit.haltonfailure}"
+ fork="${junit.fork}"
+ timeout="${junit.timeout}"
+ jvm="${junit.jvm}">
<!--<jvmarg line="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7878"/>-->
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/TestHelper.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/TestHelper.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/TestHelper.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -158,19 +158,19 @@
testString.append("<portal-renderSet>");
testString.append("<renderSet name=\"emptyRenderer\">");
testString.append("<set content-type=\"text/html\">");
- testString.append("<region-renderer>org.jboss.portal.theme.impl.render.EmptyRegionRenderer</region-renderer>");
- testString.append("<window-renderer>org.jboss.portal.theme.impl.render.EmptyWindowRenderer</window-renderer>");
- testString.append("<portlet-renderer>org.jboss.portal.theme.impl.render.EmptyPortletRenderer</portlet-renderer>");
- testString.append("<decoration-renderer>org.jboss.portal.theme.impl.render.EmptyDecorationRenderer</decoration-renderer>");
+ testString.append("<region-renderer>org.jboss.portal.theme.impl.render.empty.EmptyRegionRenderer</region-renderer>");
+ testString.append("<window-renderer>org.jboss.portal.theme.impl.render.empty.EmptyWindowRenderer</window-renderer>");
+ testString.append("<portlet-renderer>org.jboss.portal.theme.impl.render.empty.EmptyPortletRenderer</portlet-renderer>");
+ testString.append("<decoration-renderer>org.jboss.portal.theme.impl.render.empty.EmptyDecorationRenderer</decoration-renderer>");
testString.append("</set>");
testString.append("</renderSet>");
testString.append("<renderSet name=\"divRenderer\">");
testString.append("<set content-type=\"text/html\">");
- testString.append("<region-renderer>org.jboss.portal.theme.impl.render.DivRegionRenderer</region-renderer>");
- testString.append("<window-renderer>org.jboss.portal.theme.impl.render.DivWindowRenderer</window-renderer>");
- testString.append("<portlet-renderer>org.jboss.portal.theme.impl.render.DivPortletRenderer</portlet-renderer>");
- testString.append("<decoration-renderer>org.jboss.portal.theme.impl.render.DivDecorationRenderer</decoration-renderer>");
+ testString.append("<region-renderer>org.jboss.portal.theme.impl.render.div.DivRegionRenderer</region-renderer>");
+ testString.append("<window-renderer>org.jboss.portal.theme.impl.render.div.DivWindowRenderer</window-renderer>");
+ testString.append("<portlet-renderer>org.jboss.portal.theme.impl.render.div.DivPortletRenderer</portlet-renderer>");
+ testString.append("<decoration-renderer>org.jboss.portal.theme.impl.render.div.DivDecorationRenderer</decoration-renderer>");
testString.append("</set>");
testString.append("</renderSet>");
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/metadata/TestRenderSetMetaData.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/metadata/TestRenderSetMetaData.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/metadata/TestRenderSetMetaData.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -43,18 +43,18 @@
* <portal-renderSet>
* <renderSet name="divRenderer">
* <set content-type="text/html">
- * <region-renderer>org.jboss.portal.theme.impl.render.DivRegionRenderer</region-renderer>
- * <window-renderer>org.jboss.portal.theme.impl.render.DivWindowRenderer</window-renderer>
- * <portlet-renderer>org.jboss.portal.theme.impl.render.DivPortletRenderer</portlet-renderer>
- * <decoration-renderer>org.jboss.portal.theme.impl.render.DivDecorationRenderer</decoration-renderer>
+ * <region-renderer>org.jboss.portal.theme.impl.render.div.DivRegionRenderer</region-renderer>
+ * <window-renderer>org.jboss.portal.theme.impl.render.div.DivWindowRenderer</window-renderer>
+ * <portlet-renderer>org.jboss.portal.theme.impl.render.div.DivPortletRenderer</portlet-renderer>
+ * <decoration-renderer>org.jboss.portal.theme.impl.render.div.DivDecorationRenderer</decoration-renderer>
* </set>
* </renderSet>
* <renderSet name="emptyRenderer">
* <set content-type="text/html">
- * <region-renderer>org.jboss.portal.theme.impl.render.EmptyRegionRenderer</region-renderer>
- * <window-renderer>org.jboss.portal.theme.impl.render.EmptyWindowRenderer</window-renderer>
- * <portlet-renderer>org.jboss.portal.theme.impl.render.EmptyPortletRenderer</portlet-renderer>
- * <decoration-renderer>org.jboss.portal.theme.impl.render.EmptyDecorationRenderer</decoration-renderer>
+ * <region-renderer>org.jboss.portal.theme.impl.render.empty.EmptyRegionRenderer</region-renderer>
+ * <window-renderer>org.jboss.portal.theme.impl.render.empty.EmptyWindowRenderer</window-renderer>
+ * <portlet-renderer>org.jboss.portal.theme.impl.render.empty.EmptyPortletRenderer</portlet-renderer>
+ * <decoration-renderer>org.jboss.portal.theme.impl.render.empty.EmptyDecorationRenderer</decoration-renderer>
* </set>
* </renderSet>
* </portal-renderSet>
Modified: trunk/theme/src/main/org/jboss/portal/theme/deployment/jboss/RenderSetMetaDataFactory.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/deployment/jboss/RenderSetMetaDataFactory.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/deployment/jboss/RenderSetMetaDataFactory.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -21,11 +21,11 @@
*/
package org.jboss.portal.theme.deployment.jboss;
+import org.jboss.portal.common.MediaType;
+import org.jboss.portal.theme.metadata.RenderSetMetaData;
+import org.jboss.portal.theme.metadata.RendererSetMetaData;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
-import org.jboss.portal.theme.metadata.RenderSetMetaData;
-import org.jboss.portal.theme.metadata.RendererSetMetaData;
-import org.jboss.portal.common.MediaType;
import org.xml.sax.Attributes;
import javax.activation.MimeTypeParseException;
@@ -50,7 +50,7 @@
public Object newChild(ArrayList list, UnmarshallingContext nav, String nsURI, String localName, Attributes attrs)
{
- if ("renderSet".equals(localName))
+ if("renderSet".equals(localName))
{
String name = attrs.getValue("name");
RenderSetMetaData renderSet = new RenderSetMetaData();
@@ -67,7 +67,7 @@
public Object newChild(RenderSetMetaData renderSet, UnmarshallingContext nav, String nsURI, String localName, Attributes attrs) throws MimeTypeParseException
{
- if ("set".equals(localName))
+ if("set".equals(localName))
{
RendererSetMetaData rendererSet = new RendererSetMetaData();
String contentType = attrs.getValue("content-type");
@@ -84,21 +84,25 @@
public void setValue(RendererSetMetaData rendererSet, UnmarshallingContext nav, String nsURI, String localName, String value)
{
- if ("region-renderer".equals(localName))
+ if("region-renderer".equals(localName))
{
rendererSet.setRegionRenderer(value);
}
- else if ("window-renderer".equals(localName))
+ else if("window-renderer".equals(localName))
{
rendererSet.setWindowRenderer(value);
}
- else if ("portlet-renderer".equals(localName))
+ else if("portlet-renderer".equals(localName))
{
rendererSet.setPortletRenderer(value);
}
- else if ("decoration-renderer".equals(localName))
+ else if("decoration-renderer".equals(localName))
{
rendererSet.setDecorationRenderer(value);
}
+ else if(localName.equals("ajax-enabled"))
+ {
+ rendererSet.setAjaxEnabled(value.equals("true"));
+ }
}
}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,174 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.apache.log4j.Logger;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.DecorationRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Implementation of a decoration renderer, based on div tags.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.DecorationRenderer
- */
-public class DivDecorationRenderer
- implements DecorationRenderer
-{
- private static Logger log = Logger.getLogger(DivDecorationRenderer.class);
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext ctx)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext ctx)
- {
- }
-
- /**
- * @see DecorationRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result)
- throws RenderException
- {
- log.debug("decorate " + result.getTitle());
-
- StringBuffer markup = renderContext.getMarkupFragment();
- markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
- markup.append("<td class=\"portlet-titlebar-center\">");
- renderTitle(renderContext, result);
- markup.append("<div class=\"portlet-mode-container\">");
- renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
- renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
-
- markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
-
- log.debug("decoration is done");
- }
-
- private static void renderTitle(RenderContext ctx, WindowResult result)
- {
- ctx.getMarkupFragment().append("<div class=\"portlet-titlebar-decoration\">");
- ctx.getMarkupFragment().append("<span class=\"portlet-titlebar-title\">");
- ctx.getMarkupFragment().append(result.getTitle());
- ctx.getMarkupFragment().append("</span></div>");
- }
-
- private static void renderModeAndStateLinks(RenderContext ctx, WindowResult result, String selector)
- {
- log.debug("render " + selector + "s");
- Collection modesOrStates = result.getTriggerableActions(selector);
- if (modesOrStates == null)
- {
- return;
- }
-
- if (modesOrStates instanceof List)
- {
- List list = (List)modesOrStates;
- Collections.sort(list, COMPARATOR);
- modesOrStates = list;
- }
-
- for (Iterator i = modesOrStates.iterator(); i.hasNext();)
- {
- WindowResult.Action action = (WindowResult.Action)i.next();
- if (action.isEnabled())
- {
- log.debug("action is enabled: " + action.getName());
- ctx.getMarkupFragment().append("<div class=\"portlet-mode-").append(action.getName());
- ctx.getMarkupFragment().append("\" onClick=\"location.href='").append(action.getURL()).append("';\" title=\"");
- ctx.getMarkupFragment().append(action.getName()).append("\"></div>");
- }
- }
- }
-
- private static final Comparator COMPARATOR = new ModeAndStateComparator();
-
- private static class ModeAndStateComparator implements Comparator
- {
- private static final Map modeOrState2Index = new HashMap();
-
- static
- {
- modeOrState2Index.put(Mode.EDIT, new Integer(98));
- modeOrState2Index.put(Mode.HELP, new Integer(99));
- modeOrState2Index.put(Mode.VIEW, new Integer(100));
- modeOrState2Index.put(WindowState.MINIMIZED, new Integer(198));
- modeOrState2Index.put(WindowState.NORMAL, new Integer(199));
- modeOrState2Index.put(WindowState.MAXIMIZED, new Integer(200));
- }
-
- private static int lastModeIndex = 1;
- private static int lastStateIndex = 101;
-
- public int compare(Object o1, Object o2)
- {
- WindowResult.Action action1 = (WindowResult.Action)o1;
- WindowResult.Action action2 = (WindowResult.Action)o2;
-
- Object origin1 = action1.getOrigin();
- Object origin2 = action2.getOrigin();
-
- if (origin1.equals(origin2))
- {
- return 0;
- }
-
- int index1 = getIndexFor(origin1);
- int index2 = getIndexFor(origin2);
-
- return index1 - index2;
- }
-
- private int getIndexFor(Object origin)
- {
- Integer index = (Integer)modeOrState2Index.get(origin);
- if (index == null)
- {
- index = (origin instanceof Mode) ? new Integer(lastModeIndex++) : new Integer(lastStateIndex++);
- modeOrState2Index.put(origin, index);
- }
- return index.intValue();
- }
- }
-}
\ No newline at end of file
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,67 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.PortletRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-/**
- * Implementation of a Portlet renderer, based on div tags.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.PortletRenderer
- */
-public class DivPortletRenderer
- implements PortletRenderer
-{
- /**
- * @see PortletRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
- {
- renderStart(renderContext);
- renderContext.getMarkupFragment().append(result.getContent());
- renderEnd(renderContext);
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext ctx)
- {
- ctx.getMarkupFragment().append("<tr><td class=\"portlet-content-left\"></td>");
- ctx.getMarkupFragment().append("<td class=\"portlet-body\"><div class=\"portlet-content-center\">");
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext ctx)
- {
- ctx.getMarkupFragment().append("</div></td><td class=\"portlet-content-right\"></td></tr>");
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,116 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.jboss.logging.Logger;
-import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.RegionRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-import java.lang.reflect.Method;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * Implementation of a Region renderer, based on div tags.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @author <a href="mailto:roy at jboss.org>Roy Russo</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.RegionRenderer
- */
-public class DivRegionRenderer
- implements RegionRenderer
-{
- private static Logger log = Logger.getLogger(DivRegionRenderer.class);
-
- /**
- * @see RegionRenderer#render
- */
- public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
- {
- StringBuffer markup = renderContext.getMarkupFragment();
- markup.append("<div");
-
- if(region == null) // || region.getWindows().size() <= 0)
- {
- markup.append(" class='empty-region' />");
- return;
- }
- else
- {
- if(renderContext.getRegionID() != null)
- {
- markup.append(" id='").append(renderContext.getRegionID()).append("'>");
- }
- }
-
- if(region.getWindows().size() == 0) // non-window display of content
- {
- try
- {
- Class regionClass = Thread.currentThread().getContextClassLoader().loadClass("org.jboss.portal.theme.render.region." + region.getId());
- Class[] argTypes = {String.class};
- Method m = regionClass.getMethod("render", argTypes);
- String fragment = (String) m.invoke(regionClass.newInstance(), new Object[]{null});
- markup.append(fragment);
- }
- catch(Exception e)
- {
- log.error("No region class found for: " + "org.jboss.portal.theme.render.region." + region.getId());
- }
- }
- else // process window fragments
- {
- for(Iterator i = region.getWindows().iterator(); i.hasNext();)
- {
- WindowContext window = (WindowContext) i.next();
- WindowContext portletContext = (WindowContext) portletContexts.get(window.getId());
- WindowResult result = (WindowResult) windowResults.get(window.getId());
-
- // The result may be null if it has not been added to the page for some reason
- if(result != null)
- {
- renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
- }
- }
- }
- markup.append("</div>");
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderStart(RenderContext ctx)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderEnd(RenderContext ctx)
- {
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,103 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.apache.log4j.Logger;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.DecorationRenderer;
-import org.jboss.portal.theme.render.PortletRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-import org.jboss.portal.theme.render.WindowRenderer;
-
-/**
- * Implementation of a WindowRenderer, based on div tags.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.WindowRenderer
- */
-public class DivWindowRenderer
- implements WindowRenderer
-{
- private static Logger log = Logger.getLogger(DivWindowRenderer.class);
-
- /**
- * @see WindowRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
- {
- renderStart(renderContext);
-
-// try
-// {
- DecorationRenderer decorationRenderer = renderContext.getDecorationRenderer(result);
- if (decorationRenderer != null)
- {
- decorationRenderer.render(renderContext, portletContext, result);
- }
-
- WindowState windowState = renderContext.getWindowState(portletContext);
- if (!WindowState.MINIMIZED.equals(windowState))
- {
- PortletRenderer portletRenderer = renderContext.getPortletRenderer(result);
- if (portletRenderer != null)
- {
- portletRenderer.render(renderContext, portletContext, result);
- }
-
- renderContext.getMarkupFragment().append("<tr><td class=\"portlet-footer-left\"></td>");
- renderContext.getMarkupFragment().append("<td class=\"portlet-footer-center\"></td>");
- renderContext.getMarkupFragment().append("<td class=\"portlet-footer-right\"></td></tr>");
- }
-
-// }
-// catch (ThemeException e)
-// {
-// // the portlet state is not known (the portlet registration is gone), handle it
-// log.error("", e);
-// // +++TODO: the error message should be configurable ...?
-// renderContext.getMarkupFragment().append("<p class='portlet-error'><pre>").append(e).append("</pre></p>");
-// }
-
- renderEnd(renderContext);
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderStart(RenderContext ctx)
- {
- ctx.getMarkupFragment().append("<div class=\"portlet-container\">");
- ctx.getMarkupFragment().append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderEnd(RenderContext ctx)
- {
- ctx.getMarkupFragment().append("</table></div>");
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,61 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.DecorationRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-/**
- * Implementation of a Decoration renderer that creates no markup.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.DecorationRenderer
- */
-public class EmptyDecorationRenderer
- implements DecorationRenderer
-{
- /**
- * @see DecorationRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext ctx)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext ctx)
- {
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,66 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.apache.log4j.Logger;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.PortletRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-/**
- * Implementation of a Portlet renderer that create only the portlet content, no markup around it.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.PortletRenderer
- */
-public class EmptyPortletRenderer
- implements PortletRenderer
-{
- private static Logger log = Logger.getLogger(EmptyPortletRenderer.class);
-
- /**
- * @see PortletRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
- {
-// log.debug("content of portlet: " + result.getTitle());
- renderContext.getMarkupFragment().append(result.getContent());
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext ctx)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext ctx)
- {
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,89 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.apache.log4j.Logger;
-import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.RegionRenderer;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * Implementation of a Region renderer that creates no markup, and only passes control to the
- * Portlet renderer of the render set provided by the render context.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.RegionRenderer
- */
-public class EmptyRegionRenderer
- implements RegionRenderer
-{
- private static Logger log = Logger.getLogger(EmptyRegionRenderer.class);
-
- /**
- * @see RegionRenderer#render
- */
- public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
- {
- log.debug("render portlets in region : " + region.getId());
-
- Map orderedItems = new TreeMap();
-
- for (Iterator i = region.getWindows().iterator(); i.hasNext();)
- {
- WindowContext window = (WindowContext)i.next();
- orderedItems.put(new Integer(window.getOrder()), window);
- log.debug("got window to render: " + window.getId());
- }
-
- for (Iterator i = orderedItems.values().iterator(); i.hasNext();)
- {
- WindowContext window = (WindowContext)i.next();
-
- WindowContext portletContext = (WindowContext)portletContexts.get(window.getId());
- WindowResult result = (WindowResult)windowResults.get(window.getId());
-
- renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
- }
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext renderContext)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext renderContext)
- {
- }
-}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -1,80 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.portal.theme.impl.render;
-
-import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.portal.theme.render.RenderException;
-import org.jboss.portal.theme.render.WindowRenderer;
-
-/**
- * Implementation of a Window renderer that creates no markup, and only passed control to the
- * Portlet renderer.
- *
- * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.WindowRenderer
- */
-public class EmptyWindowRenderer
- implements WindowRenderer
-{
-// private static Logger log = Logger.getLogger(EmptyWindowRenderer.class);
-
- /**
- * @see WindowRenderer#render
- */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
- {
-// log.debug("render window for portlet : " + portletContext.);
-
-// try
-// {
- WindowState windowState = renderContext.getWindowState(portletContext);
- renderContext.getDecorationRenderer(result).render(renderContext, portletContext, result);
- if (!WindowState.MINIMIZED.equals(windowState))
- {
- renderContext.getPortletRenderer(result).render(renderContext, portletContext, result);
- }
-// }
-// catch (ThemeException e)
-// {
-// // the portlet state is not known (the portlet registration is gone), handle it
-// e.printStackTrace(); //+++TODO
-// }
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart
- */
- public void renderStart(RenderContext ctx)
- {
- }
-
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd
- */
- public void renderEnd(RenderContext ctx)
- {
- }
-}
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivDecorationRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,174 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.div;
+
+import org.apache.log4j.Logger;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.DecorationRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of a decoration renderer, based on div tags.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.DecorationRenderer
+ */
+public class DivDecorationRenderer
+ implements DecorationRenderer
+{
+ private static Logger log = Logger.getLogger(DivDecorationRenderer.class);
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see DecorationRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result)
+ throws RenderException
+ {
+ log.debug("decorate " + result.getTitle());
+
+ StringBuffer markup = renderContext.getMarkupFragment();
+ markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
+ markup.append("<td class=\"portlet-titlebar-center\">");
+ renderTitle(renderContext, result);
+ markup.append("<div class=\"portlet-mode-container\">");
+ renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
+ renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
+
+ markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
+
+ log.debug("decoration is done");
+ }
+
+ private static void renderTitle(RenderContext ctx, WindowResult result)
+ {
+ ctx.getMarkupFragment().append("<div class=\"portlet-titlebar-decoration\">");
+ ctx.getMarkupFragment().append("<span class=\"portlet-titlebar-title\">");
+ ctx.getMarkupFragment().append(result.getTitle());
+ ctx.getMarkupFragment().append("</span></div>");
+ }
+
+ private static void renderModeAndStateLinks(RenderContext ctx, WindowResult result, String selector)
+ {
+ log.debug("render " + selector + "s");
+ Collection modesOrStates = result.getTriggerableActions(selector);
+ if (modesOrStates == null)
+ {
+ return;
+ }
+
+ if (modesOrStates instanceof List)
+ {
+ List list = (List)modesOrStates;
+ Collections.sort(list, COMPARATOR);
+ modesOrStates = list;
+ }
+
+ for (Iterator i = modesOrStates.iterator(); i.hasNext();)
+ {
+ WindowResult.Action action = (WindowResult.Action)i.next();
+ if (action.isEnabled())
+ {
+ log.debug("action is enabled: " + action.getName());
+ ctx.getMarkupFragment().append("<div class=\"portlet-mode-").append(action.getName());
+ ctx.getMarkupFragment().append("\" onClick=\"location.href='").append(action.getURL()).append("';\" title=\"");
+ ctx.getMarkupFragment().append(action.getName()).append("\"></div>");
+ }
+ }
+ }
+
+ private static final Comparator COMPARATOR = new ModeAndStateComparator();
+
+ private static class ModeAndStateComparator implements Comparator
+ {
+ private static final Map modeOrState2Index = new HashMap();
+
+ static
+ {
+ modeOrState2Index.put(Mode.EDIT, new Integer(98));
+ modeOrState2Index.put(Mode.HELP, new Integer(99));
+ modeOrState2Index.put(Mode.VIEW, new Integer(100));
+ modeOrState2Index.put(WindowState.MINIMIZED, new Integer(198));
+ modeOrState2Index.put(WindowState.NORMAL, new Integer(199));
+ modeOrState2Index.put(WindowState.MAXIMIZED, new Integer(200));
+ }
+
+ private static int lastModeIndex = 1;
+ private static int lastStateIndex = 101;
+
+ public int compare(Object o1, Object o2)
+ {
+ WindowResult.Action action1 = (WindowResult.Action)o1;
+ WindowResult.Action action2 = (WindowResult.Action)o2;
+
+ Object origin1 = action1.getOrigin();
+ Object origin2 = action2.getOrigin();
+
+ if (origin1.equals(origin2))
+ {
+ return 0;
+ }
+
+ int index1 = getIndexFor(origin1);
+ int index2 = getIndexFor(origin2);
+
+ return index1 - index2;
+ }
+
+ private int getIndexFor(Object origin)
+ {
+ Integer index = (Integer)modeOrState2Index.get(origin);
+ if (index == null)
+ {
+ index = (origin instanceof Mode) ? new Integer(lastModeIndex++) : new Integer(lastStateIndex++);
+ modeOrState2Index.put(origin, index);
+ }
+ return index.intValue();
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivPortletRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,67 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.div;
+
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.PortletRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+/**
+ * Implementation of a Portlet renderer, based on div tags.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.PortletRenderer
+ */
+public class DivPortletRenderer
+ implements PortletRenderer
+{
+ /**
+ * @see PortletRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext state, WindowResult result)
+ throws RenderException
+ {
+ renderStart(renderContext);
+ renderContext.getMarkupFragment().append(result.getContent());
+ renderEnd(renderContext);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ ctx.getMarkupFragment().append("<tr><td class=\"portlet-content-left\"></td>");
+ ctx.getMarkupFragment().append("<td class=\"portlet-body\"><div class=\"portlet-content-center\">");
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ ctx.getMarkupFragment().append("</div></td><td class=\"portlet-content-right\"></td></tr>");
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivRegionRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,116 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.div;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.theme.page.Region;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.RegionRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * Implementation of a Region renderer, based on div tags.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @author <a href="mailto:roy at jboss.org>Roy Russo</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.RegionRenderer
+ */
+public class DivRegionRenderer
+ implements RegionRenderer
+{
+ private static Logger log = Logger.getLogger(DivRegionRenderer.class);
+
+ /**
+ * @see RegionRenderer#render
+ */
+ public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
+ {
+ StringBuffer markup = renderContext.getMarkupFragment();
+ markup.append("<div");
+
+ if(region == null) // || region.getWindows().size() <= 0)
+ {
+ markup.append(" class='empty-region' />");
+ return;
+ }
+ else
+ {
+ if(renderContext.getRegionID() != null)
+ {
+ markup.append(" id='").append(renderContext.getRegionID()).append("'>");
+ }
+ }
+
+ if(region.getWindows().size() == 0) // non-window display of content
+ {
+ try
+ {
+ Class regionClass = Thread.currentThread().getContextClassLoader().loadClass("org.jboss.portal.theme.render.region." + region.getId());
+ Class[] argTypes = {String.class};
+ Method m = regionClass.getMethod("render", argTypes);
+ String fragment = (String) m.invoke(regionClass.newInstance(), new Object[]{null});
+ markup.append(fragment);
+ }
+ catch(Exception e)
+ {
+ log.error("No region class found for: " + "org.jboss.portal.theme.render.region." + region.getId());
+ }
+ }
+ else // process window fragments
+ {
+ for(Iterator i = region.getWindows().iterator(); i.hasNext();)
+ {
+ WindowContext window = (WindowContext) i.next();
+ WindowContext portletContext = (WindowContext) portletContexts.get(window.getId());
+ WindowResult result = (WindowResult) windowResults.get(window.getId());
+
+ // The result may be null if it has not been added to the page for some reason
+ if(result != null)
+ {
+ renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
+ }
+ }
+ }
+ markup.append("</div>");
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/DivWindowRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,103 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.div;
+
+import org.apache.log4j.Logger;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.DecorationRenderer;
+import org.jboss.portal.theme.render.PortletRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.WindowRenderer;
+
+/**
+ * Implementation of a WindowRenderer, based on div tags.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.WindowRenderer
+ */
+public class DivWindowRenderer
+ implements WindowRenderer
+{
+ private static Logger log = Logger.getLogger(DivWindowRenderer.class);
+
+ /**
+ * @see WindowRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
+ {
+ renderStart(renderContext);
+
+// try
+// {
+ DecorationRenderer decorationRenderer = renderContext.getDecorationRenderer(result);
+ if (decorationRenderer != null)
+ {
+ decorationRenderer.render(renderContext, portletContext, result);
+ }
+
+ WindowState windowState = renderContext.getWindowState(portletContext);
+ if (!WindowState.MINIMIZED.equals(windowState))
+ {
+ PortletRenderer portletRenderer = renderContext.getPortletRenderer(result);
+ if (portletRenderer != null)
+ {
+ portletRenderer.render(renderContext, portletContext, result);
+ }
+
+ renderContext.getMarkupFragment().append("<tr><td class=\"portlet-footer-left\"></td>");
+ renderContext.getMarkupFragment().append("<td class=\"portlet-footer-center\"></td>");
+ renderContext.getMarkupFragment().append("<td class=\"portlet-footer-right\"></td></tr>");
+ }
+
+// }
+// catch (ThemeException e)
+// {
+// // the portlet state is not known (the portlet registration is gone), handle it
+// log.error("", e);
+// // +++TODO: the error message should be configurable ...?
+// renderContext.getMarkupFragment().append("<p class='portlet-error'><pre>").append(e).append("</pre></p>");
+// }
+
+ renderEnd(renderContext);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ ctx.getMarkupFragment().append("<div class=\"portlet-container\">");
+ ctx.getMarkupFragment().append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ ctx.getMarkupFragment().append("</table></div>");
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,82 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.theme.impl.render.dynamic;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.DecorationRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+/**
+ * Implementation of a drag and drop decoration renderer.
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.DecorationRenderer
+ */
+public class DynaDecorationRenderer implements DecorationRenderer
+{
+ private static Logger log = Logger.getLogger(DynaDecorationRenderer.class);
+
+ private DecorationRenderer delegate;
+
+ public DynaDecorationRenderer(DecorationRenderer decorationRenderer) throws InstantiationException,
+ IllegalAccessException, ClassNotFoundException
+ {
+ super();
+ //delegate = (DecorationRenderer) DynaRendererTools.getRendererClass(DynaRendererTools.DECOR_CLASS).newInstance();
+ delegate = decorationRenderer;
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ delegate.renderStart(ctx);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ delegate.renderEnd(ctx);
+ }
+
+ /**
+ * @see DecorationRenderer#render
+ */
+ public void render(RenderContext renderContext,
+ WindowContext portletContext, WindowResult result)
+ throws RenderException
+ {
+
+ delegate.render(renderContext, portletContext, result);
+
+ }
+
+}
\ No newline at end of file
Added: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,79 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.theme.impl.render.dynamic;
+
+import org.jboss.portal.theme.impl.render.div.DivPortletRenderer;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.PortletRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+/**
+ * Implementation of a drag and drop Portlet renderer.
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.PortletRenderer
+ */
+public class DynaPortletRenderer implements PortletRenderer
+{
+
+ private PortletRenderer delegate;
+
+ public DynaPortletRenderer(PortletRenderer portletRenderer) throws InstantiationException,
+ IllegalAccessException, ClassNotFoundException
+ {
+ super();
+ //delegate = (PortletRenderer) DynaRendererTools.getRendererClass(DynaRendererTools.PORLTET_CLASS).newInstance();
+ delegate = portletRenderer;
+ }
+
+ /**
+ * @see PortletRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext state,
+ WindowResult result) throws RenderException
+ {
+
+ delegate.render(renderContext, state, result);
+
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ delegate.renderStart(ctx);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ delegate.renderEnd(ctx);
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,203 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.theme.impl.render.dynamic;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.theme.impl.render.div.DivRegionRenderer;
+import org.jboss.portal.theme.page.Region;
+import org.jboss.portal.theme.render.RegionRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Implementation of a drag and drop Region renderer.
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ * @see org.jboss.portal.theme.render.RegionRenderer
+ */
+public class DynaRegionRenderer implements RegionRenderer
+{
+ private Map portletPos = new HashMap(); //<String, Integer>
+
+ private Map windowIds = new HashMap();
+
+ private final static Logger log = Logger.getLogger(DynaRegionRenderer.class);
+
+ private RegionRenderer delegate;
+
+ public DynaRegionRenderer(RegionRenderer regionRenderer) throws InstantiationException,
+ IllegalAccessException, ClassNotFoundException
+ {
+ super();
+ //delegate = (RegionRenderer) DynaRendererTools.getRendererClass(DynaRendererTools.REGION_CLASS).newInstance();
+ delegate = regionRenderer;
+ }
+
+ /**
+ * @see RegionRenderer#render
+ */
+ public void render(RenderContext renderContext, Region region,
+ Map portletContexts, Map windowResults) throws RenderException
+ {
+
+/* Don't delete me!
+ if(renderContext.getLayoutRegionNames().get(0).equals(region.getId()))
+ {
+ // add DND headers
+ renderContext.getMarkupFragment().append(DynaRendererTools.getScriptHeaders(renderContext.getLayoutInfo().getContextPath()));
+ }
+*/
+
+ renderContext.getMarkupFragment().append(
+ "<div id=\"regionDD" + renderContext.getRegionID() + "\">\n");
+
+ delegate.render(renderContext, region, portletContexts, windowResults);
+
+ renderContext.getMarkupFragment().append("</div>\n");
+
+ if(portletPos.get(renderContext.getRegionID()) != null
+ && ((Integer) portletPos.get(renderContext.getRegionID())).intValue() > 0)
+ {
+ renderContext.getMarkupFragment().append(
+ "\n<script type='text/javascript'>\n");
+ renderContext.getMarkupFragment().append(
+ "YAHOO.example.DDApp" + renderContext.getRegionID()
+ + " = function() {\n");
+ renderContext.getMarkupFragment().append(" var ");
+ for(int i = 0; i < ((Integer) portletPos.get(renderContext.getRegionID())).intValue(); i++)
+ {
+ // add portlet vars
+ renderContext.getMarkupFragment().append(
+ "ddPortlet" + renderContext.getRegionID() + i + ", ");
+ }
+
+ // regionDD var
+ renderContext.getMarkupFragment().append(
+ "regionDrop" + renderContext.getRegionID() + ";\n");
+
+ renderContext.getMarkupFragment().append(
+ " var DDM = YAHOO.util.DDM;\n");
+ renderContext.getMarkupFragment().append(
+ " DDM.mode = DDM.POINT;\n");
+
+ renderContext.getMarkupFragment().append(" return {\n");
+ renderContext.getMarkupFragment().append(
+ " init: function() {\n");
+
+ // write regionDD var declaration
+ renderContext.getMarkupFragment().append(
+ " regionDrop" + renderContext.getRegionID()
+ + " = new YAHOO.util.PortalDD('regionDrop"
+ + renderContext.getRegionID() + "');\n");
+ renderContext.getMarkupFragment().append(
+ " regionDrop" + renderContext.getRegionID()
+ + ".setXConstraint(0, 0, 1);\n");
+ renderContext.getMarkupFragment().append(
+ " regionDrop" + renderContext.getRegionID()
+ + ".setYConstraint(0, 0, 1);\n");
+
+ for(int i = 0; i < ((Integer) portletPos.get(renderContext.getRegionID())).intValue(); i++)
+ {
+ // add new DnD objects
+
+ renderContext.getMarkupFragment().append(
+ " ddPortlet" + renderContext.getRegionID()
+ + i
+ + " = new YAHOO.util.PortalDD('portlet-dnd-"
+ + renderContext.getRegionID() + "-" + i
+ + "');\n");
+ renderContext.getMarkupFragment()
+ .append(
+ " ddPortlet"
+ + renderContext.getRegionID() + i
+ + ".windowId = \"" + (String) windowIds.get("portlet-dnd-" + renderContext.getRegionID() + "-" + i)
+ + "\";\n");
+ }
+
+ // add this regiondrop id
+ renderContext.getMarkupFragment().append(
+ " ddPortlet" + renderContext.getRegionID() + "0"
+ + ".getEl().parentNode.dropToRegion = 'regionDrop"
+ + renderContext.getRegionID() + "';\n");
+
+ // add this region id
+ renderContext.getMarkupFragment().append(
+ " ddPortlet" + renderContext.getRegionID() + "0"
+ + ".getEl().parentNode.regionId = '"
+ + region.getId() + "';\n");
+
+ renderContext.getMarkupFragment().append(" }\n");
+ renderContext.getMarkupFragment().append(" };\n");
+ renderContext.getMarkupFragment().append("} ();\n");
+ renderContext.getMarkupFragment().append(
+ "YAHOO.util.Event.addListener(window, 'load', YAHOO.example.DDApp"
+ + renderContext.getRegionID() + ".init);\n");
+ renderContext.getMarkupFragment().append(
+ "YAHOO.util.Event.addListener(window, 'load', cleanUpDocument(\"regionDD" + renderContext.getRegionID() + "\"));\n");
+
+
+ renderContext.getMarkupFragment().append("</script>\n\n");
+
+ portletPos.put(renderContext.getRegionID(), new Integer(0));
+ }
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ delegate.renderStart(ctx);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ delegate.renderEnd(ctx);
+ }
+
+ public int getPortletNumber(String regionId)
+ {
+
+ int number = 0;
+ if(portletPos.get(regionId) != null)
+ {
+ number = ((Integer) portletPos.get(regionId)).intValue();
+ }
+
+ portletPos.put(regionId, new Integer(++number));
+
+ return number - 1;
+ }
+
+ public void setWindowId(String portletId, String windowId)
+ {
+ windowIds.put(portletId, windowId);
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRendererTools.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRendererTools.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRendererTools.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,134 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.dynamic;
+
+/**
+ * Script inserts and debugging tools for client-side javascript
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ */
+
+import org.jboss.logging.Logger;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+public class DynaRendererTools
+{
+ private static final Logger log = Logger.getLogger(DynaRendererTools.class);
+
+ /**
+ * Javascript logger embedded in Footer. Do not move from footer, or IE will crash!
+ * TODO: Needs to be a flag in the renderer.
+ */
+ public static final String DND_FOOTERS = "\n\n\n<script type='text/javascript'>"
+ + "var myLogReader1 = new YAHOO.widget.LogReader(null, { newestOnTop: true, height: \"400px\" });"
+ + "</script>\n\n"
+ + "\n\n\n<style type=\"text/css\">\n"
+ + "#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left; width: 300px}\n"
+ + ".yui-log {background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;}\n"
+ + ".yui-log p {margin:1px;padding:.1em;}\n"
+ + ".yui-log button {font-family:monospace;}\n"
+ + ".yui-log .yui-log-hd {padding:.5em;background-color:#575757;color:#FFF;}\n"
+ + ".yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}\n"
+ + ".yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;}\n"
+ + ".yui-log .yui-log-ft .yui-log-categoryfilters {}\n"
+ + ".yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}\n"
+ + ".yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;}\n"
+ + ".yui-log .yui-log-filtergrp {margin-right:.5em;}\n"
+ + ".yui-log .info {background-color:#A7CC25;} \n"
+ + ".yui-log .warn {background-color:#F58516;}\n"
+ + ".yui-log .error {background-color:#E32F0B;} \n"
+ + ".yui-log .time {background-color:#A6C9D7;} \n"
+ + ".yui-log .window {background-color:#F2E886;} \n"
+ + "</style>\n\n";
+
+ /**
+ * Returns script tag markup for DnD
+ public static final String getScriptHeaders(String ctx)
+ {
+
+ ctx = "/portal-ajax";
+
+ StringBuffer sb = new StringBuffer();
+ sb.append("\n\n\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/yahoo/yahoo.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/event/event.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/dom/dom.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/logger/logger.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/dragdrop/dragdrop-debug.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/connection/connection.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/portal/PortalDD.js'></script>");
+ sb.append("\n\n\n");
+ return sb.toString();
+ }
+ */
+
+ /**
+ * @deprecated
+ */
+ public static Class getRendererClass(String className) throws ClassNotFoundException
+ {
+ Properties props = new Properties();
+
+ InputStream is = DynaRendererTools.class.getResourceAsStream(DND_PROP_FILENAME);
+ try
+ {
+ props.load(is);
+
+ Class clas = Thread.currentThread().getContextClassLoader().loadClass(props.getProperty(className));
+ return clas;
+ }
+ catch(IOException e)
+ {
+ log.error(e);
+ throw new ClassNotFoundException(e.getMessage());
+ }
+ }
+
+ /**
+ * @deprecated
+ */
+ public static final String DECOR_CLASS = "decorationRenderer.class";
+
+ /**
+ * @deprecated
+ */
+ public static final String PORLTET_CLASS = "portletRenderer.class";
+
+ /**
+ * @deprecated
+ */
+ public static final String REGION_CLASS = "regionRenderer.class";
+
+ /**
+ * @deprecated
+ */
+ public static final String WINDOW_CLASS = "windowRenderer.class";
+
+ /**
+ * @deprecated
+ */
+ public static final String DND_PROP_FILENAME = "/dnd.properties";
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,104 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.theme.impl.render.dynamic;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.theme.impl.render.div.DivWindowRenderer;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.WindowRenderer;
+
+/**
+ * Implementation of a drag and drop WindowRenderer.
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.WindowRenderer
+ */
+public class DynaWindowRenderer implements WindowRenderer
+{
+ private static Logger log = Logger.getLogger(DynaWindowRenderer.class);
+
+ private WindowRenderer delegate;
+
+ public DynaWindowRenderer(WindowRenderer windowRenderer) throws InstantiationException,
+ IllegalAccessException, ClassNotFoundException
+ {
+ super();
+ //delegate = (WindowRenderer) DynaRendererTools.getRendererClass(DynaRendererTools.WINDOW_CLASS).newInstance();
+ delegate = windowRenderer;
+ }
+
+ /**
+ * @see WindowRenderer#render
+ */
+ public void render(RenderContext renderContext,
+ WindowContext portletContext, WindowResult result)
+ throws RenderException
+ {
+ int portletNumber = ((DynaRegionRenderer) renderContext
+ .getRegionRenderer()).getPortletNumber(renderContext
+ .getRegionID());
+
+ ((DynaRegionRenderer) renderContext.getRegionRenderer()).setWindowId(
+ "portlet-dnd-" + renderContext.getRegionID() + "-"
+ + portletNumber, portletContext.getWindowName());
+
+ if(portletNumber == 0)
+ {
+ renderContext
+ .getMarkupFragment()
+ .append(
+ "<div style='display: none; visibility: hidden; padding: 50px; margin: 10px; border: 1px dashed black;' id='regionDrop"
+ + renderContext.getRegionID()
+ + "'>Drop your portlets here</div>");
+ }
+
+ renderContext.getMarkupFragment().append(
+ "<div id=\"portlet-dnd-" + renderContext.getRegionID() + "-"
+ + portletNumber + "\">\n");
+
+ delegate.render(renderContext, portletContext, result);
+
+ renderContext.getMarkupFragment().append("</div>");
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ delegate.renderStart(ctx);
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ delegate.renderEnd(ctx);
+ }
+}
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyDecorationRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.empty;
+
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.DecorationRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+/**
+ * Implementation of a Decoration renderer that creates no markup.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.DecorationRenderer
+ */
+public class EmptyDecorationRenderer
+ implements DecorationRenderer
+{
+ /**
+ * @see DecorationRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext state, WindowResult result)
+ throws RenderException
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyPortletRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,66 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.empty;
+
+import org.apache.log4j.Logger;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.PortletRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+/**
+ * Implementation of a Portlet renderer that create only the portlet content, no markup around it.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.PortletRenderer
+ */
+public class EmptyPortletRenderer
+ implements PortletRenderer
+{
+ private static Logger log = Logger.getLogger(EmptyPortletRenderer.class);
+
+ /**
+ * @see PortletRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext state, WindowResult result)
+ throws RenderException
+ {
+// log.debug("content of portlet: " + result.getTitle());
+ renderContext.getMarkupFragment().append(result.getContent());
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyRegionRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,89 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.empty;
+
+import org.apache.log4j.Logger;
+import org.jboss.portal.theme.page.Region;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.RegionRenderer;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Implementation of a Region renderer that creates no markup, and only passes control to the
+ * Portlet renderer of the render set provided by the render context.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.RegionRenderer
+ */
+public class EmptyRegionRenderer
+ implements RegionRenderer
+{
+ private static Logger log = Logger.getLogger(EmptyRegionRenderer.class);
+
+ /**
+ * @see RegionRenderer#render
+ */
+ public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
+ {
+ log.debug("render portlets in region : " + region.getId());
+
+ Map orderedItems = new TreeMap();
+
+ for (Iterator i = region.getWindows().iterator(); i.hasNext();)
+ {
+ WindowContext window = (WindowContext)i.next();
+ orderedItems.put(new Integer(window.getOrder()), window);
+ log.debug("got window to render: " + window.getId());
+ }
+
+ for (Iterator i = orderedItems.values().iterator(); i.hasNext();)
+ {
+ WindowContext window = (WindowContext)i.next();
+
+ WindowContext portletContext = (WindowContext)portletContexts.get(window.getId());
+ WindowResult result = (WindowResult)windowResults.get(window.getId());
+
+ renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
+ }
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext renderContext)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext renderContext)
+ {
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java (from rev 5187, trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/EmptyWindowRenderer.java 2006-09-12 19:02:13 UTC (rev 5187)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,80 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.theme.impl.render.empty;
+
+import org.jboss.portal.WindowState;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.WindowRenderer;
+
+/**
+ * Implementation of a Window renderer that creates no markup, and only passed control to the
+ * Portlet renderer.
+ *
+ * @author <a href="mailto:mholzner at novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.WindowRenderer
+ */
+public class EmptyWindowRenderer
+ implements WindowRenderer
+{
+// private static Logger log = Logger.getLogger(EmptyWindowRenderer.class);
+
+ /**
+ * @see WindowRenderer#render
+ */
+ public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
+ {
+// log.debug("render window for portlet : " + portletContext.);
+
+// try
+// {
+ WindowState windowState = renderContext.getWindowState(portletContext);
+ renderContext.getDecorationRenderer(result).render(renderContext, portletContext, result);
+ if (!WindowState.MINIMIZED.equals(windowState))
+ {
+ renderContext.getPortletRenderer(result).render(renderContext, portletContext, result);
+ }
+// }
+// catch (ThemeException e)
+// {
+// // the portlet state is not known (the portlet registration is gone), handle it
+// e.printStackTrace(); //+++TODO
+// }
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderStart
+ */
+ public void renderStart(RenderContext ctx)
+ {
+ }
+
+ /**
+ * @see org.jboss.portal.theme.render.Renderer#renderEnd
+ */
+ public void renderEnd(RenderContext ctx)
+ {
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/theme/src/main/org/jboss/portal/theme/metadata/RendererSetMetaData.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/metadata/RendererSetMetaData.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/metadata/RendererSetMetaData.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -30,19 +30,21 @@
* <p/>
* <portal-renderSet>
* <renderSet name="divRenderer">
+ * <ajax enabled="true"/>
* <set content-type="text/html">
- * <region-renderer>org.jboss.portal.theme.impl.render.DivRegionRenderer</region-renderer>
- * <window-renderer>org.jboss.portal.theme.impl.render.DivWindowRenderer</window-renderer>
- * <portlet-renderer>org.jboss.portal.theme.impl.render.DivPortletRenderer</portlet-renderer>
- * <decoration-renderer>org.jboss.portal.theme.impl.render.DivDecorationRenderer</decoration-renderer>
+ * <region-renderer>org.jboss.portal.theme.impl.render.div.DivRegionRenderer</region-renderer>
+ * <window-renderer>org.jboss.portal.theme.impl.render.div.DivWindowRenderer</window-renderer>
+ * <portlet-renderer>org.jboss.portal.theme.impl.render.div.DivPortletRenderer</portlet-renderer>
+ * <decoration-renderer>org.jboss.portal.theme.impl.render.div.DivDecorationRenderer</decoration-renderer>
* </set>
* </renderSet>
* <renderSet name="emptyRenderer">
+ * <ajax enabled="true"/>
* <set content-type="text/html">
- * <region-renderer>org.jboss.portal.theme.impl.render.EmptyRegionRenderer</region-renderer>
- * <window-renderer>org.jboss.portal.theme.impl.render.EmptyWindowRenderer</window-renderer>
- * <portlet-renderer>org.jboss.portal.theme.impl.render.EmptyPortletRenderer</portlet-renderer>
- * <decoration-renderer>org.jboss.portal.theme.impl.render.EmptyDecorationRenderer</decoration-renderer>
+ * <region-renderer>org.jboss.portal.theme.impl.render.empty.EmptyRegionRenderer</region-renderer>
+ * <window-renderer>org.jboss.portal.theme.impl.render.empty.EmptyWindowRenderer</window-renderer>
+ * <portlet-renderer>org.jboss.portal.theme.impl.render.empty.EmptyPortletRenderer</portlet-renderer>
+ * <decoration-renderer>org.jboss.portal.theme.impl.render.empty.EmptyDecorationRenderer</decoration-renderer>
* </set>
* </renderSet>
* </portal-renderSet>
@@ -54,12 +56,12 @@
*/
public class RendererSetMetaData
{
-
private MediaType contentType;
private String regionRenderer;
private String windowRenderer;
private String decorationRenderer;
private String portletRenderer;
+ private boolean ajaxEnabled;
public MediaType getContentType()
{
@@ -110,4 +112,14 @@
{
this.portletRenderer = portletRenderer;
}
+
+ public boolean isAjaxEnabled()
+ {
+ return ajaxEnabled;
+ }
+
+ public void setAjaxEnabled(boolean ajaxEnabled)
+ {
+ this.ajaxEnabled = ajaxEnabled;
+ }
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -22,8 +22,12 @@
package org.jboss.portal.theme.render;
import org.jboss.portal.common.MediaType;
+import org.jboss.portal.theme.RuntimeContext;
import org.jboss.portal.theme.ServerRegistrationID;
-import org.jboss.portal.theme.RuntimeContext;
+import org.jboss.portal.theme.impl.render.dynamic.DynaDecorationRenderer;
+import org.jboss.portal.theme.impl.render.dynamic.DynaPortletRenderer;
+import org.jboss.portal.theme.impl.render.dynamic.DynaRegionRenderer;
+import org.jboss.portal.theme.impl.render.dynamic.DynaWindowRenderer;
import org.jboss.portal.theme.metadata.RendererSetMetaData;
/**
@@ -45,13 +49,14 @@
private final String appID;
private final String name;
private final ServerRegistrationID registrationId;
+ private final boolean ajaxEnabled;
/**
* construct a render set
*
* @param renderSetName the name of the render set as defined in the portal-renderSet.xml descriptor, or null if it was defined as part of a layout descriptor.
* @param runtimeContext the runtime environment (data describing the portal web application in wich the render set was defined)
- * @param rendererSetMD meta data about an individual set of 4 renderer implementation together with their supported content type
+ * @param rendererSetMD meta data about an individual set of 4 renderer implementation together with their supported content type
* @throws IllegalAccessException
* @throws InstantiationException
* @throws ClassNotFoundException
@@ -60,11 +65,11 @@
{
// there CAN be render sets without a name !
- if (runtimeContext == null)
+ if(runtimeContext == null)
{
throw new IllegalArgumentException("no valid container");
}
- if (rendererSetMD == null)
+ if(rendererSetMD == null)
{
throw new IllegalArgumentException("no valid set");
}
@@ -72,11 +77,22 @@
this.appID = runtimeContext.getAppId();
this.registrationId = ServerRegistrationID.createID(ServerRegistrationID.TYPE_STRATEGY, new String[]{appID, name});
this.contentType = rendererSetMD.getContentType();
+ this.ajaxEnabled = rendererSetMD.isAjaxEnabled();
- this.regionRenderer = (RegionRenderer)loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getRegionRenderer());
- this.windowRenderer = (WindowRenderer)loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getWindowRenderer());
- this.portletRenderer = (PortletRenderer)loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getPortletRenderer());
- this.decorationRenderer = (DecorationRenderer)loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getDecorationRenderer());
+ if(ajaxEnabled) // wrap the current renderer with the ajax delegator one.
+ {
+ this.regionRenderer = new DynaRegionRenderer((RegionRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getRegionRenderer()));
+ this.windowRenderer = new DynaWindowRenderer((WindowRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getWindowRenderer()));
+ this.portletRenderer = new DynaPortletRenderer((PortletRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getPortletRenderer()));
+ this.decorationRenderer = new DynaDecorationRenderer((DecorationRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getDecorationRenderer()));
+ }
+ else
+ {
+ this.regionRenderer = (RegionRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getRegionRenderer());
+ this.windowRenderer = (WindowRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getWindowRenderer());
+ this.portletRenderer = (PortletRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getPortletRenderer());
+ this.decorationRenderer = (DecorationRenderer) loadRenderer(runtimeContext.getClassLoader(), rendererSetMD.getDecorationRenderer());
+ }
}
public ServerRegistrationID getRegistrationId()
@@ -150,12 +166,12 @@
public String toString()
{
return "PortalRenderSet: " + getAppId() + "." + (getName() == null ? "<from layout>" : getName()) + ": " +
- getMediaType() + " [" + getRegionRenderer() + "][" + getWindowRenderer() + "][" + getDecorationRenderer() +
- "][" + getPortletRenderer() + "]";
+ getMediaType() + " [" + getRegionRenderer() + "][" + getWindowRenderer() + "][" + getDecorationRenderer() +
+ "][" + getPortletRenderer() + "]";
}
private Renderer loadRenderer(ClassLoader loader, String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException
{
- return (Renderer)loader.loadClass(className).newInstance();
+ return (Renderer) loader.loadClass(className).newInstance();
}
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/region/AJAXScripts.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/region/AJAXScripts.java 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/region/AJAXScripts.java 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,56 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.theme.render.region;
+
+/**
+ * Insert needed AJAX scripts, at the top of the page.
+ *
+ * @author <a href="mailto:roy at jboss.org">Roy Russo</a>
+ */
+
+public class AJAXScripts
+{
+ /**
+ * Returns output for rendering in region tag.
+ *
+ * @param s
+ * @return output for rendering
+ */
+ public String render(String s)
+ {
+ String ctx = "/portal-ajax";
+
+ StringBuffer sb = new StringBuffer();
+ sb.append("\n\n\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/yahoo/yahoo.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/event/event.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/dom/dom.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/logger/logger.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/dragdrop/dragdrop-debug.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/connection/connection.js'></script>\n");
+ sb.append("<script type='text/javascript' src='").append(ctx).append("/js/portal/PortalDD.js'></script>");
+ sb.append("\n\n\n");
+
+ return sb.toString();
+ }
+}
Added: trunk/theme/src/resources/portal-ajax-war/WEB-INF/jboss-web.xml
===================================================================
--- trunk/theme/src/resources/portal-ajax-war/WEB-INF/jboss-web.xml 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/resources/portal-ajax-war/WEB-INF/jboss-web.xml 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<jboss-web>
+</jboss-web>
\ No newline at end of file
Added: trunk/theme/src/resources/portal-ajax-war/WEB-INF/web.xml
===================================================================
--- trunk/theme/src/resources/portal-ajax-war/WEB-INF/web.xml 2006-09-14 17:14:17 UTC (rev 5201)
+++ trunk/theme/src/resources/portal-ajax-war/WEB-INF/web.xml 2006-09-14 20:14:36 UTC (rev 5202)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+</web-app>
More information about the jboss-svn-commits
mailing list