portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r413133 - in /portals/jetspeed-2/trunk/src/webapp: desktop-themes/blue/ desktop-themes/tigris/ desktop-themes/tigris/css/ javascript/desktop/core/ javascript/desktop/widget/ javascript/desktop/windowthemes/blueocean/css/ javascript/desktop/...
Date Fri, 09 Jun 2006 19:33:30 GMT
Author: taylor
Date: Fri Jun  9 12:33:29 2006
New Revision: 413133

URL: http://svn.apache.org/viewvc?rev=413133&view=rev
Log:
portlet selector implementation from Steve Milek

Added:
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletDefContainer.js
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/css/PortletDefContainer.css
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-28.jpg   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-endcap-28.jpg   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/desktop/resizeHandle.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/list-add.png   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainer.html
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainerItemTemplate.html
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/css/PortletDefContainer.css
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-28.jpg   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-endcap-28.jpg   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/desktop/resizeHandle.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/list-add.png   (with props)
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainer.html
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainerItemTemplate.html
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/tigris/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/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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -53,12 +53,14 @@
     var djConfig = {isDebug: true, debugAtAllCosts: true};
     //var djConfig = {isDebug: false, debugAtAllCosts: false};
     // needed for js debuggers (both venkman and visual studio)
-    djConfig.baseScriptUri = '<%= desktop.getPortalResourceUrl("/javascript/dojo/") %>' ;
-    {   // presence of ;jesessionid in dojo baseScriptUri is bad news
-        var tEnds = djConfig.baseScriptUri.indexOf(";jsessionid=");
-        if (tEnds > 0) djConfig.baseScriptUri = djConfig.baseScriptUri.substring(0, tEnds);
+    function de_jsessionid_url( url )
+    {   // presence of ;jsessionid in dojo baseScriptUri is bad news
+        var tEnds = url.indexOf(";jsessionid=");
+        if (tEnds > 0) url = url.substring(0, tEnds);
+        return url;
     }
-    djConfig.desktopThemeRootUrl = '<%= desktop.getDesktopThemeRootUrl() %>';
+    djConfig.baseScriptUri = de_jsessionid_url( '<%= desktop.getPortalResourceUrl("/javascript/dojo/") %>' );
+    djConfig.desktopThemeRootUrl = de_jsessionid_url( '<%= desktop.getDesktopThemeRootUrl() %>' );
 </script>
 <!-- 
   DOJO Script
@@ -97,6 +99,7 @@
     dojo.require("jetspeed.ui.widget.PortletWindow");
     dojo.require("jetspeed.ui.widget.PortalTabContainer");
     dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+    dojo.require("jetspeed.ui.widget.PortletDefContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -111,7 +114,7 @@
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', '<%= desktop.getDesktopThemeRootUrl() %>' );
+        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', de_jsessionid_url( '<%= desktop.getDesktopThemeRootUrl() %>' ) );
     }
     function doRender( url, portletEntityId )
     {
@@ -134,7 +137,7 @@
 </script>
 <style>
 
-html, body, .jetspeedDesktop
+html, body, #jetspeedDesktop
 {	
     width: 100%;	/* make the body expand to fill the visible window */
     height: 100%;

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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -27,12 +27,14 @@
     var djConfig = {isDebug: true, debugAtAllCosts: true};
     //var djConfig = {isDebug: false, debugAtAllCosts: false};
     // needed for js debuggers (both venkman and visual studio)
-    djConfig.baseScriptUri = '$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/")';
-    {   // presence of ;jesessionid in dojo baseScriptUri is bad news
-        var tEnds = djConfig.baseScriptUri.indexOf(";jsessionid=");
-        if (tEnds > 0) djConfig.baseScriptUri = djConfig.baseScriptUri.substring(0, tEnds);
+    function de_jsessionid_url( url )
+    {   // presence of ;jsessionid in dojo baseScriptUri is bad news
+        var tEnds = url.indexOf(";jsessionid=");
+        if (tEnds > 0) url = url.substring(0, tEnds);
+        return url;
     }
-    djConfig.desktopThemeRootUrl = "$jetspeedDesktop.getDesktopThemeRootUrl()";
+    djConfig.baseScriptUri = de_jsessionid_url( '$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/")' );
+    djConfig.desktopThemeRootUrl = de_jsessionid_url( "$jetspeedDesktop.getDesktopThemeRootUrl()" );
 </script>
 <!-- 
   DOJO Script
@@ -48,7 +50,7 @@
     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");
@@ -60,7 +62,7 @@
     dojo.require('dojo.widget.SplitContainer');
     dojo.require('dojo.widget.TabContainer');
     dojo.require('dojo.widget.Tree');
-			    dojo.require('dojo.widget.SortableTable');
+    dojo.require('dojo.widget.SortableTable');
 
     dojo.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
     dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
@@ -71,6 +73,7 @@
     dojo.require("jetspeed.ui.widget.PortletWindow");
     dojo.require("jetspeed.ui.widget.PortalTabContainer");
     dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+    dojo.require("jetspeed.ui.widget.PortletDefContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -85,7 +88,7 @@
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", "$jetspeedDesktop.getDesktopThemeRootUrl()" );
+        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", de_jsessionid_url( "$jetspeedDesktop.getDesktopThemeRootUrl()" ) );
     }
     function doRender(url,portletEntityId)
     {
@@ -108,7 +111,7 @@
 </script>
 <style>
 
-html, body, .jetspeedDesktop
+html, body, #jetspeedDesktop
 {	
     width: 100%;	/* make the body expand to fill the visible window */
     height: 100%;

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css?rev=413133&r1=413132&r2=413133&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css Fri Jun  9 12:33:29 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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -51,12 +51,14 @@
     var djConfig = {isDebug: true, debugAtAllCosts: true};
     //var djConfig = {isDebug: false, debugAtAllCosts: false};
     // needed for js debuggers (both venkman and visual studio)
-    djConfig.baseScriptUri = '<%= desktop.getPortalResourceUrl("/javascript/dojo/") %>' ;
-    {   // presence of ;jesessionid in dojo baseScriptUri is bad news
-        var tEnds = djConfig.baseScriptUri.indexOf(";jsessionid=");
-        if (tEnds > 0) djConfig.baseScriptUri = djConfig.baseScriptUri.substring(0, tEnds);
+    function de_jsessionid_url( url )
+    {   // presence of ;jsessionid in dojo baseScriptUri is bad news
+        var tEnds = url.indexOf(";jsessionid=");
+        if (tEnds > 0) url = url.substring(0, tEnds);
+        return url;
     }
-    djConfig.desktopThemeRootUrl = '<%= desktop.getDesktopThemeRootUrl() %>';
+    djConfig.baseScriptUri = de_jsessionid_url( '<%= desktop.getPortalResourceUrl("/javascript/dojo/") %>' );
+    djConfig.desktopThemeRootUrl = de_jsessionid_url( '<%= desktop.getDesktopThemeRootUrl() %>' );
 </script>
 <!-- 
   DOJO Script
@@ -77,6 +79,13 @@
     dojo.require("dojo.widget.AccordionPane");
     dojo.require("dojo.widget.Menu2");
     dojo.require("dojo.fx.html");
+
+    dojo.require('dojo.widget.LayoutContainer');
+    dojo.require('dojo.widget.ContentPane');
+    dojo.require('dojo.widget.LinkPane');
+    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');
@@ -88,6 +97,7 @@
     dojo.require("jetspeed.ui.widget.PortletWindow");
     dojo.require("jetspeed.ui.widget.PortalTabContainer");
     dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+    dojo.require("jetspeed.ui.widget.PortletDefContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -102,7 +112,7 @@
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', '<%= desktop.getDesktopThemeRootUrl() %>' );
+        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', de_jsessionid_url( '<%= desktop.getDesktopThemeRootUrl() %>' ) );
     }
     function doRender( url, portletEntityId )
     {
@@ -125,7 +135,7 @@
 </script>
 <style>
 
-html, body, .jetspeedDesktop
+html, body, #jetspeedDesktop
 {	
     width: 100%;	/* make the body expand to fill the visible window */
     height: 100%;

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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -25,12 +25,14 @@
     var djConfig = {isDebug: true, debugAtAllCosts: true};
     //var djConfig = {isDebug: false, debugAtAllCosts: false};
     // needed for js debuggers (both venkman and visual studio)
-    djConfig.baseScriptUri = '$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/")';
-    {   // presence of ;jesessionid in dojo baseScriptUri is bad news
-        var tEnds = djConfig.baseScriptUri.indexOf(";jsessionid=");
-        if (tEnds > 0) djConfig.baseScriptUri = djConfig.baseScriptUri.substring(0, tEnds);
+    function de_jsessionid_url( url )
+    {   // presence of ;jsessionid in dojo baseScriptUri is bad news
+        var tEnds = url.indexOf(";jsessionid=");
+        if (tEnds > 0) url = url.substring(0, tEnds);
+        return url;
     }
-    djConfig.desktopThemeRootUrl = "$jetspeedDesktop.getDesktopThemeRootUrl()";
+    djConfig.baseScriptUri = de_jsessionid_url( '$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/")' );
+    djConfig.desktopThemeRootUrl = de_jsessionid_url( "$jetspeedDesktop.getDesktopThemeRootUrl()" );
 </script>
 <!-- 
   DOJO Script
@@ -46,12 +48,19 @@
     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.require('dojo.widget.LayoutContainer');
+    dojo.require('dojo.widget.ContentPane');
+    dojo.require('dojo.widget.LinkPane');
+    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');
@@ -62,6 +71,7 @@
     dojo.require("jetspeed.ui.widget.PortletWindow");
     dojo.require("jetspeed.ui.widget.PortalTabContainer");
     dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+    dojo.require("jetspeed.ui.widget.PortletDefContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -76,7 +86,7 @@
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", "$jetspeedDesktop.getDesktopThemeRootUrl()" );
+        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", de_jsessionid_url( "$jetspeedDesktop.getDesktopThemeRootUrl()" ) );
     }
     function doRender(url,portletEntityId)
     {
@@ -99,7 +109,7 @@
 </script>
 <style>
 
-html, body, .jetspeedDesktop
+html, body, #jetspeedDesktop
 {	
     width: 100%;	/* make the body expand to fill the visible window */
     height: 100%;

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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -55,6 +55,7 @@
     DESKTOP: "jetspeedDesktop",
     TASKBAR: "jetspeedTaskbar",
     COLUMNS: "jetspeedColumns",
+    SELECTOR: "jetspeedSelector",
     PORTLET_STYLE_CLASS: "portlet",
     PORTLET_WINDOW_STYLE_CLASS: "dojoFloatingPane",
     PORTLET_WINDOW_GHOST_STYLE_CLASS: "ghostPane",
@@ -85,10 +86,13 @@
 jetspeed.prefs = 
 {
     windowTiling: 2,     // number > 0 is interpreted as number of columns; 0 or false indicates no-columns, free-floating windows
-    windowTilingVariableWidth: false,   // only meaningful when windowTitling > 0
-    windowTilingVariableHeight: true,   // only meaningful when windowTitling > 0
+    windowTilingVariableWidth: false,   // only meaningful when windowTiling > 0
+    windowTilingVariableHeight: true,   // only meaningful when windowTiling > 0
     //portalTaskBarType: "blee"  // BOZO: need pref/s to handle this ( instead of html elements in the content )
     
+    defaultPortletWidth: "280",
+    defaultPortletHeight: "200",
+
     desktopTheme: null,
     desktopThemeRootUrl: null,
     getDesktopTheme: function()
@@ -102,7 +106,11 @@
         if ( jetspeed.prefs.desktopThemeRootUrl == null )
             return djConfig.desktopThemeRootUrl;
         return jetspeed.prefs.desktopThemeRootUrl;
-    }        
+    },
+
+    portletSelectorWindowTitle: "Portlet Selector",
+    portletSelectorWindowIcon: "text-x-script.png",
+    portletSelectorBounds: { x: 20, y: 20, width: 400, height: 600 }
 };
 
 // ... jetspeed debug options
@@ -127,12 +135,12 @@
 //portlets: [dp-3 LocaleSelector, dp-16 RoleSecurityTest, dp-17 UserInfoTest, dp-22 ForgottenPasswordPortlet, dp-18 BookmarkPortlet, dp-23 UserRegistrationPortlet, dp-7 PickANumberPortlet, dp-9 IFramePortlet, dp-12 LoginPortlet]
 //jetspeed.debugPortletEntityIdFilter = [ "dp-18" ];
 jetspeed.debugPortletWindowIcons = [ "text-x-generic.png", "text-html.png", "application-x-executable.png" ];
-jetspeed.debugPortletWindowThemes = [ "blueocean" ];  /* , "tigris", "blueocean" ]; */
+jetspeed.debugPortletWindowThemes = [ "blueocean", "tigris" ];  /* , "tigris", "blueocean" ]; */
 //jetspeed.debugContentDumpIds = [ ".*" ];                        // dump all responses
 //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", "getportlets" ]; // , "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1", "jsfCalendar"
+jetspeed.debugContentDumpIds = [ "notifyGridSelect", "P-10acd169a40-10001", "reports-select", "addportlet" ]; // , "getportlets", "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1", "jsfCalendar"
 //jetspeed.debugContentDumpIds = [ "P-10aba.*" ];
 
 // ... load page /portlets
@@ -152,6 +160,16 @@
     jetspeed.page = new jetspeed.om.Page();
     jetspeed.page.retrievePsml();
 };
+jetspeed.updatePage = function()
+{
+    var previousPage = jetspeed.page;
+    if ( previousPage != null )
+    {
+        jetspeed.page = new jetspeed.om.Page();
+        jetspeed.page.retrievePsml( jetspeed.om.PageContentListenerUpdate( previousPage ) );
+    }
+};
+
 jetspeed.loadDebugWindow = function()
 {
     if ( djConfig.isDebug && jetspeed.debugInPortletWindow && dojo.byId( jetspeed.debug.debugContainerId ) == null )
@@ -425,7 +443,7 @@
         return ;
 
     navUrl = jetspeed.page.makePageUrl( navUrl );
-
+    
     if ( navTarget == "top" )
         top.location.href = navUrl;
     else if ( navTarget == "parent" )
@@ -434,7 +452,27 @@
         window.location.href = navUrl;  // BOZO:NOW: popups
 };
 
-jetspeed.getPortlets = function()
+jetspeed.loadPortletSelector = function()
+{
+    var windowParams = {};
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ] = false;
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_THEME ] = jetspeed.page.getWindowThemeDefault();
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_TITLE ] = jetspeed.prefs.portletSelectorWindowTitle;
+    windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ] = jetspeed.prefs.portletSelectorWindowIcon;
+    windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = jetspeed.id.PORTLET_WINDOW_ID_PREFIX + jetspeed.id.SELECTOR;
+    windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = jetspeed.prefs.portletSelectorBounds.width;
+    windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = jetspeed.prefs.portletSelectorBounds.height;
+    windowParams[ jetspeed.id.PORTLET_PROP_LEFT ] = jetspeed.prefs.portletSelectorBounds.x;
+    windowParams[ jetspeed.id.PORTLET_PROP_TOP ] = jetspeed.prefs.portletSelectorBounds.y;
+    windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = true;
+    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 );
+    pwWidgetParams.retrieveContent( null, null );
+    jetspeed.getPortletDefinitions();
+};
+
+jetspeed.getPortletDefinitions = function()
 {
     var contentListener = new jetspeed.om.PortletSelectorAjaxApiContentListener();
     var queryString = "?action=getportlets";
@@ -444,24 +482,14 @@
     jetspeed.url.retrieveContent( getPortletsUrl, contentListener, null, mimeType, ajaxApiContext, jetspeed.debugContentDumpIds );
 };
 
-jetspeed.loadPortletSelector = function()
+jetspeed.addPortletDefinition = function( /* jetspeed.om.PortletDef */ portletDef, windowWidgetId )
 {
-    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 );
+    var contentListener = new jetspeed.om.PortletAddAjaxApiCallbackContentListener( portletDef, windowWidgetId );
+    var queryString = "?action=add&id=" + escape( portletDef.getPortletName() );
+    var addPortletUrl = jetspeed.page.getPsmlUrl() + queryString;
+    var mimeType = "text/xml";
+    var ajaxApiContext = new jetspeed.om.Id( "addportlet", { } );
+    jetspeed.url.retrieveContent( addPortletUrl, contentListener, null, mimeType, ajaxApiContext, jetspeed.debugContentDumpIds );
 };
 
 jetspeed.debugDumpForm = function( formNode )
@@ -548,6 +576,10 @@
         jetspeed.url.pathInitialize();
     return jetspeed.url.basePortalUrl() + jetspeed.url.path.JETSPEED ;
 };
+jetspeed.url.basePortalWindowThemeUrl = function( windowtheme )
+{
+    return jetspeed.url.basePortalDesktopUrl() + "/javascript/desktop/windowthemes/" + windowtheme;
+};
 jetspeed.url.validateUrlStartsWithHttp = function( url )
 {
     if ( url )
@@ -682,7 +714,10 @@
 {
     getContent: function( /* String */ requestUrl, contentListener, /* DOM Form */ formObject, /* String */ mimeType, domainModelObject, /* String[] */ debugContentDumpIds )
     {
-        jetspeed.url.retrieveContent( requestUrl, contentListener, formObject, mimeType, domainModelObject, debugContentDumpIds );
+        var content = '<div widgetId="' + jetspeed.id.SELECTOR + '" dojoType="PortletDefContainer"></div>';
+        if ( ! contentListener )
+            contentListener = new jetspeed.om.BasicContentListener();
+        contentListener.notifySuccess( content, requestUrl, domainModelObject ) ;
     }
 };
 
@@ -707,6 +742,32 @@
 };
 
 // ... jetspeed.om.PageContentListenerCreateWidget
+jetspeed.om.PageContentListenerUpdate = function( /* jetspeed.om.Page */ previousPage )
+{
+    this.previousPage = previousPage;
+};
+jetspeed.om.PageContentListenerUpdate.prototype =
+{
+    notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, /* Page */ page )
+    {
+        page.getPortletsFromPSML( data );
+        var updatedPortlets = page.getPortlets();
+        for ( var i = 0 ; i < updatedPortlets.length ; i++ )
+        {
+            var prevPortlet = this.previousPage.getPortlet( updatedPortlets[i].entityId );
+            if ( prevPortlet == null )
+            {
+                dojo.debug( "PageContentListenerUpdate  new portlet definition in page: " + updatedPortlets[i].toString() ) ;
+            }
+        }
+    },
+    notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, /* Page */ page )
+    {
+        dojo.raise( "PageContentListenerUpdate notifyFailure url=" + requestUrl + " type=" + type + " error=" + error ) ;
+    }
+};
+
+// ... jetspeed.om.PageContentListenerCreateWidget
 jetspeed.om.PageContentListenerCreateWidget = function()
 {
 };
