portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r412618 - in /portals/jetspeed-2/trunk/src/webapp: desktop-themes/blue/ desktop-themes/blue/css/ desktop-themes/tigris/ javascript/desktop/core/ javascript/desktop/widget/
Date Thu, 08 Jun 2006 00:03:23 GMT
Author: taylor
Date: Wed Jun  7 17:03:22 2006
New Revision: 412618

URL: http://svn.apache.org/viewvc?rev=412618&view=rev
Log:
desktop updates from Steve Milek

Modified:
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/BaseFloatingPane.js
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlFloatingPane.html
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortalTabContainer.js
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletWindow.js

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp Wed Jun  7 17:03:22 2006
@@ -84,6 +84,7 @@
     dojo.require('dojo.widget.SplitContainer');
     dojo.require('dojo.widget.TabContainer');
     dojo.require('dojo.widget.Tree');
+	dojo.require('dojo.widget.SortableTable');
 
     dojo.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
     dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
@@ -161,7 +162,7 @@
     </tr>
   </table>
 </div>
-<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 30px; margin-top: 2px; margin-left: -1px; position: static"></div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 30px; margin-top: 2px; margin-left: -1px"></div>
 <table cellpadding="0" cellspacing="0" border="0" width="100%" id="main" style="position:
static">  <!-- id="main"  has top: 170px and position: absolute -->
 <tr>
 <td valign="top" id="leftcol" >

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm Wed Jun  7 17:03:22 2006
@@ -58,6 +58,7 @@
     dojo.require('dojo.widget.SplitContainer');
     dojo.require('dojo.widget.TabContainer');
     dojo.require('dojo.widget.Tree');
+			    dojo.require('dojo.widget.SortableTable');
 
     dojo.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
     dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
@@ -135,7 +136,7 @@
     </tr>
   </table>
 </div>
-<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 35px; margin-top: 2px; margin-left: -1px; position: static"></div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 35px; margin-top: 2px; margin-left: -1px"></div>
 <table cellpadding="0" cellspacing="0" border="0" width="100%" id="main" style="position:
