[jboss-svn-commits] JBoss Portal SVN: r5373 - in trunk: core/src/main/org/jboss/portal/core/controller/ajax core/src/main/org/jboss/portal/core/controller/command 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 13:20:02 EDT 2006
Author: julien at jboss.com
Date: 2006-10-09 13:19:55 -0400 (Mon, 09 Oct 2006)
New Revision: 5373
Modified:
trunk/core/src/main/org/jboss/portal/core/controller/ajax/AjaxController.java
trunk/core/src/main/org/jboss/portal/core/controller/command/MoveWindowCommand.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
Log:
break the limits of 2 regions and provide the region id in the callback to the server
Modified: trunk/core/src/main/org/jboss/portal/core/controller/ajax/AjaxController.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/controller/ajax/AjaxController.java 2006-10-09 15:17:40 UTC (rev 5372)
+++ trunk/core/src/main/org/jboss/portal/core/controller/ajax/AjaxController.java 2006-10-09 17:19:55 UTC (rev 5373)
@@ -51,12 +51,12 @@
{
String windowId = req.getParameter("windowId");
String fromPos = req.getParameter("fromPos");
- String fromRegion = req.getParameter("fromRegion");
+ String fromRegionId = req.getParameter("fromRegionId");
String toPos = req.getParameter("toPos");
- String toRegion = req.getParameter("toRegion");
+ String toRegionId = req.getParameter("toRegionId");
int fromPosInt = Integer.parseInt(fromPos);
int toPosInt = Integer.parseInt(toPos);
- ControllerCommand cmd = new MoveWindowCommand(windowId, fromPosInt, fromRegion, toPosInt, toRegion);
+ ControllerCommand cmd = new MoveWindowCommand(windowId, fromPosInt, fromRegionId, toPosInt, toRegionId);
ControllerContext controllerContext = new ControllerContext(invocation, this);
try
{
Modified: trunk/core/src/main/org/jboss/portal/core/controller/command/MoveWindowCommand.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/controller/command/MoveWindowCommand.java 2006-10-09 15:17:40 UTC (rev 5372)
+++ trunk/core/src/main/org/jboss/portal/core/controller/command/MoveWindowCommand.java 2006-10-09 17:19:55 UTC (rev 5373)
@@ -24,13 +24,7 @@
import org.jboss.portal.core.controller.command.info.CommandInfo;
import org.jboss.portal.core.controller.command.info.ActionCommandInfo;
import org.jboss.portal.core.controller.ControllerException;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.theme.navigation.PageNavigationalState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.common.invocation.AttributeResolver;
-import java.util.Iterator;
-
/**
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
@@ -45,22 +39,22 @@
private int fromPos;
/** . */
- private String fromRegion;
+ private String fromRegionId;
/** . */
private int toPos;
/** . */
- private String toRegion;
+ private String toRegionId;
public MoveWindowCommand(String windowRef, int fromPos, String fromRegion, int toPos, String toRegion)
throws IllegalArgumentException
{
super(windowRef);
this.fromPos = fromPos;
- this.fromRegion = fromRegion;
+ this.fromRegionId = fromRegion;
this.toPos = toPos;
- this.toRegion = toRegion;
+ this.toRegionId = toRegion;
}
public CommandInfo getInfo()
@@ -72,9 +66,9 @@
{
System.out.println("windowRef = " + windowRef);
- System.out.println("fromRegion = " + fromRegion);
+ System.out.println("fromRegion = " + fromRegionId);
System.out.println("fromPos = " + fromPos);
- System.out.println("toRegion = " + toRegion);
+ System.out.println("toRegion = " + toRegionId);
System.out.println("toPos = " + toPos);
// // For now just update the navigational state of the page
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 15:17:40 UTC (rev 5372)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2006-10-09 17:19:55 UTC (rev 5373)
@@ -72,27 +72,128 @@
// Handle special ajax region here
if ("AJAXFooter".equals(region.getId()))
{
- markup.append("\n\n<script type='text/javascript' src='").append(jsBase).append("/js/portal/event.js'></script>\n\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");
+
+ //
+ markup.append("Draggables.addObserver(new WindowMoveObserver());\n");
+
+ //
+ markup.append("snapshot();\n");
+
+ markup.append("</script>\n");
}
else if ("AJAXScripts".equals(region.getId()))
{
markup.append("\n\n\n");
- markup.append("<script type='text/javascript'>\n");
- markup.append("remote_server_url=\"");
- markup.append(remoteURL);
- markup.append(";\"\n");
- markup.append("</script>\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");
+
+ markup.append("regions_on_page = new Object();\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);
+
+ //
+ 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(t);
+
+ 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("</script>\n");
markup.append("\n\n\n");
}
-
+ else
+ {
+ markup.append(
+ "<script>" +
+ "regions_on_page[\"" + renderContext.getRegionID() + "\"]=\"" + region.getId() + "\";" +
+ "</script>");
+ }
+
+ //
delegate.render(renderContext, region, portletContexts, windowResults);
- if(portletPos.get(renderContext.getRegionID()) != null
- && ((Integer) portletPos.get(renderContext.getRegionID())).intValue() > 0)
+ //
+ if(portletPos.get(renderContext.getRegionID()) != null && ((Integer) portletPos.get(renderContext.getRegionID())).intValue() > 0)
{
portletPos.put(renderContext.getRegionID(), new Integer(0));
}
More information about the jboss-svn-commits
mailing list