[jboss-svn-commits] JBL Code SVN: r5983 - in labs/jbosslabs/trunk/portal-extensions/portal-dnd: dndRenderer.war/js/portal src/java/org/jboss/portal/core/theme/render/impl src/java/org/jboss/portal/dnd
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 25 16:26:14 EDT 2006
Author: szimano
Date: 2006-08-25 16:26:11 -0400 (Fri, 25 Aug 2006)
New Revision: 5983
Modified:
labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/portal/PortalDD.js
labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDRegionRenderer.java
labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDTools.java
labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDWindowRenderer.java
labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/dnd/DnDAjaxServlet.java
Log:
ajax calls for position persistance JBLAB-728
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/portal/PortalDD.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/portal/PortalDD.js 2006-08-25 16:17:41 UTC (rev 5982)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/portal/PortalDD.js 2006-08-25 20:26:11 UTC (rev 5983)
@@ -1,9 +1,31 @@
log = new YAHOO.widget.LogWriter("portalDnD");
-function getPortletRegion(portletId) {
+var borderBefore = "";
+var borderTopBefore = "";
+function getBorder(id) {
+ YAHOO.util.Dom.setStyle(id, "border-top", borderTopBefore);
+ YAHOO.util.Dom.setStyle(id, "border", borderBefore);
+ borderBefore = "";
+ borderTopBefore = "";
}
+function setBorder(id) {
+ if (borderBefore.length == 0) {
+ borderTopBefore = YAHOO.util.Dom.getStyle(id, "border-top");
+ borderBefore = YAHOO.util.Dom.getStyle(id, "border");
+ }
+
+ YAHOO.util.Dom.setStyle(id, "border-top", "2px solid red");
+}
+
+function persitNewPosition(positionNo, windowId, oldRegionId, newRegionId) {
+ postData = "action=PERSIST&positionNo="+encodeURI(positionNo)+"&windowId="+encodeURI(windowId)+"&oldRegionId="+encodeURI(oldRegionId)+"&newRegionId="+encodeURI(newRegionId);
+
+ log.log(postData);
+ invokeAjax(postData);
+}
+
function invokeAjax(postData) {
var handleSuccess = function(o){
@@ -13,7 +35,7 @@
log.log("HTTP status: " + o.status);
log.log("Status code message: " + o.statusText);
log.log("<li>HTTP headers: <ul>" + o.getAllResponseHeaders + "</ul></li>");
- log.log("PHP response: " + o.responseText);
+ log.log("Servlet response: " + o.responseText);
log.log("Argument object: " + o.argument);
}
}
@@ -45,20 +67,20 @@
YAHOO.util.PortalDD.superclass.onDragOver.call(this, e, id);
// draw a border around dropto portlet
- YAHOO.util.Dom.setStyle(id, "border-top", "2px solid red");
+ setBorder(id);
}
YAHOO.util.PortalDD.prototype.onDragOut = function(e, id) {
YAHOO.util.PortalDD.superclass.onDragOut.call(this, e, id);
// remove the border around dropto portlet
- YAHOO.util.Dom.setStyle(id, "border-top", "0px");
+ getBorder(id);
}
YAHOO.util.PortalDD.prototype.onDragDrop = function(e, id) {
// remove the border around dropto portlet
- YAHOO.util.Dom.setStyle(id, "border-top", "0px");
+ getBorder(id);
var el = this.getEl();
var droped = document.getElementById(id);
@@ -95,7 +117,8 @@
var adding = false;
// move down all the nodes under the portlet (including dropto portlet)
- for (var i = 0;(nodeList.item(i) != el) && (i < nodeList.length); i++) {
+ var i = 0;
+ while ((nodeList.item(i) != el) && (i < nodeList.length)) {
var nextNode = nodeList.item(i);
if (!adding && nextNode == droped) {
adding = true;
@@ -104,8 +127,17 @@
if (adding) {
dropedParent.appendChild(nextNode);
}
+ else {
+ i++;
+ }
}
+ if (nodeList.item(0).id.indexOf("regionDrop") == 0) {
+ i--;
+ }
+
+ log.log("new position: "+i+ " " + this.windowId);
+ persitNewPosition(i, this.windowId, thisParent.regionId, dropedParent.regionId);
};
YAHOO.util.PortalDD.prototype.endDrag = function(e) {
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDRegionRenderer.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDRegionRenderer.java 2006-08-25 16:17:41 UTC (rev 5982)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDRegionRenderer.java 2006-08-25 20:26:11 UTC (rev 5983)
@@ -50,6 +50,8 @@
private Map<String, String> portletRegions = new HashMap<String, String>();
+ private Map<String, String> windowIds = new HashMap<String, String>();
+
private final static Logger log = Logger.getLogger(DnDRegionRenderer.class);
/**
@@ -119,12 +121,20 @@
+ " = new YAHOO.util.PortalDD('portlet-dnd-"
+ renderContext.getRegionID() + "-" + i
+ "');\n");
- renderContext.getMarkupFragment().append(
- " ddPortlet" + renderContext.getRegionID()
- + i + ".setXConstraint(1000, 1000, 1);\n");
- renderContext.getMarkupFragment().append(
- " ddPortlet" + renderContext.getRegionID()
- + i + ".setYConstraint(1000, 1000, 1);\n");
+ renderContext.getMarkupFragment()
+ .append(
+ " ddPortlet"
+ + renderContext.getRegionID() + i
+ + ".windowId = \""+windowIds.get("portlet-dnd-"
+ + renderContext.getRegionID() + "-" + i)
+ + "\";\n");
+ /*
+ * renderContext.getMarkupFragment().append( " ddPortlet" +
+ * renderContext.getRegionID() + i + ".setXConstraint(1000,
+ * 1000, 1);\n"); renderContext.getMarkupFragment().append( "
+ * ddPortlet" + renderContext.getRegionID() + i +
+ * ".setYConstraint(1000, 1000, 1);\n");
+ */
/*
* renderContext.getMarkupFragment().append( " regionDD" +
@@ -133,12 +143,18 @@
* ".getDragEl());\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");
@@ -194,4 +210,8 @@
return result;
}
+
+ public void setWindowId(String portletId, String windowId) {
+ windowIds.put(portletId, windowId);
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDTools.java 2006-08-25 16:17:41 UTC (rev 5982)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDTools.java 2006-08-25 20:26:11 UTC (rev 5983)
@@ -10,7 +10,7 @@
+ "<script type='text/javascript' src='/dndRenderer/js/connection/connection.js' ></script>\n"
+ "<script type='text/javascript' src='/dndRenderer/js/portal/PortalDD.js' ></script>\n\n\n"
- /*+ "<script type='text/javascript'>"
+ + "<script type='text/javascript'>"
+ "var myLogReader1 = new YAHOO.widget.LogReader(null, { newestOnTop: true, height: \"400px\" });"
+ "</script>\n\n"
@@ -31,6 +31,6 @@
+ ".yui-log .error {background-color:#E32F0B;} \n"
+ ".yui-log .time {background-color:#A6C9D7;} \n"
+ ".yui-log .window {background-color:#F2E886;} \n"
- + "</style>\n\n"*/;
+ + "</style>\n\n";
}
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDWindowRenderer.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDWindowRenderer.java 2006-08-25 16:17:41 UTC (rev 5982)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDWindowRenderer.java 2006-08-25 20:26:11 UTC (rev 5983)
@@ -58,10 +58,17 @@
.getRegionRenderer()).getPortletNumber(renderContext
.getRegionID());
+ ((DnDRegionRenderer) 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 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(
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/dnd/DnDAjaxServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/dnd/DnDAjaxServlet.java 2006-08-25 16:17:41 UTC (rev 5982)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/dnd/DnDAjaxServlet.java 2006-08-25 20:26:11 UTC (rev 5983)
@@ -17,33 +17,67 @@
*
*/
private static final long serialVersionUID = 1L;
-
+
+ private static final String PERSIST = "PERSIST";
+
private final static Logger log = Logger.getLogger(DnDAjaxServlet.class);
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
doPost(req, resp);
}
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
Enumeration<String> attNames = req.getAttributeNames();
while (attNames.hasMoreElements()) {
String name = attNames.nextElement();
- log.info("Attribute: "+name+" = "+req.getAttribute(name));
+ log.info("Attribute: " + name + " = " + req.getAttribute(name));
}
-
+
Enumeration<String> paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String name = paramNames.nextElement();
- log.info("Parameter: "+name+" = "+req.getParameter(name));
+ log.info("Parameter: " + name + " = " + req.getParameter(name));
}
-
+
+ if (req.getParameter("action") != null) {
+ if (req.getParameter("action").equals(PERSIST)) {
+ if (req.getParameter("positionNo") == null
+ || req.getParameter("windowId") == null
+ || req.getParameter("oldRegionId") == null
+ || req.getParameter("newRegionId") == null) {
+ resp.sendError(400, "Not enought parameters");
+ return;
+ }
+
+ persistPosition(req.getParameter("positionNo"), req
+ .getParameter("windowId"), req
+ .getParameter("oldRegionId"), req
+ .getParameter("newRegionId"));
+
+ sendResp(resp, "Position persisted");
+ } else {
+ resp.sendError(400, "Unknown ajax call");
+ return;
+ }
+ }
+ }
+
+ private void sendResp(HttpServletResponse resp, String respData)
+ throws IOException {
resp.setHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
resp.setDateHeader("Last-Modified", new Date().getTime());
resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
resp.addHeader("Cache-Control", "post-check=0, pre-check=0");
resp.setContentType("text/html");
-
- resp.getWriter().write("jakas bzdura");
+
+ resp.getWriter().write(respData);
}
+ private void persistPosition(String positionNo, String windowId,
+ String oldRegionId, String newRegionId) {
+ log.info("New position persistance call: " + positionNo + " "
+ + windowId + " " + oldRegionId + " " + newRegionId);
+ }
}
More information about the jboss-svn-commits
mailing list