static">  <!-- id="main"  has top: 170px and position: absolute -->
 <tr>
 <td valign="top" id="leftcol" >

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css Wed
Jun  7 17:03:22 2006
@@ -15,13 +15,12 @@
 */
 
 .dojoTabContainer {
-	position : static; /* relative; */
+	position : relative;
 }
 
 .dojoTabPaneWrapper {
-    position : relative;
-	border : 1px solid;
-    display: none;
+	position : relative;
+	border-top : 1px solid;
 }
 
 .dojoTabLabels-top {
@@ -38,20 +37,16 @@
 	float : left;
 	padding-left : 9px;
 	border-bottom : 1px solid;
-	background : no-repeat left top;
+	background : url(../images/tabs/tab_left.gif) no-repeat left top;
 	cursor: pointer;
-
-    background-image: url(../images/tabs/tab_left.gif);
 }
 
 .dojoTabPaneTab span {
 	display : block;
 	padding : 4px 15px 4px 6px;
-	background : no-repeat right top;
+	background : url(../images/tabs/tab_top_right.gif) no-repeat right top;
 	color : #333;
 	font-size : 90%;
-
-    background-image: url(../images/tabs/tab_top_right.gif);
 }
 
 .dojoTabPanePaneClose {
@@ -60,13 +55,11 @@
 	right : 6px;
 	height : 12px;
 	width : 12px;
-	background : no-repeat right top;
-
-    background-image: url(../images/tabs/tab_close.gif);
+	background : url(../images/tabs/tab_close.gif) no-repeat right top;
 }
 
 .dojoTabPanePaneCloseHover {
-    background-image: url(../images/tabs/tab_close_h.gif);
+	background-image : url(../images/tabs/tab_close_h.gif);
 }
 
 .dojoTabPaneTabClose {
@@ -75,14 +68,12 @@
 	width : 12px;
 	padding : 0 12px 0 0;
 	margin : 0 -10px 0 10px;
-	background : no-repeat right top;
+	background : url(../images/tabs/tab_close.gif) no-repeat right top;
 	cursor : default;
-
-    background-image: url(../images/tabs/tab_close.gif);
 }
 
 .dojoTabPaneTabCloseHover {
-    background-image: url(../images/tabs/tab_close_h.gif);
+	background-image : url(../images/tabs/tab_close_h.gif);
 }
 
 .dojoTabPaneTab.current {
@@ -111,31 +102,23 @@
 .dojoTabLabels-bottom .dojoTabPaneTab {
 	border-top :  1px solid;
 	border-bottom : 0;
-	background : no-repeat left bottom;
-
-    background-image: url(../images/tabs/tab_bot_left.gif);
+	background : url(../images/tabs/tab_bot_left.gif) no-repeat left bottom;
 }
 
 .dojoTabLabels-bottom .dojoTabPaneTab span {
-	background : no-repeat right bottom;
-
-    background-image: url(../images/tabs/tab_bot_right.gif);
+	background : url(../images/tabs/tab_bot_right.gif) no-repeat right bottom;
 }
 
 .dojoTabLabels-bottom .dojoTabPaneTab.current {
 	padding-top : 1px;
 	border-top : 0;
-	background : no-repeat left bottom;
-
-    background-image: url(../images/tabs/tab_bot_left_curr.gif);
+	background : url(../images/tabs/tab_bot_left_curr.gif) no-repeat left bottom;
 }
 
 .dojoTabLabels-bottom .dojoTabPaneTab.current span {
 	padding-top : 5px;
 	margin-top : -1px;
-	background : no-repeat right bottom;
-
-    background-image: url(../images/tabs/tab_bot_right_curr.gif);
+	background : url(../images/tabs/tab_bot_right_curr.gif) no-repeat right bottom;
 }
 
 /* right-h tabs */
@@ -152,10 +135,8 @@
 	padding-left : 0;
 	border-left :  1px solid;
 	border-bottom : 0;
-	background : no-repeat right bottom;
+	background : url(../images/tabs/tab_bot_right.gif) no-repeat right bottom;
 	float : none;
-
-    background-image: url(../images/tabs/tab_bot_right.gif);
 }
 
 .dojoTabLabels-right-h .dojoTabPaneTab span {
@@ -181,18 +162,14 @@
 	border-right :  1px solid;
 	border-bottom : 0;
 	float : none;
-	background : no-repeat left top;
-
-    background-image: url(../images/tabs/tab_top_left.gif);
+	background : url(../images/tabs/tab_top_left.gif) no-repeat left top;
 }
 
 .dojoTabLabels-left-h .dojoTabPaneTab.current {
 	border-right : 0;
 	border-bottom :  1px solid;
 	padding-bottom : 0;
-	background : no-repeat 0 -150px;
-
-    background-image: url(../images/tabs/tab_top_left.gif);
+	background : url(../images/tabs/tab_top_left.gif) no-repeat 0 -150px;
 }
 
 .dojoTabLabels-left-h .dojoTabPaneTab span {

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp Wed Jun  7 17:03:22
2006
@@ -77,6 +77,7 @@
     dojo.require("dojo.widget.AccordionPane");
     dojo.require("dojo.widget.Menu2");
     dojo.require("dojo.fx.html");
+	dojo.require('dojo.widget.SortableTable');
 
     dojo.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
     dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
@@ -154,7 +155,7 @@
     </tr>
   </table>
 </div>
-<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 30px; margin-top: 2px; margin-left: -1px; position: static"></div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 30px; margin-top: 2px; margin-left: -1px"></div>
 <table cellpadding="0" cellspacing="0" border="0" width="100%" id="main" style="position:
static">  <!-- id="main"  has top: 170px and position: absolute -->
 <tr>
 <td valign="top" id="leftcol" >

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm Wed Jun  7 17:03:22
2006
@@ -46,11 +46,12 @@
     dojo.require("dojo.collections.Set");
     dojo.require("dojo.widget.Manager");
     dojo.require("dojo.widget.TaskBar");
- 	dojo.require("dojo.widget.FloatingPane");
+ 	   dojo.require("dojo.widget.FloatingPane");
     dojo.require("dojo.widget.TabContainer");
     dojo.require("dojo.widget.AccordionPane");
     dojo.require("dojo.widget.Menu2");
     dojo.require("dojo.fx.html");
+	    dojo.require('dojo.widget.SortableTable');
 
     dojo.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
     dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
@@ -128,7 +129,7 @@
     </tr>
   </table>
 </div>
-<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 35px; margin-top: 2px; margin-left: -1px; position: static"></div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%;
height: 35px; margin-top: 2px; margin-left: -1px"></div>
 <table cellpadding="0" cellspacing="0" border="0" width="100%" id="main" style="position:
static">  <!-- id="main"  has top: 170px and position: absolute -->
 <tr>
 <td valign="top" id="leftcol" >

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js Wed Jun  7 17:03:22
2006
@@ -57,11 +57,13 @@
     COLUMNS: "jetspeedColumns",
     PORTLET_STYLE_CLASS: "portlet",
     PORTLET_WINDOW_STYLE_CLASS: "dojoFloatingPane",
+    PORTLET_WINDOW_GHOST_STYLE_CLASS: "ghostPane",
     PORTLET_WINDOW_ID_PREFIX: "portletWindow_",
 
     PORTLET_PROP_WIDGET_ID: "widgetId",
     PORTLET_PROP_CONTENT_RETRIEVER: "contentRetriever",
     PORTLET_PROP_WINDOW_POSITION_STATIC: "windowPositionStatic",
+    PORTLET_PROP_COLUMN_SPAN: "windowColumnSpan",
     PORTLET_PROP_WINDOW_THEME: "windowTheme",
     PORTLET_PROP_WINDOW_TITLE: "title",
     PORTLET_PROP_WINDOW_ICON: "windowIcon",
@@ -130,7 +132,7 @@
 //jetspeed.debugContentDumpIds = [ "getmenus", "getmenu-.*" ];    // dump getmenus response
and all getmenu responses
 //jetspeed.debugContentDumpIds = [ "page-.*" ];                   // dump page psml response
 //jetspeed.debugContentDumpIds = [ "P-10acd169a40-10001", "P-10acd169a40-10000" ];
-jetspeed.debugContentDumpIds = [ "notifyGridSelect", "P-10acd169a40-10001", "reports-select"
]; // , "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1",
"jsfCalendar"
+jetspeed.debugContentDumpIds = [ "notifyGridSelect", "P-10acd169a40-10001", "reports-select",
"getportlets" ]; // , "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1",
"jsfCalendar"
 //jetspeed.debugContentDumpIds = [ "P-10aba.*" ];
 
 // ... load page /portlets
@@ -432,6 +434,36 @@
         window.location.href = navUrl;  // BOZO:NOW: popups
 };
 