@@ -881,6 +942,16 @@
         }
     },
 
+    addPortlet: function( portletName, portletEntityId, windowWidgetId )
+    {
+        var portlet = new jetspeed.om.Portlet( portletName, portletEntityId ) ;
+        if ( windowWidgetId )
+            portlet.putProperty( jetspeed.id.PORTLET_PROP_WIDGET_ID, windowWidgetId );
+        portlet.initialize();
+        this.putPortlet( portlet ) ;
+        portlet.retrieveContent();
+    },
+
     _portletZIndexCompare: function( portletA, portletB )
     {   // uses saved state only - does not check with window widget
         var aZIndex = null;
@@ -945,6 +1016,17 @@
         }
         return numberOfColumns;
     },
+    getWindowThemeDefault: function()
+    {
+        var windowtheme = null;
+        if ( dojo.lang.indexOf( jetspeed.id.WINDOW_THEMES, this.getPortletDecorator() ) != -1 )
+            windowtheme = this.getPortletDecorator();
+        else if ( djConfig.isDebug && jetspeed.debugPortletWindowThemes != null )
+            windowtheme = jetspeed.debugPortletWindowThemes[ Math.floor( Math.random() * jetspeed.debugPortletWindowThemes.length ) ];
+        else if ( jetspeed.id.WINDOW_THEMES )
+            windowtheme = jetspeed.id.WINDOW_THEMES[0];
+        return windowtheme;
+    },
     getPortletArrayByZIndex: function()
     {
         var portletArray = this.getPortletArray();
@@ -1033,6 +1115,15 @@
         if (! portlet || ! this.portlets) return ;
         delete this.portlets[ portlet.entityId ] ;
     },
