[jboss-svn-commits] JBL Code SVN: r5979 - in labs/jbosslabs/trunk/portal-extensions/portal-dnd: dndRenderer.war/js/portal src/java/org/jboss/portal/core/theme/render/impl

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 24 18:10:08 EDT 2006


Author: szimano
Date: 2006-08-24 18:10:06 -0400 (Thu, 24 Aug 2006)
New Revision: 5979

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
Log:
drop to region if no portlets available. 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-24 19:27:35 UTC (rev 5978)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/portal/PortalDD.js	2006-08-24 22:10:06 UTC (rev 5979)
@@ -54,29 +54,45 @@
 	var thisParent = el.parentNode;
 	var dropedParent = droped.parentNode;
 	
+	// show region droper if needed
+	if (thisParent.childNodes.length == 2) {
+		var regToDrop = document.getElementById(thisParent.dropToRegion);
+	
+		YAHOO.util.Dom.setStyle(regToDrop, "display", "block");
+		YAHOO.util.Dom.setStyle(regToDrop, "visibility", "");
+	}
+	
 	thisParent.removeChild(el);
 	dropedParent.appendChild(el);
 	
-	 log.log("AFTER Parent: " + el.parentNode + "(" + el.parentNode.id +")"+" droped: " + droped.parentNode + "(" + droped.parentNode.id +")");
+	// hide region droper if needed
+	if (dropedParent.childNodes.length == 2) {
+		var regToDrop = document.getElementById(dropedParent.dropToRegion);
 	
+		YAHOO.util.Dom.setStyle(regToDrop, "display", "none");
+		YAHOO.util.Dom.setStyle(regToDrop, "visibility", "hidden");
+	} 
+	
+	log.log("AFTER Parent: " + el.parentNode + "(" + el.parentNode.id +")"+" droped: " + droped.parentNode + "(" + droped.parentNode.id +")");
+	
 	log.log( "position: " + YAHOO.util.Dom.getStyle(el, "position"));
 	YAHOO.util.Dom.setStyle(el, "position", "static");
-	/*var prevPosId = YAHOO.util.Dom.getStyle(id, "position");
-	var prevPosEl = YAHOO.util.Dom.getStyle(el, "position");
 	
-	YAHOO.util.Dom.setStyle(id, "position", "absolute");
-	YAHOO.util.Dom.setStyle(el, "position", "absolute");
+	var nodeList = dropedParent.childNodes;
 	
-	YAHOO.util.Dom.setStyle(el, "left", YAHOO.util.Dom.getStyle(id, "left"));
-    YAHOO.util.Dom.setStyle(el, "top",  YAHOO.util.Dom.getStyle(id, "top"));
-    
-    var position = YAHOO.util.Dom.getStyle(el, "top").substring(0,YAHOO.util.Dom.getStyle(el, "top").length - 2) + YAHOO.util.Dom.getStyle(el, "height").substring(0, YAHOO.util.Dom.getStyle(el, "height").length - 2)
-    log.log(position);
-    
-    YAHOO.util.Dom.setStyle(id, "top",  YAHOO.util.Dom.getStyle(el, "top") + YAHOO.util.Dom.getStyle(el, "height"));
-    
-    YAHOO.util.Dom.setStyle(id, "position", prevPosId);
-	YAHOO.util.Dom.setStyle(el, "position", prevPosEl);*/
+	var adding = false;
+	
+	for (var i = 0;(nodeList.item(i) != el) && (i < nodeList.length); i++) {
+		var nextNode = nodeList.item(i);
+		if (!adding && nextNode == droped) {
+			adding = true;
+		}
+		
+		if (adding) {
+			dropedParent.appendChild(nextNode);
+		}
+	}
+	
 };
 
 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-24 19:27:35 UTC (rev 5978)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDRegionRenderer.java	2006-08-24 22:10:06 UTC (rev 5979)
@@ -47,7 +47,7 @@
 	private RegionRenderer delegate = new DivRegionRenderer();
 
 	private Map<String, Integer> portletNumbers = new HashMap<String, Integer>();
-	
+
 	private Map<String, String> portletRegions = new HashMap<String, String>();
 
 	private final static Logger log = Logger.getLogger(DnDRegionRenderer.class);
@@ -69,7 +69,7 @@
 		delegate.render(renderContext, region, portletContexts, windowResults);
 
 		renderContext.getMarkupFragment().append("</div>\n");