+jetspeed.getPortlets = function()
+{
+    var contentListener = new jetspeed.om.PortletSelectorAjaxApiContentListener();
+    var queryString = "?action=getportlets";
+    var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString
;
+    var mimeType = "text/xml";
+    var ajaxApiContext = new jetspeed.om.Id( "getportlets", { } );
+    jetspeed.url.retrieveContent( getPortletsUrl, contentListener, null, mimeType, ajaxApiContext,
jetspeed.debugContentDumpIds );
+};
+
+jetspeed.loadPortletSelector = function()
+{
+    var windowParams = {};
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ] = false;
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_THEME ] = "tigris";
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_TITLE ] = "Portlet Selector";
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ] = "text-x-script.png";
+    windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = jetspeed.id.PORTLET_WINDOW_ID_PREFIX
+ "portlet-selector";
+    windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = "400";
+    windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = "600";
+    windowParams[ jetspeed.id.PORTLET_PROP_LEFT ] = "20";
+    windowParams[ jetspeed.id.PORTLET_PROP_TOP ] = "10";
+    windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = false;
+    windowParams[ jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER ] = new jetspeed.om.PortletSelectorContentRetriever();
+    var pwWidgetParams = jetspeed.ui.widget.PortletWindow.prototype.staticDefineAsAltInitParameters(
null, windowParams );
+    jetspeed.ui.createPortletWindow( pwWidgetParams, null, null );
+    var portletSelectorContentUrl = jetspeed.prefs.getDesktopThemeRootUrl() + "/portletselector.html"
+    pwWidgetParams.retrieveContent( new jetspeed.om.BasicContentListener(), portletSelectorContentUrl
);
+};
+
 jetspeed.debugDumpForm = function( formNode )
 {
     if ( ! formNode ) return null ;
@@ -642,6 +674,37 @@
     }
 };
 
+// ... jetspeed.om.PortletSelectorContentRetriever
+jetspeed.om.PortletSelectorContentRetriever = function()
+{
+};
+jetspeed.om.PortletSelectorContentRetriever.prototype =
+{
+    getContent: function( /* String */ requestUrl, contentListener, /* DOM Form */ formObject,
/* String */ mimeType, domainModelObject, /* String[] */ debugContentDumpIds )
+    {
+        jetspeed.url.retrieveContent( requestUrl, contentListener, formObject, mimeType,
domainModelObject, debugContentDumpIds );
+    }
+};
+
+// ... jetspeed.om.PortletSelectorContentListener
+jetspeed.om.PortletSelectorContentListener = function()
+{
+};
+jetspeed.om.PortletSelectorContentListener.prototype =
+{
+    notifySuccess: function( /* String */ portletContent, /* String */ requestUrl, /* Portlet
*/ portlet )
+    {
+        var windowWidget = this.getPortletWindow();
+        if ( windowWidget )
+        {
+            windowWidget.setPortletContent( portletContent, renderUrl );
+        }
+    },
+    notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl,
/* Portlet */ portlet )
+    {
+        dojo.debug( "PortletSelectorContentListener notifyFailure url=" + requestUrl + "
type=" + type + " error=" + error ) ;
+    }
+};
 
 // ... jetspeed.om.PageContentListenerCreateWidget
 jetspeed.om.PageContentListenerCreateWidget = function()
@@ -902,8 +965,12 @@
         var filteredPortletArray = [];
         for ( var i = 0 ; i < portletArray.length; i++ )
         {
-            if ( portletArray[i].getProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC
) )
+            var posStatic = portletArray[i].getProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC
);
+            var colSpan = portletArray[i].getProperty( jetspeed.id.PORTLET_PROP_COLUMN_SPAN
);
+            if ( posStatic || colSpan != null )
+            {
                 filteredPortletArray.push( portletArray[i] );
+            }
         }
         filteredPortletArray.sort( this._portletColumnRowCompare );
 
@@ -1327,13 +1394,30 @@
         {
             this.putProperty( jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER, this.contentRetriever
);
         }
+        var colSpan = this.getProperty( jetspeed.id.PORTLET_PROP_COLUMN_SPAN );
+        if ( colSpan != null )
+        {
+            if ( ! jetspeed.prefs.windowTiling || ! dojo.lang.isNumber( colSpan ) || colSpan
<= 1 )
+            {
+                colSpan = null ;
+                this.putProperty( jetspeed.id.PORTLET_PROP_COLUMN_SPAN, null );
+            }
+        }
         var posStatic = this.getProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC
);
-        if ( posStatic != null && posStatic && ! jetspeed.prefs.windowTiling
)
-            posStatic = null;
-        if ( posStatic == null )
+        if ( posStatic != null && posStatic && ( ! jetspeed.prefs.windowTiling
|| colSpan != null ) )
         {
-            this.putProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC, ( jetspeed.prefs.windowTiling
? true : false ) );
+            posStatic = false ;
+            this.putProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC, false );
         }