+    removePortletFromPage: function( /* Portlet */ portlet )
+    {
+        var contentListener = new jetspeed.om.PortletAddAjaxApiCallbackContentListener( portletDef, windowWidgetId );
+        var queryString = "?action=remove&id=" + escape( portletDef.getPortletName() );
+        var addPortletUrl = jetspeed.page.getPsmlUrl() + queryString;
+        var mimeType = "text/xml";
+        var ajaxApiContext = new jetspeed.om.Id( "removeportlet", { } );
+        jetspeed.url.retrieveContent( addPortletUrl, contentListener, null, mimeType, ajaxApiContext, jetspeed.debugContentDumpIds );
+    },
     _destroyPortlets: function()
     {
         for (var portletIndex in this.portlets)
@@ -1831,7 +1922,7 @@
                 }
                 else if ( windowPositionStatic )
                 {
-                    // moveabi submission adjusts other portlets that have had their row changed because of portlet inserted or removed from higher row
+                    // moveapi submission adjusts other portlets that have had their row changed because of portlet inserted or removed from higher row
                 }
             }
         }
@@ -2248,6 +2339,48 @@
 });
 
 
+// ... jetspeed.om.MenusAjaxApiCallbackContentListener
+jetspeed.om.PortletAddAjaxApiCallbackContentListener = function(  /* jetspeed.om.PortletDef */ portletDef, windowWidgetId )
+{
+    this.portletDef = portletDef;
+    this.windowWidgetId = windowWidgetId;
+};
+dojo.lang.extend( jetspeed.om.PortletAddAjaxApiCallbackContentListener,
+{
+    notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, domainModelObject )
+    {
+        var entityId = this.parseAddPortletResponse( data );
+        if ( entityId )
+            jetspeed.page.addPortlet( this.portletDef.getPortletName(), entityId, this.windowWidgetId );
+    },
+    parseAddPortletResponse: function( /* XMLNode */ node )
+    {
+        var entityId = null;
+        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 == "entity" )
+            {
+                entityId = ( ( child && child.firstChild ) ? child.firstChild.nodeValue : null );
+                break;
+            }
+        }
+        return entityId;
+    },
+    notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, domainModelObject )
+    {
+        dojo.raise( "PortletAddAjaxApiCallbackContentListener error [" + domainModelObject.toString() + "] url: " + requestUrl + " type: " + type + " error: " + error );
+    }
+});
+
 // ... jetspeed.om.PortletSelectorAjaxApiContentListener
 jetspeed.om.PortletSelectorAjaxApiContentListener = function()
 {
@@ -2257,7 +2390,15 @@
     notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, domainModelObject )
     {
         var portletList = this.parsePortlets( data );
-        //domainModelObject.page.putMenu( menuObj );
+
+        var portletSelector = dojo.widget.byId( jetspeed.id.SELECTOR ) ;
+        if ( portletSelector != null )
+        {
+            for ( var i = 0 ; i < portletList.length ; i++ )
+            {
+                portletSelector.addChild( portletList[i] );
+            }
+        }
 
         if ( dojo.lang.isFunction( this.notifyFinished ) )
         {
@@ -2296,7 +2437,7 @@
                     if ( pChildLName == "portlet" )
                     {
                         var portletDef = this.parsePortletElement( pChild );
-                        dojo.debug( "new portletDef  name=" + portletDef.getPortletName() + "  displayName=" + portletDef.getPortletDisplayName() + "  description=" + portletDef.getPortletDescription() ) ;
+                        //dojo.debug( "parsePortlets  portletDef  name=" + portletDef.getPortletName() + "  displayName=" + portletDef.getPortletDisplayName() + "  description=" + portletDef.getPortletDescription() ) ;
                         portletList.push( portletDef ) ;
                     }
                 }

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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -37,6 +37,13 @@
         this.templateCssPath = new dojo.uri.Uri( jetspeed.prefs.getDesktopThemeRootUrl() + "/css/PortalTabContainer.css" ) ;
         jetspeed.ui.widget.PortalTabContainer.superclass.postMixInProperties.call( this, args, fragment, parentComp );
     },