-		
+
 		if (portletNumbers.get(renderContext.getRegionID()) != null
 				&& portletNumbers.get(renderContext.getRegionID()) > 0) {
 			renderContext.getMarkupFragment().append(
@@ -87,25 +87,27 @@
 
 			// regionDD var
 			renderContext.getMarkupFragment().append(
-					"regionDD" + renderContext.getRegionID() + ";\n");
+					"regionDrop" + renderContext.getRegionID() + ";\n");
 
-			renderContext.getMarkupFragment().append("    var DDM = YAHOO.util.DDM;\n");
-			renderContext.getMarkupFragment().append("    DDM.mode = DDM.POINT;\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(
-					"            regionDD" + renderContext.getRegionID()
-							+ " = new YAHOO.util.PortalDD('regionDD"
+					"            regionDrop" + renderContext.getRegionID()
+							+ " = new YAHOO.util.PortalDD('regionDrop"
 							+ renderContext.getRegionID() + "');\n");
 			renderContext.getMarkupFragment().append(
-					"            regionDD" + renderContext.getRegionID()
+					"            regionDrop" + renderContext.getRegionID()
 							+ ".setXConstraint(0, 0, 1);\n");
 			renderContext.getMarkupFragment().append(
-					"            regionDD" + renderContext.getRegionID()
+					"            regionDrop" + renderContext.getRegionID()
 							+ ".setYConstraint(0, 0, 1);\n");
 
 			for (int i = 0; i < portletNumbers.get(renderContext.getRegionID()); i++) {
@@ -123,12 +125,21 @@
 				renderContext.getMarkupFragment().append(
 						"            ddPortlet" + renderContext.getRegionID()
 								+ i + ".setYConstraint(1000, 1000, 1);\n");
-				
-				/*renderContext.getMarkupFragment().append(
-						"            regionDD" + renderContext.getRegionID()
-						+ ".getDragEl().appendChild("+ "ddPortlet" + renderContext.getRegionID()
-						+ i + ".getDragEl());\n");*/
+
+				/*
+				 * renderContext.getMarkupFragment().append( " regionDD" +
+				 * renderContext.getRegionID() + ".getDragEl().appendChild("+
+				 * "ddPortlet" + renderContext.getRegionID() + i +
+				 * ".getDragEl());\n");
+				 */
 			}
+			
+			// add this regiondrop id
+			renderContext.getMarkupFragment().append(
+					"            ddPortlet" + renderContext.getRegionID() + "0"
+							+ ".getEl().parentNode.dropToRegion = 'regionDrop"
+							+ renderContext.getRegionID() + "';\n");
+
 			renderContext.getMarkupFragment().append("        }\n");
 			renderContext.getMarkupFragment().append("    };\n");
 			renderContext.getMarkupFragment().append("} ();\n");
@@ -167,20 +178,20 @@
 
 		return number - 1;
 	}
-	
+
 	private String getPortletRegion(String portletId) {
 		return portletRegions.get(portletId);
 	}
-	
+
 	private Vector<String> getPortletsInRegion(String regionId) {
 		Vector<String> result = new Vector<String>();
-		
+
 		for (String portletId : portletRegions.keySet()) {
 			if (portletRegions.get(portletId).equals(regionId)) {
 				result.add(portletId);
 			}
 		}
-		
+
 		return result;
 	}
 }

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-24 19:27:35 UTC (rev 5978)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDTools.java	2006-08-24 22:10:06 UTC (rev 5979)
@@ -9,6 +9,7 @@
 			+ "<script type='text/javascript' src='/dndRenderer/js/dragdrop/dragdrop-debug.js' ></script>\n"
 			+ "<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'>"
 			+ "var myLogReader1 = new YAHOO.widget.LogReader(null, { newestOnTop: true, height: \"400px\" });"
 			+ "</script>\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-24 19:27:35 UTC (rev 5978)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/src/java/org/jboss/portal/core/theme/render/impl/DnDWindowRenderer.java	2006-08-24 22:10:06 UTC (rev 5979)
@@ -21,6 +21,9 @@
  */
 package org.jboss.portal.core.theme.render.impl;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.jboss.logging.Logger;
 import org.jboss.portal.WindowState;
 import org.jboss.portal.theme.impl.render.DivWindowRenderer;
@@ -55,6 +58,12 @@
 				.getRegionRenderer()).getPortletNumber(renderContext
 				.getRegionID());
 
+		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");




More information about the jboss-svn-commits mailing list