[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