+    // dojo.widget.Widget create protocol
+    postCreate: function( args, fragment, parentComp )
+    {
+        jetspeed.ui.widget.PortalTabContainer.superclass.postCreate.call( this, args, fragment, parentComp );
+        
+        this.contextMenuCreate();
+    },
     addTab: function( /* jetspeed.om.MenuOption */ menuOpt )
     {
         if ( ! menuOpt ) return;
@@ -55,12 +62,13 @@
         }
         this.js_addingTab = false;
     },
-    selectTab: function( tab )
+    selectTab: function( tab, _noRefresh )
     {
         jetspeed.ui.widget.PortalTabContainer.superclass.selectTab.call( this, tab );
-        //dojo.debug( "PortalTabContainer.selectTab " + tab.label);
-        if ( ! this.js_addingTab )
+        if ( ! this.js_addingTab && ! _noRefresh )
+        {
             tab.menuOption.navigateTo();
+        }
 	},
     _showTab: function( tab )
     {
@@ -85,6 +93,27 @@
                 this.addTab( menuOption );
             }
         }
+    },
+    contextMenuCreate: function()
+    {
+        var taskBarContextMenu = dojo.widget.createWidget( "PopupMenu2", { id: "jstc_menu", targetNodeIds: [ this.domNode.id ], contextMenuForWindow: false }, null );
+        //var resetLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstc_menu_item1", caption: "Reset Window Layout"} );
+        //var freeFormLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstc_menu_item2", caption: "Free Flowing Layout"} );
+        //var twoColummLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstc_menu_item3", caption: "Two Column Layout"} );
+        //var threeColummLayoutMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstc_menu_item4", caption: "Three Column Layout"} );
+        var openPortletSelectorMenuItem = dojo.widget.createWidget( "MenuItem2", { id: "jstc_menu_item5", caption: "Portlet Selector"} );
+        
+        //dojo.event.connect( resetLayoutMenuItem, "onClick", function(e) { jetspeed.page.resetWindowLayout(); } );
+        //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(); } );
+        dojo.event.connect( openPortletSelectorMenuItem, "onClick", function(e) { jetspeed.loadPortletSelector(); } );
+        //taskBarContextMenu.addChild( resetLayoutMenuItem );
+        //taskBarContextMenu.addChild( freeFormLayoutMenuItem );
+        //taskBarContextMenu.addChild( twoColummLayoutMenuItem );
+        //taskBarContextMenu.addChild( threeColummLayoutMenuItem );
+        taskBarContextMenu.addChild( openPortletSelectorMenuItem );
+        document.body.appendChild( taskBarContextMenu.domNode );
     }
 });
 

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletDefContainer.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletDefContainer.js?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletDefContainer.js (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/PortletDefContainer.js Fri Jun  9 12:33:29 2006
@@ -0,0 +1,230 @@
+/*
+ * 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.PortletDefContainer");
+dojo.provide("jetspeed.ui.widget.PortletDefContainerItem");
+
+dojo.require("jetspeed.desktop.core");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.FloatingPane");
+
+jetspeed.ui.widget.PortletDefContainer = function()
+{
+    this.widgetType = "PortletDefContainer";
+
+    dojo.widget.html.ContentPane.call( this );
+};
+
+dojo.inherits(jetspeed.ui.widget.PortletDefContainer, dojo.widget.html.ContentPane);
+
+dojo.lang.extend(jetspeed.ui.widget.PortletDefContainer, {
+    // dojo.widget.Widget create protocol
+    postMixInProperties: function( args, fragment, parentComp )
+    {
+        this.templatePath = new dojo.uri.dojoUri( jetspeed.url.basePortalWindowThemeUrl( jetspeed.page.getWindowThemeDefault() ) + "/templates/PortletDefContainer.html");
+        this.templateCssPath = new dojo.uri.Uri( jetspeed.url.basePortalWindowThemeUrl( jetspeed.page.getWindowThemeDefault() ) + "/css/PortletDefContainer.css" );
+
+        jetspeed.ui.widget.PortletDefContainer.superclass.postMixInProperties.call( this );
+
+        var pdcProps = {};
+        pdcProps.templateCssPath = new dojo.uri.Uri( jetspeed.url.basePortalWindowThemeUrl( jetspeed.page.getWindowThemeDefault() ) + "/css/PortletDefContainer.css" ) ;
+        pdcProps.templatePath = new dojo.uri.Uri( jetspeed.url.basePortalWindowThemeUrl( jetspeed.page.getWindowThemeDefault() ) + "/templates/PortletDefContainerItemTemplate.html" ) ;
+
+        this.portletDefContainerProps = pdcProps ;
+    },
+
+    // dojo.widget.Widget create protocol
+    postCreate: function( args, fragment, parentComp )
+    {
+        jetspeed.ui.widget.PortletDefContainer.superclass.postCreate.call( this );
+        
+        if ( ! this.domNode.id )
+            this.domNode.id = this.widgetId;
+    },
+
+    addChild: function( child )
+    {
+        var pdcProps = {portletDef: child, caption: child.getPortletDisplayName(), iconSrc: "javascript/desktop/windowicons/document.gif" } ;
+        dojo.lang.mixin(pdcProps, this.portletDefContainerProps);
+        var pdc = dojo.widget.createWidget("PortletDefContainerItem", pdcProps);
+        jetspeed.ui.widget.PortletDefContainer.superclass.addChild.call(this,pdc);
+    }
+});
+
+
+dojo.widget.defineWidget(
+	"jetspeed.ui.widget.PortletDefContainerItem",
+	dojo.widget.html.TaskBarItem,
+    {
+        initializer: function()
+        {
+            this.widgetType = "PortletDefContainerItem";
+		},
+        onClick: function()
+        {
+	    },
+        fillInTemplate: function()
+        {
+            var imgNode = this.itemIcon;
+            if ( imgNode )
+            {
+                imgNode.src = this.iconSrc;
+            }
+            var textNode = this.itemText;
+            textNode.appendChild( document.createTextNode( this.caption ) );
+            dojo.html.disableSelection( this.domNode );
+	    },
+        /*
+        postCreate: function()
+        {
+            var dragSource = new dojo.dnd.HtmlDragSource(this.domNode, "PortletDef" );
+            //dragSource.constrainingContainer = dojo.byId( jetspeed.id.DESKTOP );
+            //dragSource.constrainToContainer = true;
+
+            //javascript: alert( dojo.style.getInnerHeight( dojo.byId( "jetspeedDesktop" ) ) )
+            //javascript: jetspeed.loadPortletSelector()
+            var dropTarget = new dojo.dnd.HtmlDropTarget( dojo.byId( jetspeed.id.DESKTOP ), ["PortletDef"] );
+            var pdItemWidget = this ;
+            dojo.event.connect( dragSource, "onDragEnd", function(e) {
+                dojo.debug( "PortletDefContainerItem onDragEnd status=" + e.dragStatus );
+            });
+        }
+        */
+        postCreate: function()
+        {
+            var dragSource = new jetspeed.ui.widget.PortletDefDragSource( this.portletDef, this );
+            //var dropTarget = new dojo.dnd.HtmlDropTarget( dojo.byId( jetspeed.id.DESKTOP ), ["PortletDef"] );
+            var pdItemWidget = this ;
+            dojo.event.connect( dragSource, "onDragEnd", function(e) {
+                dojo.debug( "PortletDefContainerItem onDragEnd status=" + e.dragStatus );
+            });
+        }
+	}
+);
+
+//javascript: alert( dojo.style.getInnerHeight( dojo.byId( "jetspeedDesktop" ) ) )
+//javascript: jetspeed.loadPortletSelector()
+
+
+jetspeed.ui.widget.PortletDefDragSource = function( /* jetspeed.om.PortletDef */ portletDef, /* PortletDefContainerItem */ pdcItem )
+{
+    this.portletDef = portletDef;
+	dojo.dnd.HtmlDragMoveSource.call(this, pdcItem.domNode, "PortletDef");
+};
+
+dojo.inherits( jetspeed.ui.widget.PortletDefDragSource, dojo.dnd.HtmlDragMoveSource );
+
+dojo.lang.extend( jetspeed.ui.widget.PortletDefDragSource, {
+	onDragStart: function()
+    {
+        this.windowWidget = this.createPortletWindow( this.portletDef );
+
+        this.windowWidget.makeFreeFloating( this.dragObject );
+        if ( jetspeed.prefs.windowTiling )
+            this.windowWidget.windowPositionStatic = true;   // BOZO: shouldn't happen this way!
+
+        var dragObj = new jetspeed.ui.widget.PortletWindowDragMoveObject( this.windowWidget, this.windowWidget.domNode, this.type );
+
+        jetspeed.addPortletDefinition( this.portletDef, this.windowWidget.widgetId );
+
+		return dragObj;
+	},
+    createPortletWindow: function( /* jetspeed.om.PortletDef */ portletDef )
+    {
+        var baseWidgetId = jetspeed.id.PORTLET_WINDOW_ID_PREFIX + jetspeed.purifyIdentifier( this.portletDef.getPortletName() );
+        var uniquePart = 1; 
+        var widgetId = null;
+        while ( widgetId == null )
+        {
+            widgetId = baseWidgetId + "_" + uniquePart;
+            if ( dojo.widget.byId( widgetId ) != null )
+            {
+                widgetId = null;
+                uniquePart++;
+            }
+        }
+
+        var windowParams = {};
+        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ] = true;
+        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_THEME ] = jetspeed.page.getWindowThemeDefault();
+        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_TITLE ] = this.portletDef.getPortletDisplayName();
+        windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = widgetId;
+        windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = jetspeed.prefs.defaultPortletWidth;
+        windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = jetspeed.prefs.defaultPortletHeight;
+        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 ] = null;
+        var pwWidgetParams = jetspeed.ui.widget.PortletWindow.prototype.staticDefineAsAltInitParameters( null, windowParams );
+        jetspeed.ui.createPortletWindow( pwWidgetParams, null, null );
+
+
+        return dojo.widget.byId( windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] ) ;
+    },
+    onDragEnd: function()
+    {
+        
+    }
+});
+
+dojo.widget.tags.addParseTreeHandler("dojo:portletdefcontainer");
+
+
+jetspeed.ui.widget.PortletDefDragObject = function(/* jetspeed.om.PortletDef */ portletDef, node, type)
+{
+    this.portletDef = portletDef;
+    dojo.dnd.HtmlDragObject.call( this, node, type );
+}
+
+dojo.inherits(jetspeed.ui.widget.PortletDefDragObject, dojo.dnd.HtmlDragObject);
+
+dojo.lang.extend(jetspeed.ui.widget.PortletDefDragObject, {
+    createDragNode: 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 ] = this.portletDef.getPortletDisplayName();
+        windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = jetspeed.id.PORTLET_WINDOW_ID_PREFIX + "bleep";
+        windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = jetspeed.prefs.defaultPortletWidth;
+        windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = jetspeed.prefs.defaultPortletHeight;
+        windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = false;
+        windowParams[ jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER ] = null;
+        var pwWidgetParams = jetspeed.ui.widget.PortletWindow.prototype.staticDefineAsAltInitParameters( null, windowParams );
+        jetspeed.ui.createPortletWindow( pwWidgetParams, null, null );
+
+
+        var newWidget = dojo.widget.byId( windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] ) ;
+        
+		var node = newWidget.domNode; // this.domNode.cloneNode(true);
+		if(this.dragClass) { dojo.html.addClass(node, this.dragClass); }
+		if(this.opacity < 1) { dojo.style.setOpacity(node, this.opacity); }
+		if(dojo.render.html.ie && this.createIframe){
+			with(node.style) {
+				top="0px";
+				left="0px";
+			}
+			var outer = document.createElement("div");
+			outer.appendChild(node);
+			this.bgIframe = new dojo.html.BackgroundIframe(outer);
+			outer.appendChild(this.bgIframe.iframe);
+			node = outer;
+		}
+		node.style.zIndex = 999;
+		return node;
+	}
+    
+});

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=413133&r1=413132&r2=413133&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 Fri Jun  9 12:33:29 2006
@@ -132,16 +132,12 @@
         {
             if ( this.portletWindowTheme )
                 windowtheme = this.portletWindowTheme;
-            else if ( dojo.lang.indexOf( jetspeed.id.WINDOW_THEMES, jetspeed.page.getPortletDecorator() ) != -1 )
-                windowtheme = jetspeed.page.getPortletDecorator();
-            else if ( djConfig.isDebug && jetspeed.debugPortletWindowThemes )
-                windowtheme = jetspeed.debugPortletWindowThemes[ Math.floor( Math.random() * jetspeed.debugPortletWindowThemes.length ) ];
-            else if ( jetspeed.id.WINDOW_THEMES )
-                windowtheme = jetspeed.id.WINDOW_THEMES[0];
+            else
+                windowtheme = jetspeed.page.getWindowThemeDefault();
         }
         this.portletWindowTheme = windowtheme ;
         var prevCssPath = ( this.templateCssPath == null ? null : this.templateCssPath.toString() );