+        else if ( posStatic == null )
+        {
+            if ( jetspeed.prefs.windowTiling )
+                this.putProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC, true );
+            else
+                this.putProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC, false
);
+        }
+
+        
 
         var windowtitle = this.getProperty( jetspeed.id.PORTLET_PROP_WINDOW_TITLE );
         if ( ! windowtitle && this.name )
@@ -1798,6 +1882,39 @@
     }
 });
 
+
+// ... jetspeed.om.PortletDef
+jetspeed.om.PortletDef = function( /* String */ portletName, /* String */ portletDisplayName,
/* String */ portletDescription )
+{
+    this.portletName = portletName;
+    this.portletDisplayName = portletDisplayName;
+    this.portletDescription = portletDescription;
+};
+dojo.inherits( jetspeed.om.PortletDef, jetspeed.om.Id);
+dojo.lang.extend( jetspeed.om.PortletDef,
+{
+    portletName: null,
+    portletDisplayName: null,
+    portletDescription: null,
+    getId: function()  // jetspeed.om.Id protocol
+    {
+        return this.portletName;
+    },
+    getPortletName: function()
+    {
+        return this.portletName;
+    },
+    getPortletDisplayName: function()
+    {
+        return this.portletDisplayName;
+    },
+    getPortletDescription: function()
+    {
+        return this.portletDescription;
+    }
+});
+
+
 // ... jetspeed.om.MenuOption
 jetspeed.om.MenuOption = function()
 {
@@ -2130,6 +2247,74 @@
     }
 });
 
+
+// ... jetspeed.om.PortletSelectorAjaxApiContentListener
+jetspeed.om.PortletSelectorAjaxApiContentListener = function()
+{
+};
+dojo.lang.extend( jetspeed.om.PortletSelectorAjaxApiContentListener,
+{
+    notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, domainModelObject
)
+    {
+        var portletList = this.parsePortlets( data );
+        //domainModelObject.page.putMenu( menuObj );
+
+        if ( dojo.lang.isFunction( this.notifyFinished ) )
+        {
+            this.notifyFinished( domainModelObject, portletList );
+        }
+    },
+    notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl,
domainModelObject )
+    {
+        dojo.raise( "PortletSelectorAjaxApiContentListener error [" + domainModelObject.toString()
+ "] url: " + requestUrl + " type: " + type + " error: " + error );
+    },
+
+    parsePortlets: function( /* XMLNode */ node )
+    {
+        var portletList = [];
+        var jsElements = node.getElementsByTagName( "js" );
+        if ( ! jsElements || jsElements.length > 1 )
+            dojo.raise( "unexpected zero or multiple <js> elements in portlet selector
xml" );
+        var children = jsElements[0].childNodes;
+        
+        for ( var i = 0 ; i < children.length ; i++ )
+        {
+            var child = children[i];
+            if ( child.nodeType != dojo.dom.ELEMENT_NODE )
+                continue;
+            var childLName = child.nodeName;
+            if ( childLName == "portlets" )
+            {
+                var portletsNode = child ;
+                var portletChildren = portletsNode.childNodes ;
+                for ( var pI = 0 ; pI < portletChildren.length ; pI++ )
+                {
+                    var pChild = portletChildren[pI];
+                    if ( pChild.nodeType != dojo.dom.ELEMENT_NODE )
+                        continue;
+                    var pChildLName = pChild.nodeName;
+                    if ( pChildLName == "portlet" )
+                    {
+                        var portletDef = this.parsePortletElement( pChild );
+                        dojo.debug( "new portletDef  name=" + portletDef.getPortletName()
+ "  displayName=" + portletDef.getPortletDisplayName() + "  description=" + portletDef.getPortletDescription()
) ;
+                        portletList.push( portletDef ) ;
+                    }
+                }
+            }
+        }
+        return portletList ;
+    },
+    parsePortletElement: function( /* XMLNode */ node )
+    {
+        var portletName = node.getAttribute( "name" );
+        var portletDisplayName = node.getAttribute( "displayName" );
+        var portletDescription = node.getAttribute( "description" );
+        
+        return new jetspeed.om.PortletDef( portletName, portletDisplayName, portletDescription
) ;
+    }
+});
+
+
 // ... jetspeed.om.MoveAjaxApiContentListener
 jetspeed.om.MoveAjaxApiContentListener = function( changedState )
 {
@@ -2216,18 +2401,21 @@
     columnContainer.appendChild(divElmt);
     //divElmt.appendChild( document.createTextNode( "LayoutColumn" + (columnIndex +1) ) );
 };
