[jboss-svn-commits] JBoss Portal SVN: r5380 - in trunk: core/src/main/org/jboss/portal/core/aspects/controller core/src/resources/portal-samples-war/WEB-INF theme/src/main/org/jboss/portal/theme/impl/render/dynamic
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Oct 9 16:25:10 EDT 2006
Author: julien at jboss.com
Date: 2006-10-09 16:25:00 -0400 (Mon, 09 Oct 2006)
New Revision: 5380
Modified:
trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
trunk/core/src/resources/portal-samples-war/WEB-INF/default-object.xml
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/DynaWindowRenderer.java
Log:
propagate ajax disabling in other dyna renderers
Modified: trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java 2006-10-09 19:49:08 UTC (rev 5379)
+++ trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java 2006-10-09 20:25:00 UTC (rev 5380)
@@ -107,7 +107,6 @@
if (dashboardNav != null)
{
Map windowProps = new HashMap();
- windowProps.put(ThemeConstants.PORTAL_AJAX_OBJECT_DISABLED, "true");
windowProps.put(ThemeConstants.PORTAL_PROP_WINDOW_RENDERER, "emptyRenderer");
windowProps.put(ThemeConstants.PORTAL_PROP_DECORATION_RENDERER, "emptyRenderer");
windowProps.put(ThemeConstants.PORTAL_PROP_PORTLET_RENDERER, "emptyRenderer");
Modified: trunk/core/src/resources/portal-samples-war/WEB-INF/default-object.xml
===================================================================
--- trunk/core/src/resources/portal-samples-war/WEB-INF/default-object.xml 2006-10-09 19:49:08 UTC (rev 5379)
+++ trunk/core/src/resources/portal-samples-war/WEB-INF/default-object.xml 2006-10-09 20:25:00 UTC (rev 5380)
@@ -6,6 +6,12 @@
<page>
<page-name>Test</page-name>
<listener>test_listener</listener>
+ <properties>
+ <property>
+ <name>theme.ajax.object_disabled</name>
+ <value>true</value>
+ </property>
+ </properties>
<window>
<window-name>TestPortletWindow</window-name>
<instance-ref>TestPortletInstance</instance-ref>
Modified: 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-10-09 19:49:08 UTC (rev 5379)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java 2006-10-09 20:25:00 UTC (rev 5380)
@@ -79,27 +79,29 @@
/**
* @see DecorationRenderer#render
*/
- public void render(RenderContext renderContext,
- WindowContext windowContext, WindowResult result)
- throws RenderException
+ public void render(RenderContext renderContext, WindowContext windowContext, WindowResult result) throws RenderException
{
- log.debug("decorate " + result.getTitle());
-
- // we don't need a title bar on empty renderers, but we want titlebar handles on others.
- if(!(delegate instanceof EmptyDecorationRenderer))
+ if (DynaRegionRenderer.isEnabled())
{
- StringBuffer markup = renderContext.getMarkupFragment();
- markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
- markup.append("<td class=\"portlet-titlebar-center handle\">");
- renderTitle(renderContext, result);
- markup.append("<div class=\"portlet-mode-container\">");
- renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
- renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
- renderRemoveLink(renderContext, windowContext);
+ // we don't need a title bar on empty renderers, but we want titlebar handles on others.
+ if(!(delegate instanceof EmptyDecorationRenderer))
+ {
+ StringBuffer markup = renderContext.getMarkupFragment();
+ markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
+ markup.append("<td class=\"portlet-titlebar-center handle\">");
+ renderTitle(renderContext, result);
+ markup.append("<div class=\"portlet-mode-container\">");
+ renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
+ renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
+ renderRemoveLink(renderContext, windowContext);
- markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
+ markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
+ }
}
- log.debug("decoration is done");
+ else
+ {
+ delegate.render(renderContext, windowContext, result);
+ }
}
private static void renderRemoveLink(RenderContext renderContext, WindowContext windowContext)
Modified: 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-10-09 19:49:08 UTC (rev 5379)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java 2006-10-09 20:25:00 UTC (rev 5380)
@@ -53,14 +53,20 @@
/**
* @see PortletRenderer#render
*/
- public void render(RenderContext renderContext, WindowContext state,
- WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, WindowContext state, WindowResult result) throws RenderException
{
- if(delegate instanceof EmptyPortletRenderer)
+ if (DynaRegionRenderer.isEnabled())
{
- renderContext.getMarkupFragment().append("<span class=\"handle\">");
- delegate.render(renderContext, state, result);
- renderContext.getMarkupFragment().append("</span>");
+ if(delegate instanceof EmptyPortletRenderer)
+ {
+ renderContext.getMarkupFragment().append("<span class=\"handle\">");
+ delegate.render(renderContext, state, result);
+ renderContext.getMarkupFragment().append("</span>");
+ }
+ else
+ {
+ delegate.render(renderContext, state, result);
+ }
}
else
{
Modified: 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-10-09 19:49:08 UTC (rev 5379)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2006-10-09 20:25:00 UTC (rev 5380)
@@ -39,199 +39,241 @@
* @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>
+public class DynaRegionRenderer implements RegionRenderer
+{
+ private Map portletPos = new HashMap(); //<String, Integer>
- private Map windowIds = new HashMap();
+ private Map windowIds = new HashMap();
- private final static Logger log = Logger.getLogger(DynaRegionRenderer.class);
+ private final static Logger log = Logger.getLogger(DynaRegionRenderer.class);
- private RegionRenderer delegate;
+ private RegionRenderer delegate;
- public DynaRegionRenderer(RegionRenderer regionRenderer) throws InstantiationException,
- IllegalAccessException, ClassNotFoundException {
- super();
- delegate = regionRenderer;
- }
+ private static final ThreadLocal disabledLocal = new ThreadLocal();
- /**
- * @see RegionRenderer#render
- */
- public void render(RenderContext renderContext, Region region,
- Map portletContexts, Map windowResults) throws RenderException {
- Map pageProps = renderContext.getPageProperties();
+ public static boolean isEnabled()
+ {
+ return Boolean.TRUE.equals(disabledLocal.get()) == false;
+ }
+ public DynaRegionRenderer(RegionRenderer regionRenderer) throws InstantiationException,
+ IllegalAccessException, ClassNotFoundException
+ {
+ super();
+ delegate = regionRenderer;
+ }
- StringBuffer markup = renderContext.getMarkupFragment();
- String jsBase = (String) pageProps.get(ThemeConstants.PORTAL_AJAX_JAVASCRIPT_BASE);
- String remoteURL = (String) pageProps.get(ThemeConstants.PORTAL_AJAX_REMOTE_URL);
+ /**
+ * @see RegionRenderer#render
+ */
+ public void render(RenderContext renderContext, Region region,
+ Map portletContexts, Map windowResults) throws RenderException
+ {
+ Map pageProps = renderContext.getPageProperties();
- // Handle special ajax region here
- if ("AJAXFooter".equals(region.getId())) {
- markup.append("<script>\n");
- markup.append(
- "\n" +
- "var toto = new Array();\n" +
- "for(region in regions_on_page) {\n" +
- " toto.push(region);\n" +
- "}\n" +
- "for(region in regions_on_page) {\n" +
- "Sortable.create(region, {dropOnEmpty:true,handle:'handle',tag:'div',containment:toto,constraint:false, ghosting: false,\n" +
- " onChange: function(el)\n" +
- " {\n" +
- " },\n" +
- " onUpdate: function (el)\n" +
- " {\n" +
- " }\n" +
- "});\n" +
- "}\n");
- //
- markup.append("Draggables.addObserver(new WindowMoveObserver());\n");
+ StringBuffer markup = renderContext.getMarkupFragment();
+ String jsBase = (String)pageProps.get(ThemeConstants.PORTAL_AJAX_JAVASCRIPT_BASE);
+ String remoteURL = (String)pageProps.get(ThemeConstants.PORTAL_AJAX_REMOTE_URL);
- //
- markup.append("snapshot();\n");
+ //
+ Boolean disabled = null;
+ if ("true".equals(region.getProperty(ThemeConstants.PORTAL_AJAX_OBJECT_DISABLED)))
+ {
+ disabled = Boolean.TRUE;
+ }
+ else if ("true".equals(renderContext.getPageProperties().get(ThemeConstants.PORTAL_AJAX_OBJECT_DISABLED)))
+ {
+ disabled = Boolean.TRUE;
+ }
- markup.append("</script>\n");
- } else if ("AJAXScripts".equals(region.getId())) {
- markup.append("\n\n\n");
- markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/prototype.js'></script>\n");
- markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/scriptaculous.js'></script>\n");
- markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/effects.js'></script>\n");
- markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/dragdrop.js'></script>\n");
- markup.append("<script type='text/javascript'>\n");
- markup.append("remote_server_url=\"").append(remoteURL).append(";\"\n");
+ // Handle special ajax region here
+ if ("AJAXFooter".equals(region.getId()))
+ {
+ disabled = Boolean.TRUE;
- markup.append("regions_on_page = new Object();\n");
+ markup.append("<script>\n");
+ markup.append(
+ "\n" +
+ "var toto = new Array();\n" +
+ "for(region in regions_on_page) {\n" +
+ " toto.push(region);\n" +
+ "}\n" +
+ "for(region in regions_on_page) {\n" +
+ "Sortable.create(region, {dropOnEmpty:true,handle:'handle',tag:'div',containment:toto,constraint:false, ghosting: false,\n" +
+ " onChange: function(el)\n" +
+ " {\n" +
+ " },\n" +
+ " onUpdate: function (el)\n" +
+ " {\n" +
+ " }\n" +
+ "});\n" +
+ "}\n");
- String sendData =
- "function sendData(action, windowId, fromPos, fromRegionId, toPos, toRegionId)\n" +
- "{\n" +
- " var options = {\n" +
- " method: 'post',\n" +
- " postBody: 'action=' + action + '&windowId=' + windowId + '&fromPos=' + fromPos + '&fromRegionId=' + fromRegionId + '&toPos=' + toPos + '&toRegionId=' + toRegionId,\n" +
- " onSuccess: function(t)\n" +
- " {\n" +
- " },\n" +
- " onSuccess: function(t)\n" +
- " {\n" +
- " },\n" +
- " on404: function(t)\n" +
- " {\n" +
- " alert('Error 404: location \"' + t.statusText + '\" was not found.');\n" +
- " },\n" +
- " onFailure: function(t)\n" +
- " {\n" +
- " alert('Error ' + t.status + ' -- ' + t.statusText);\n" +
- " },\n" +
- " onLoading: function(t)\n" +
- " {\n" +
- " }\n" +
- " }\n" +
- " new Ajax.Request(remote_server_url, options);\n" +
- "}";
- markup.append(sendData);
+ //
+ markup.append("Draggables.addObserver(new WindowMoveObserver());\n");
- //
- String t =
- "function snapshot() {\n" +
- "for(region in regions_on_page) {\n" +
- "var regionId = regions_on_page[region];\n" +
- "var regionDiv = $(region);\n" +
- "for (var i = 0;i < regionDiv.childNodes.length;i++) {\n" +
- "var child = regionDiv.childNodes[i];\n" +
- "child['regionId'] = regionId;\n" +
- "child['pos'] = i;\n" +
- "}\n" +
- "}\n" +
- "\n}";
+ //
+ markup.append("snapshot();\n");
- markup.append(t);
+ markup.append("</script>\n");
+ }
+ else if ("AJAXScripts".equals(region.getId()))
+ {
+ disabled = Boolean.TRUE;
- String s =
- " var WindowMoveObserver = Class.create();\n" +
- " WindowMoveObserver.prototype =\n" +
- " {\n" +
- " initialize: function(element)\n" +
- " {\n" +
- " this.element = $(element);\n" +
- " },\n" +
- " onStart: function()\n" +
- " {\n" +
- " },\n" +
- " onEnd: function()\n" +
- " {\n" +
- " var elt = Draggables.activeDraggable.element;\n" +
- " var fromRegionId = elt['regionId'];\n" +
- " var fromPos = elt['pos'];\n" +
- " snapshot();\n" +
- " var toRegionId = elt['regionId'];\n" +
- " var toPos = elt['pos'];\n" +
- " sendData('windowmove', elt.id, fromPos, fromRegionId, toPos, toRegionId);\n" +
- " }\n" +
- " };\n";
- markup.append(s);
+ markup.append("\n\n\n");
+ markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/prototype.js'></script>\n");
+ markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/scriptaculous.js'></script>\n");
+ markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/effects.js'></script>\n");
+ markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/dragdrop.js'></script>\n");
+ markup.append("<script type='text/javascript'>\n");
+ markup.append("remote_server_url=\"").append(remoteURL).append(";\"\n");
- String u = "function removeWindow(elementId)\n" +
- "{\n" +
- " var effectElement = document.getElementById(elementId)\n" +
- " new Effect.BlindUp(effectElement);\n" +
- "\n" +
- " //removeElement(effectElement);\n" +
- "\n" +
- " sendData('windowremove', elementId);\n" +
- "}";
- markup.append(u);
+ markup.append("regions_on_page = new Object();\n");
- markup.append("</script>\n");
- markup.append("\n\n\n");
- }
- else
- {
- if ("true".equals(region.getProperty(ThemeConstants.PORTAL_AJAX_OBJECT_DISABLED)) == false)
- {
- markup.append(
- "<script>" +
- "regions_on_page[\"" + renderContext.getRegionID() + "\"]=\"" + region.getId() + "\";" +
- "</script>");
- }
- }
+ String sendData =
+ "function sendData(action, windowId, fromPos, fromRegionId, toPos, toRegionId)\n" +
+ "{\n" +
+ " var options = {\n" +
+ " method: 'post',\n" +
+ " postBody: 'action=' + action + '&windowId=' + windowId + '&fromPos=' + fromPos + '&fromRegionId=' + fromRegionId + '&toPos=' + toPos + '&toRegionId=' + toRegionId,\n" +
+ " onSuccess: function(t)\n" +
+ " {\n" +
+ " },\n" +
+ " onSuccess: function(t)\n" +
+ " {\n" +
+ " },\n" +
+ " on404: function(t)\n" +
+ " {\n" +
+ " alert('Error 404: location \"' + t.statusText + '\" was not found.');\n" +
+ " },\n" +
+ " onFailure: function(t)\n" +
+ " {\n" +
+ " alert('Error ' + t.status + ' -- ' + t.statusText);\n" +
+ " },\n" +
+ " onLoading: function(t)\n" +
+ " {\n" +
+ " }\n" +
+ " }\n" +
+ " new Ajax.Request(remote_server_url, options);\n" +
+ "}";
+ markup.append(sendData);
- //
- delegate.render(renderContext, region, portletContexts, windowResults);
+ //
+ String t =
+ "function snapshot() {\n" +
+ "for(region in regions_on_page) {\n" +
+ "var regionId = regions_on_page[region];\n" +
+ "var regionDiv = $(region);\n" +
+ "for (var i = 0;i < regionDiv.childNodes.length;i++) {\n" +
+ "var child = regionDiv.childNodes[i];\n" +
+ "child['regionId'] = regionId;\n" +
+ "child['pos'] = i;\n" +
+ "}\n" +
+ "}\n" +
+ "\n}";
- //
- if (portletPos.get(renderContext.getRegionID()) != null && ((Integer) portletPos.get(renderContext.getRegionID())).intValue() > 0) {
- portletPos.put(renderContext.getRegionID(), new Integer(0));
- }
- }
+ markup.append(t);
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderStart(RenderContext ctx) {
- delegate.renderStart(ctx);
- }
+ String s =
+ " var WindowMoveObserver = Class.create();\n" +
+ " WindowMoveObserver.prototype =\n" +
+ " {\n" +
+ " initialize: function(element)\n" +
+ " {\n" +
+ " this.element = $(element);\n" +
+ " },\n" +
+ " onStart: function()\n" +
+ " {\n" +
+ " },\n" +
+ " onEnd: function()\n" +
+ " {\n" +
+ " var elt = Draggables.activeDraggable.element;\n" +
+ " var fromRegionId = elt['regionId'];\n" +
+ " var fromPos = elt['pos'];\n" +
+ " snapshot();\n" +
+ " var toRegionId = elt['regionId'];\n" +
+ " var toPos = elt['pos'];\n" +
+ " sendData('windowmove', elt.id, fromPos, fromRegionId, toPos, toRegionId);\n" +
+ " }\n" +
+ " };\n";
+ markup.append(s);
- /**
- * @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext)
- */
- public void renderEnd(RenderContext ctx) {
- delegate.renderEnd(ctx);
- }
+ String u = "function removeWindow(elementId)\n" +
+ "{\n" +
+ " var effectElement = document.getElementById(elementId)\n" +
+ " new Effect.BlindUp(effectElement);\n" +
+ "\n" +
+ " //removeElement(effectElement);\n" +
+ "\n" +
+ " sendData('windowremove', elementId);\n" +
+ "}";
+ markup.append(u);
- public int getPortletNumber(String regionId) {
- int number = 0;
- if (portletPos.get(regionId) != null) {
- number = ((Integer) portletPos.get(regionId)).intValue();
- }
+ markup.append("</script>\n");
+ markup.append("\n\n\n");
+ }
- portletPos.put(regionId, new Integer(++number));
+ if (Boolean.TRUE.equals(disabled) == false)
+ {
+ markup.append(
+ "<script>" +
+ "regions_on_page[\"" + renderContext.getRegionID() + "\"]=\"" + region.getId() + "\";" +
+ "</script>");
+ }
- return number - 1;
- }
+ //
+ try
+ {
+ disabledLocal.set(disabled);
- public void setWindowId(String portletId, String windowId) {
- windowIds.put(portletId, windowId);
- }
+ //
+ delegate.render(renderContext, region, portletContexts, windowResults);
+ }
+ finally
+ {
+ disabledLocal.set(null);
+ }
+
+ //
+ if (portletPos.get(renderContext.getRegionID()) != null && ((Integer)portletPos.get(renderContext.getRegionID())).intValue() > 0)
+ {
+ 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);
+ }
}
Modified: 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-10-09 19:49:08 UTC (rev 5379)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2006-10-09 20:25:00 UTC (rev 5380)
@@ -53,23 +53,28 @@
/**
* @see WindowRenderer#render
*/
- public void render(RenderContext renderContext,
- WindowContext portletContext, WindowResult result)
- throws RenderException
+ public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
{
- int portletNumber = ((DynaRegionRenderer) renderContext
- .getRegionRenderer()).getPortletNumber(renderContext
- .getRegionID());
+ if (DynaRegionRenderer.isEnabled())
+ {
+ int portletNumber = ((DynaRegionRenderer) renderContext
+ .getRegionRenderer()).getPortletNumber(renderContext
+ .getRegionID());
- ((DynaRegionRenderer) renderContext.getRegionRenderer()).setWindowId(
- "portlet-dnd-" + renderContext.getRegionID() + "-"
- + portletNumber, portletContext.getWindowName());
+ ((DynaRegionRenderer) renderContext.getRegionRenderer()).setWindowId(
+ "portlet-dnd-" + renderContext.getRegionID() + "-"
+ + portletNumber, portletContext.getWindowName());
- renderContext.getMarkupFragment().append("<div id=\"").append(portletContext.getId()).append("\">\n");
+ renderContext.getMarkupFragment().append("<div id=\"").append(portletContext.getId()).append("\">\n");
- delegate.render(renderContext, portletContext, result);
+ delegate.render(renderContext, portletContext, result);
- renderContext.getMarkupFragment().append("</div>");
+ renderContext.getMarkupFragment().append("</div>");
+ }
+ else
+ {
+ delegate.render(renderContext, portletContext, result);
+ }
}
/**
More information about the jboss-svn-commits
mailing list