-        this.templateCssPath = new dojo.uri.Uri(jetspeed.url.basePortalDesktopUrl() + "/javascript/desktop/windowthemes/" + windowtheme + "/css/styles.css");
+        this.templateCssPath = new dojo.uri.Uri( jetspeed.url.basePortalWindowThemeUrl( windowtheme ) + "/css/styles.css" );
         if ( this.portletInitialized )
         {   // load new stylesheet    // BOZO: it would be nice to check if this were necessary
             if ( prevCssPath == null || prevCssPath != this.templateCssPath.toString() )
@@ -209,10 +205,10 @@
         }
         
         if ( portletWidth != null && portletWidth > 0 ) portletWidth = Math.floor(portletWidth) + "px";
-        else portletWidth = "280px";
+        else portletWidth = jetspeed.prefs.defaultPortletWidth;
     
         if ( portletHeight != null && portletHeight > 0 ) portletHeight = Math.floor(portletHeight) + "px";
-        else portletHeight = "200px";
+        else portletHeight = jetspeed.prefs.defaultPortletHeight;
             
         if ( portletLeft != null && portletLeft >= 0 ) portletLeft = Math.floor(portletLeft) + "px";
         else portletLeft = (((this.portletIndex -2) * 30 ) + 200) + "px";
@@ -558,7 +554,7 @@
 
     resizeTo: function(w, h, force)
     {
-        dojo.debug( "resizeTo [" + this.widgetId + "]" );
+        //dojo.debug( "resizeTo [" + this.widgetId + "]" );
 		if(w==this.width && h == this.height && ! force){
 			return;
 		}
@@ -769,11 +765,13 @@
         }
     },
 