-jetspeed.ui.getPortletWindowChildren = function( /* DOM node */ parentNode, /* DOM node */
matchNodeIfFound )
+jetspeed.ui.getPortletWindowChildren = function( /* DOM node */ parentNode, /* DOM node */
matchNodeIfFound, /* boolean */ includeGhosts, /* boolean */ includeGhostsOnly )
 {
+    if ( includeGhosts || includeGhostsOnly )
+        includeGhosts = true;
+
     var nodesPW = null;
     var nodeMatchIndex = -1;
     if ( parentNode )
     {
-        var nodesPW = [];
+        nodesPW = [];
         var children = parentNode.childNodes;
         for ( var i = 0 ; i < children.length ; i++ )
         {
             var child = children[i];
-            if ( dojo.html.hasClass( child, jetspeed.id.PORTLET_WINDOW_STYLE_CLASS ) )
+            if ( ( ! includeGhostsOnly && dojo.html.hasClass( child, jetspeed.id.PORTLET_WINDOW_STYLE_CLASS
) ) || ( includeGhosts && dojo.html.hasClass( child, jetspeed.id.PORTLET_WINDOW_GHOST_STYLE_CLASS
) ) )
             {
                 nodesPW.push( child );
                 if ( matchNodeIfFound && child == matchNodeIfFound )
@@ -2254,7 +2442,7 @@
         for ( var colChildIndex = 0 ; colChildIndex < columnChildren.length ; colChildIndex++
)
         {
             var child = columnChildren[colChildIndex];
-            if ( dojo.html.hasClass( child, jetspeed.id.PORTLET_WINDOW_STYLE_CLASS ) )
+            if ( dojo.html.hasClass( child, jetspeed.id.PORTLET_WINDOW_STYLE_CLASS ) || dojo.html.hasClass(
child, jetspeed.id.PORTLET_WINDOW_GHOST_STYLE_CLASS ) )
             {
                 cRow = ( cRow == null ? 0 : cRow + 1 );
                 if ( child == portletWindowNode )

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/BaseFloatingPane.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/BaseFloatingPane.js?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/BaseFloatingPane.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/BaseFloatingPane.js Wed
Jun  7 17:03:22 2006
@@ -1,18 +1,3 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 
 dojo.provide("jetspeed.ui.widget.BaseFloatingPane");
 

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlFloatingPane.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlFloatingPane.html?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlFloatingPane.html (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlFloatingPane.html Wed
Jun  7 17:03:22 2006
@@ -1,5 +1,5 @@
 <div id="${this.widgetId}" class="dojoFloatingPane" >  <!-- dojoAttachEvent="onMouseDown"
-->
-	<div dojoAttachPoint="titleBar" class="dojoFloatingPaneTitleBar"  dojoAttachEvent="onMouseDown;onMouseOver:titleMouseOver;onMouseOut:titleMouseOut"
style="display:none">
+	<div id="${this.widgetId}_titleBar" dojoAttachPoint="titleBar" class="dojoFloatingPaneTitleBar"
 dojoAttachEvent="onMouseDown;onMouseOver:titleMouseOver;onMouseOut:titleMouseOut" style="display:none">
 	  	<img dojoAttachPoint="titleBarIcon"  class="dojoFloatingPaneTitleBarIcon">
 		<div dojoAttachPoint="closeAction" dojoAttachEvent="onClick:closeWindow"
    	  		class="dojoFloatingPaneCloseIcon"></div>

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortalTabContainer.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortalTabContainer.js?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortalTabContainer.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortalTabContainer.js Wed
Jun  7 17:03:22 2006
@@ -72,16 +72,6 @@
 		dojo.html.removeClass( tab.div, "current" );
 		tab.selected=false;
 	},
-    _doSizing: function()
-    {
-        // position the labels and the container node
-		var labelAlign=this.labelPosition.replace(/-h/,"");
-		var children = [
-			{domNode: this.dojoTabLabels, layoutAlign: labelAlign},
-			{domNode: this.containerNode, layoutAlign: "client"}
-		];
-		dojo.layout(this.domNode, children);
-    },
 
     createJetspeedMenu: function( /* jetspeed.om.Menu */ menuObj )
     {

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletWindow.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletWindow.js?rev=412618&r1=412617&r2=412618&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletWindow.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletWindow.js Wed Jun
 7 17:03:22 2006
@@ -40,7 +40,9 @@
     hasShadow: false,
     nextIndex: 1,
 
-    windowPositionStatic: null,
+    windowPositionStatic: false,
+    windowColumnSpan: null,
+    windowIsColumnBound: false,
     titleMouseIn: 0,
     titleLit: false,
 
@@ -182,10 +184,11 @@
     setWindowDimensions: function( fragment )
     {
         this.windowPositionStatic = this.getInitProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC
);
-        if ( this.windowPositionStatic == null )
-            this.windowPositionStatic = ( jetspeed.prefs.windowTiling ? true : false );
+        this.windowColumnSpan = this.getInitProperty( jetspeed.id.PORTLET_PROP_COLUMN_SPAN
);
+        if ( this.windowColumnSpan != null || this.windowPositionStatic )
+            this.windowIsColumnBound = true;
 
-        this.constrainToContainer = 0;  // ( this.windowPositionStatic ? 0 : 1 );
+        this.constrainToContainer = 0;
 
         var portletWidth = null, portletHeight = null, portletLeft = null, portletTop = null;
         if ( this.portlet )
@@ -431,6 +434,8 @@
         this.domNode.id = this.widgetId;  // BOZO: must set the id here - it gets defensively
cleared by dojo
         
         this.portletPostCreate();
+
+        this.createTitleBarContextMenu();
         
         if ( jetspeed.debug.createWindow )
             dojo.debug( "createdWindow [" + ( this.portlet ? this.portlet.entityId : this.widgetId
) + "]" + " width=" + this.domNode.style.width + " height=" + this.domNode.style.height +
" left=" + this.domNode.style.left + " top=" + this.domNode.style.top ) ;
@@ -553,6 +558,7 @@
 
     resizeTo: function(w, h, force)
     {
+        dojo.debug( "resizeTo [" + this.widgetId + "]" );
 		if(w==this.width && h == this.height && ! force){
 			return;
 		}
@@ -609,9 +615,205 @@
         if ( resizeWidget )
             resizeWidget.destroy();
     },
+    dumpPostionInfo: function()
+    {
+        var winAbsPos = dojo.style.getAbsolutePosition( this.domNode, true );
+        var winWidth = dojo.style.getOuterWidth( this.domNode );
+        var winHeight = dojo.style.getOuterHeight( this.domNode );
+        var winContainerNodeWidth = dojo.style.getOuterWidth( this.containerNode );
+        var winContainerNodeHeight = dojo.style.getOuterHeight( this.containerNode );
+        
+        dojo.debug( "window-position [" + this.widgetId + "] x=" + winAbsPos.x + " y=" +
winAbsPos.y + " width=" + winWidth + " height=" + winHeight + " cNode-width=" + winContainerNodeWidth
+ " cNode-height=" + winContainerNodeHeight + " document-width=" + dojo.style.getOuterWidth(
document[ "body" ] ) + " document-height=" + dojo.style.getOuterHeight( document[ "body" ]
) ) ;
+    },
+
+    /* makeSpaning - new layout management (not yet used) */
+    makeSpaning: function( span )
+    {
+        var currentColumn = this.getWindowColumnIndex();
+        if ( currentColumn != null && span > 1 )
+        {
+            if ( ( currentColumn + span - 1 ) >= jetspeed.columns )
+                return;
+            // anchor to current abs x,y and then across columns
+            
+        }
+    },
+
+    /* _makeSpaningGhosts - new layout management (not yet used) */
+    _makeSpaningGhosts: function( startColumn, span )
+    {
+        var winAbsPos = dojo.style.getAbsolutePosition( this.domNode, true );
+        var winMarginTop = dojo.style.getPixelValue( this.domNode, "margin-top", true );
+        var winMarginLeft = dojo.style.getPixelValue( this.domNode, "margin-left", true );
+
+        var winHeight = dojo.style.getOuterHeight( this.domNode );
+        var x = winAbsPos.x;  //  - winMarginTop;
+		var y = winAbsPos.y;  //  - winMarginLeft;
+    
+        var inCol = startColumn;
+        var spacerInstance = 1;
+        var firstSpacerChildIndex = -1;
+        var firstSpacerYPos = null;
+        var spacerWindows = jetspeed.ui.getSpacerWindows( this.widgetId, span );
+        var columnTopWindowYPos = null;
+        
+        var spacerWindow, portletWindowsResult, portletWindowsInCol, colChildNodeIndex, colAdjusted;
+        var tNode, tNodeAbsPos, insertbefore, append, spacerHeight, deferHeightAfter;
+        while ( inCol <= startColumn + ( span - 1 ) )
+        {
+            spacerWin = spacerWindows[ inCol - startColumn ];
+            portletWindowsResult = jetspeed.ui.getPortletWindowChildren( inCol, null, true
);
+            portletWindowsInCol = portletWindowsResult.portletWindowNodes;
+            colChildNodeIndex = 0;
+            colAdjustedNode = null;
+            while ( colChildNodeIndex < portletWindowsInCol.length || ( portletWindowsInCol.length
== 0 && colChildNodeIndex == 0 ) )
+            {
+                if ( colAdjustedNode != null )
+                {
+                    tNode = portletWindowsInCol[ colChildNodeIndex ];
+                    if ( tNode != colAdjustedNode )
+                    {
+                        if ( dojo.html.hasClass( tNode, jetspeed.id.PORTLET_WINDOW_GHOST_STYLE_CLASS
) )
+                        {
+                            var tSpWin = jetspeed.ui.getSpacerWindowFromNode( tNode );
+                            if ( tSpWin == null )
+                            {
+                                // BOZO: what is this supposed to be?
+                                // error or ignore?
+                            }
+                            else if ( tSpWin.domNodeIdPrefix == spacerWin.domNodeIdPrefix
)
+                            {
+                                dojo.dom.removeNode( tNode );   // node is associated with
'this' PortletWindow, it should not be in already adj'd col
+                            }
+                            else if ( tSpWin.instanceNumber == 1 )
+                            {
+                                // the spanning PortletWindow position likely needs to be
adjusted
+                                // if the spacerWin is the left-most (first) for the associated
PortletWindow
+                                // call this method and take over for next
+                                
+                                break;   // done with column
+                            }
+                            else
+                            {
+                                
+                            }
+                        }
+                    }
+                    continue;
+                }
+                if ( portletWindowsInCol.length == 0 )
+                {
+                    append = true ;
+                    insertbefore = false;
+                    tNode = null;
+                    tNodeAbsPos = null;
+                }
+                else
+                {
+                    tNode = portletWindowsInCol[ colChildNodeIndex ];
+                    tNodeAbsPos = dojo.style.getAbsolutePosition( this.domNode, true );
+                    if ( columnTopWindowYPos == null && colChildNodeIndex == 0 )
+                        columnTopWindowYPos = tNodeAbsPos.y;
+                    insertbefore = ( y <= tNodeAbsPos.y );
+                    append = ( ! insertbefore && ( (colChildNodeIndex+1) >= portletWindowsInCol.length
) );
+                }
+                if ( insertbefore || append )
+                {
+                    deferHeightAfter = false;
+                    spacerHeight = winHeight;
+                    if ( spacerInstance > 1 )
+                    {   // height must extend up to the closest child that does not extend
to y
+                        if ( firstSpacerYPos != null && tNodeAbsPos != null &&
tNodeAbsPos.y == firstSpacerYPos )
+                        {
+                            // do nothing - keep winHeight as is
+                        }
+                        else if ( colChildNodeIndex == 0 )
+                        {   // this does not mean that we are flush with top - check
+                            if ( firstSpacerChildIndex > 0 )
+                            {
+                                if ( columnTopWindowYPos != null )
+                                {
+                                    winHeight = winHeight + ( firstSpacerYPos - columnTopWindowYPos
);
+                                }
+                                else
+                                {
+                                    deferHeightAfter = true;
+                                }
+                            }
+                        }
+                        else
+                        {
+                            winHeight = winHeight + ( firstSpacerYPos - tNodeAbsPos.y );
+                        }
+                    }
+                    else
+                    {
+                        firstSpacerChildIndex = colChildNodeIndex;
+                        firstSpacerYPos = ( (tNodeAbsPos == null) ? null : tNodeAbsPos.y
);
+                    } 
+                    spacerWindow.sizeDomNode( spacerHeight );
+                    if ( insertbefore )
+                        dojo.dom.insertBefore( spacerWindow.domNode, tNode, true );
+                    else
+                        jetspeed.columns[ inCol ].appendChild( spacerWindow.domNode );
+                    colAdjustedNode = spacerWindow.domNode;
+                    if ( deferHeightAfter )
+                    {
+                        tNodeAbsPos = dojo.style.getAbsolutePosition( spacerWindow.domNode,
true );
+                        spacerHeight = winHeight + ( firstSpacerYPos - tNodeAbsPos.y );
+                        spacerWindow.sizeDomNode( spacerHeight );
+                    }
+                }
+                colChildNodeIndex++;
+            }
+        }
+    },
+
+    makeFreeFloating: function()
+    {
+        var winAbsPos = dojo.style.getAbsolutePosition( this.domNode, true );
+        var winMarginTop = dojo.style.getPixelValue( this.domNode, "margin-top", true );
+        var winMarginLeft = dojo.style.getPixelValue( this.domNode, "margin-left", true );
+        var winWidth = dojo.style.getOuterWidth( this.domNode ) ;
+        var winHeight = dojo.style.getOuterHeight( this.domNode ) ;
+
+        this.domNode.style.position = "absolute";
+        
+        this.domNode.style.left = winAbsPos.x - winMarginTop;
+        this.domNode.style.top = winAbsPos.y - winMarginLeft;
+
+        this.windowPositionStatic = false;
+        
+        this.resizeTo( winWidth, winHeight, true );
+        
+        var addToElmt = document.getElementById( jetspeed.id.DESKTOP );
+        addToElmt.appendChild( this.domNode );
+    },
+    createTitleBarContextMenu: function()
+    {
+        var portletWindow = this;
+        var titleBarContextMenu = dojo.widget.createWidget( "PopupMenu2", { id: this.widgetId
+ "_ctxmenu", targetNodeIds: [ this.titleBar.id ], contextMenuForWindow: false }, null );
+        var dumpPosMenuItem = dojo.widget.createWidget( "MenuItem2", { caption: "Dump Position"}
);
+        var makeFreeFloating = dojo.widget.createWidget( "MenuItem2", { caption: "Make Free
Floating"} );
+        //var twoColummLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstb_menu_item3",
caption: "Two Column Layout"} );
+        //var threeColummLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstb_menu_item4",
caption: "Three Column Layout"} );
+        
+        dojo.event.connect( dumpPosMenuItem, "onClick", function(e) { portletWindow.dumpPostionInfo();
} );
+        dojo.event.connect( makeFreeFloating, "onClick", function(e) { portletWindow.makeFreeFloating();
} );
+        //dojo.event.connect( freeFormLayoutMenuItem, "onClick", function(e) { jetspeed.prefs.windowTiling
= false; jetspeed.page.resetWindowLayout(); jetspeed.page.reload(); } );
+        //dojo.event.connect( twoColummLayoutMenuItem, "onClick", function(e) { jetspeed.prefs.windowTiling
= 2; jetspeed.page.reload(); } );
+        //dojo.event.connect( threeColummLayoutMenuItem, "onClick", function(e) { jetspeed.prefs.windowTiling
= 3; jetspeed.page.reload(); } );
+        titleBarContextMenu.addChild( dumpPosMenuItem );
+        titleBarContextMenu.addChild( makeFreeFloating );
+        //titleBarContextMenu.addChild( twoColummLayoutMenuItem );
+        //titleBarContextMenu.addChild( threeColummLayoutMenuItem );
+        document.body.appendChild( titleBarContextMenu.domNode );
+    },
+    
     getWindowColumnIndex: function()
     {
         var inColIndex = null;
+        if ( ! jetspeed.columns ) return inColIndex;
         for ( var i = 0 ; i < jetspeed.columns.length ; i++ )
         {
             var columnElmt = jetspeed.columns[i];
@@ -627,7 +829,7 @@
     onResized: function()
     {
         jetspeed.ui.widget.PortletWindow.superclass.onResized.call( this );
-        
+        dojo.debug( "onResized [" + this.widgetId + "]" );
         if ( ! this.windowIsSizing )
         {
             var resizeWidget = this.getResizeHandleWidget();
@@ -986,8 +1188,8 @@
 
         var mouse = dojo.html.getCursorPosition(e);
 		this.updateDragOffset();
-		var x = this.dragOffset.left + mouse.x;
-		var y = this.dragOffset.top + mouse.y;
+		var x = this.dragOffset.x + mouse.x;
+		var y = this.dragOffset.y + mouse.y;
         //var x = mouse.x ;
         //var y = mouse.y ;
 
@@ -1105,3 +1307,115 @@
         //dojo.debug( "jetspeed.ui.widget.PortletWindowDragMoveSource.onDragEnd" );
 	}
 });
+
+/* start - new layout management (not yet used) */
+jetspeed.ui.spacerwindows = {};
+jetspeed.ui.getSpacerWindow = function( associatedWidgetId, instanceNumber )
+{
+    var spacerWin = jetspeed.ui.spacerwindows[ jetspeed.ui.getSpacerDomNodeId( associatedWidgetId,
instanceNumber ) ];
+    return spacerWin;
+};
+jetspeed.ui.getSpacerWindowFromNode = function( spacerWindowDomNode )
+{
+    if ( ! spacerWindowDomNode ) return null;
+    var domNodeId = spacerWindowDomNode.id;
+    if ( ! domNodeId ) return null;
+    return jetspeed.ui.spacerwindows[ domNodeId ];
+}
+jetspeed.ui.getSpacerWindows = function( associatedWidgetId, minNeeded )
+{
+    if ( ! minNeeded )
+        minNeeded = null;
+    var spacerWindows = [];
+    var instanceNum = 1;
+    var spacerWin = null;
+    while ( instanceNum == 1 || spacerWin != null )
+    {
+        spacerWin = jetspeed.ui.spacerwindows[ jetspeed.ui.getSpacerDomNodeId( associatedWidgetId,
instanceNum ) ];
+        if ( spacerWin != null )
+        {
+            spacerWindows.push( spacerWin );
+        }
+        instanceNum++;
+    }
+    if ( minNeeded && minNeeded > 0 && spacerWindows.length < minNeeded
)
+    {
+        instanceNum = spacerWindows.length + 1;
+        while ( instanceNum <= minNeeded )
+        {
+            spacerWin = new jetspeed.ui.SpacerWindow( associatedWidgetId, instanceNum );
+            jetspeed.ui.spacerwindows[ spacerWin.domNodeId ] = spacerWin;
+            spacerWindows.push( spacerWin );
+        }
+    }
+    return spacerWindows;
+};
+jetspeed.ui.getSpacerDomNodeIdPrefix = function( associatedWidgetId )
+{
+    return associatedWidgetId + "_spacer_";
+};
+jetspeed.ui.getSpacerDomNodeId = function( associatedWidgetId, instanceNumber )
+{
+    return associatedWidgetId + "_spacer_" + instanceNumber;
+};
+jetspeed.ui.SpacerWindow = function( associatedWidgetId, instanceNumber )
+{   // use getSpacerWindows for create - do not call ctor directly
+    this.windowWidgetId = associatedWidgetId;
+    this.instanceNumber = instanceNumber;
+    this.domNodeIdPrefix = jetspeed.ui.getSpacerDomNodeIdPrefix( associatedWidgetId );
+    this.domNodeId = jetspeed.ui.getSpacerDomNodeId( associatedWidgetId, instanceNumber );
+};
+dojo.lang.extend( jetspeed.ui.SpacerWindow, {
+    sizeDomNode: function( height )
+    {
+        var spacerDomNode = this.getDomNode();
+        if ( spacerDomNode == null )
+        {
+            spacerDomNode = document.createElement( "div" );
+            dojo.html.setClass( spacerDomNode, jetspeed.id.PORTLET_WINDOW_GHOST_STYLE_CLASS
) ;
+            spacerDomNode.id = this.domNodeId;
+            this.domNode = spacerDomNode;
+        }
+        spacerDomNode.style.height = height + "px";
+    },
+    getGroupNodes: function()
+    {
+        return this._getSiblings( true );
+    },
+    getGroupSiblings: function()
+    {
+        return this._getSiblings( false );
+    },
+    _getGroupSiblings: function( /* boolean */ includeSelf )
+    {
+        if ( ! jetspeed.columns ) return null;
+        var siblings = [];
+        for ( var i = 0 ; i < jetspeed.columns.length ; i++ )
+        {
+            var columnElmt = jetspeed.columns[i];
+            var spacerChildren = jetspeed.ui.getPortletWindowChildren( columnElmt, null,
true, true );
+            if ( spacerChildren == null ) continue;
+            for ( var j = 0 ; j < spacerChildren.length ; j++ )
+            {
+                var tId = spacerChildren[j].id;
+                if ( tId != null && tId.indexOf( this.domNodeIdPrefix ) == 0 )
+                {
+                    if ( includeSelf || this.domNodeId != tId )
+                        siblings.push( spacerChildren[j] );
+                }
+            }
+        }
+        return spacerChildren;
+    },
+    getPortletWindow: function()
+    {
+        
+    },
+    getDomNode: function()
+    {
+        if ( this.domNode != null ) return this.domNode ;
+        this.domNode = document.getElementById( this.domNodeId );
+        return this.domNode;
+    }
+});
+/* end - new layout management (not yet used) */



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message