-    makeFreeFloating: function()
+    makeFreeFloating: function( positioningNode )
     {
-        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 );
+        if ( ! positioningNode )
+            positioningNode = this.domNode;
+        var winAbsPos = dojo.style.getAbsolutePosition( positioningNode, true );
+        var winMarginTop = dojo.style.getPixelValue( positioningNode, "margin-top", true );
+        var winMarginLeft = dojo.style.getPixelValue( positioningNode, "margin-left", true );
         var winWidth = dojo.style.getOuterWidth( this.domNode ) ;
         var winHeight = dojo.style.getOuterHeight( this.domNode ) ;
 
@@ -829,7 +827,7 @@
     onResized: function()
     {
         jetspeed.ui.widget.PortletWindow.superclass.onResized.call( this );
-        dojo.debug( "onResized [" + this.widgetId + "]" );
+        //dojo.debug( "onResized [" + this.widgetId + "]" );
         if ( ! this.windowIsSizing )
         {
             var resizeWidget = this.getResizeHandleWidget();
@@ -1135,7 +1133,8 @@
 {
     this.portletWindow = portletWindow;
     this.windowPositionStatic = this.portletWindow.windowPositionStatic;
-	dojo.dnd.HtmlDragMoveObject.call( this, node, type );}
+	dojo.dnd.HtmlDragMoveObject.call( this, node, type );
+}
 
 dojo.inherits( jetspeed.ui.widget.PortletWindowDragMoveObject, dojo.dnd.HtmlDragMoveObject );
 
@@ -1179,7 +1178,7 @@
             pwGhost.col = inCol;
         }
 
-        dojo.debug( "PortletWindowDragMoveObject [" + this.portletWindow.widgetId + "] onDragStart:  portletWindowNode.hasParent=" + dojo.dom.hasParent( portletWindowNode ) + " dragOffset.left=" + this.dragOffset.left + " dragOffset.top=" + this.dragOffset.top + " dragStartPosition.left=" + this.dragStartPosition.left + " dragStartPosition.top=" + this.dragStartPosition.top );
+        //dojo.debug( "PortletWindowDragMoveObject [" + this.portletWindow.widgetId + "] onDragStart:  portletWindowNode.hasParent=" + dojo.dom.hasParent( portletWindowNode ) + " dragOffset.left=" + this.dragOffset.left + " dragOffset.top=" + this.dragOffset.top + " dragStartPosition.left=" + this.dragStartPosition.left + " dragStartPosition.top=" + this.dragStartPosition.top );
     },
     onDragMove: function( e )
     {

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/css/PortletDefContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/css/PortletDefContainer.css?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/css/PortletDefContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/css/PortletDefContainer.css Fri Jun  9 12:33:29 2006
@@ -0,0 +1,58 @@
+/*
+Copyright 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.
+*/
+
+.portletDefItemTable {
+    /*display: inline; */
+    padding: 0px;
+    margin: 0px 2px 6px 2px;
+    overflow: hidden;
+    width: 100%;
+    /*border-spacing: 0;*/  /* could get rid of cellspacing attribute if IE would support CSS2 better */
+}
+.portletDefItem {
+    background-image: url(../images/blue-metalic-28.jpg);
+    background-repeat: no-repeat;
+	height: 28px;
+    width: 100%;
+    overflow: hidden;
+    /*padding-right: 8px; */
+    cursor: pointer;
+}
+.portletDefItemEndCap {
+    background-image: url(../images/blue-metalic-endcap-28.jpg);
+    background-repeat: no-repeat;
+    height: 28px;
+	width: 4px;
+}
+
+.portletDefItemIcon {
+	vertical-align: top;
+	margin-right: 5px;
+	margin-left: 5px;
+    margin-top: 2px;
+    padding-top: 0px;
+	height: 16px;
+	width: 16px;
+}
+
+.portletDefItemText {
+	color: black;
+	text-decoration: none;
+    font-size: 9pt;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-28.jpg
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-28.jpg?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-28.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-endcap-28.jpg
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-endcap-28.jpg?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/blue-metalic-endcap-28.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/desktop/resizeHandle.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/desktop/resizeHandle.gif?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/desktop/resizeHandle.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/list-add.png
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/list-add.png?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/images/list-add.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainer.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainer.html?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainer.html (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainer.html Fri Jun  9 12:33:29 2006
@@ -0,0 +1,4 @@
+<div id="${this.widgetId}" class="portletDefContainer">
+    Drag Portlet Definitions
+	<div id="${this.widgetId}_container" dojoAttachPoint="containerNode" class="portletDefContainerClient"></div>
+</div>

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainerItemTemplate.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainerItemTemplate.html?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainerItemTemplate.html (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/blueocean/templates/PortletDefContainerItemTemplate.html Fri Jun  9 12:33:29 2006
@@ -0,0 +1 @@
+<table class="portletDefItemTable" cellspacing="0"><tr dojoAttachEvent="onClick"><td class="portletDefItem"><span class="portletDefItemText"><img dojoAttachPoint="itemIcon" class="portletDefItemIcon"><span dojoAttachPoint="itemText"></span></span></td><td class="portletDefItemEndCap"></td></tr></table>

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/css/PortletDefContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/css/PortletDefContainer.css?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/css/PortletDefContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/css/PortletDefContainer.css Fri Jun  9 12:33:29 2006
@@ -0,0 +1,124 @@
+/*
+Copyright 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.
+*/
+
+.portletSelectorFloatingPane {
+	/* essential css */
+	position: relative;
+	overflow: hidden;		/* dojo says 'visible' with this explanation "so drop shadow is displayed"" */
+                            /* we says 'hidden' cause IE likes to kindly expand div to fit content otherwise */
+	z-index: 5;
+	-moz-box-sizing: border-box;
+	-khtml-box-sizing: border-box;
+	
+	/* styling css */
+	border: 1px solid;
+	border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
+	background-color: ThreeDFace;
+
+    width: 100%;
+}
+
+.portletSelectorTitleBar {
+	/* essential css */
+	z-index: 2;
+
+	/* styling css */
+	vertical-align: middle;
+	font: small-caption;
+	cursor: default;
+    line-height: 1.4em;
+
+    background: #98FB98;    /* palegreen */ 
+	color: #4682B4;  /* steelblue */
+
+    height: 22px;
+}
+
+.portletSelectorTitleBarIcon {
+    /* essential css */
+    float: left;
+
+    /* styling css */
+    margin-top: 3px;
+    margin-left: 2px;
+    margin-right: 3px;
+    height: 16px;
+	width: 16px;
+    /* height: 22px; */
+    /* vertical-align: middle; */
+}
+
+.portletSelectorTitleText {
+    padding: 2px 4px 2px 2px;
+    float: left;
+    color: #4682B4;  /* steelblue */
+}
+
+.portletSelectorTitleBarMinimizeIcon {
+	background-image: url(../images/desktop/minimize.gif);
+}
+.portletSelectorTitleBarMaximizeIcon {
+	background-image: url(../images/desktop/maximize.gif);
+}
+.portletSelectorTitleBarRestoreIcon {
+	background-image: url(../images/desktop/restore.gif);
+}
+.portletSelectorTitleBarCloseIcon {
+	background-image: url(../images/desktop/close.gif);
+}
+
+.portletSelectorTitleBarControlIcon {
+	vertical-align: middle;
+	height: 22px;
+	width: 22px;
+	float: right;
+    background-repeat: no-repeat;
+    background-position: center center;
+}
+
+.portletSelectorFloatingPaneClient {
+	position: relative;
+	z-index: 10;
+	border: 1px solid;
+	border-color: ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow;
+	margin: 2px;
+	background-color: ThreeDFace;
+	padding: 8px;
+	font-family: Verdana, Helvetica, Garamond, sans-serif;
+	font-size: 12px;
+	overflow: auto;
+}
+
+/* height for resize bar is specified in var resizeBarHeight */
+.portletSelectorFloatingPaneResizebar {
+	z-index: 10;
+	background-color: ThreeDFace;
+    
+    height: 13px;
+}
+.portletSelectorResizeHandle {
+	float: right;
+	position: absolute;
+	right: 2px;
+	bottom: 2px;
+	width: 13px;
+	height: 13px;
+	z-index: 20;
+	cursor: nw-resize;
+	background-image: url(../images/desktop/resizeHandle.gif);
+    background-repeat: no-repeat;
+	line-height: 0px;
+}

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-28.jpg
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-28.jpg?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-28.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-endcap-28.jpg
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-endcap-28.jpg?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/blue-metalic-endcap-28.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/desktop/resizeHandle.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/desktop/resizeHandle.gif?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/desktop/resizeHandle.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/list-add.png
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/list-add.png?rev=413133&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/images/list-add.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainer.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainer.html?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainer.html (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainer.html Fri Jun  9 12:33:29 2006
@@ -0,0 +1,4 @@
+<div id="${this.widgetId}" class="portletDefContainer">
+    Drag Portlet Definitions
+	<div id="${this.widgetId}_container" dojoAttachPoint="containerNode" class="portletDefContainerClient"></div>
+</div>

Added: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainerItemTemplate.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainerItemTemplate.html?rev=413133&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainerItemTemplate.html (added)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/windowthemes/tigris/templates/PortletDefContainerItemTemplate.html Fri Jun  9 12:33:29 2006
@@ -0,0 +1,14 @@
+<div class="portletSelectorFloatingPane">
+  <div class="portletSelectorTitleBar">
+    <img class="portletSelectorTitleBarIcon" dojoAttachPoint="itemIcon">
+    <div class="portletSelectorTitleText" dojoAttachPoint="itemText"></div>
+    <div class="portletSelectorTitleBarControlIcon portletSelectorTitleBarCloseIcon" ></div>
+    <div class="portletSelectorTitleBarControlIcon portletSelectorTitleBarMaximizeIcon" ></div>
+    <div class="portletSelectorTitleBarControlIcon portletSelectorTitleBarMinimizeIcon" ></div>
+  </div>
+  <div class="portletSelectorFloatingPaneClient">
+  </div>
+  <div class="portletSelectorFloatingPaneResizebar">
+    <div class="portletSelectorResizeHandle"></div>
+  </div>
+</div>



---------------------------------------------------------------------
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