portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r405130 [1/2] - in /portals/jetspeed-2/trunk/src/webapp: desktop-themes/blue/ desktop-themes/blue/css/ desktop-themes/tigris/ desktop-themes/tigris/css/ desktop-themes/tigris/images/ desktop-themes/tigris/images/tabs/ javascript/desktop/cor...
Date Mon, 08 May 2006 18:44:51 GMT
Author: taylor
Date: Mon May  8 11:44:48 2006
New Revision: 405130

URL: http://svn.apache.org/viewcvs?rev=405130&view=rev
Log:
Patch from Steve Milek to Desktop. 
This patch adds support for:
* multiple desktop themes (blue, tigris)
* header top area for themes
* navigations and menus!


Added:
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalAccordionContainer.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTaskBar.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalAccordionContainer.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTaskBar.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/styles.css
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/logo.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/nw_maj_rond.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left_curr.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right_curr.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close_h.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_left.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_left.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_right.gif   (with props)
    portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/theme.properties
    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/widget/PortalAccordionContainer.js
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/TitlePane.html
Removed:
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlTabContainer.css
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/widget/HtmlTaskBar.css
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/styles.css
    portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/compatibility.js
    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/PortalTaskBar.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/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.jsp?rev=405130&r1=405129&r2=405130&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 Mon May  8 11:44:48 2006
@@ -14,21 +14,36 @@
 limitations under the License.
 --%>
 <%@ page language="java" import="org.apache.jetspeed.desktop.JetspeedDesktopContext" session="true" %>
+<%@ page import="java.util.Enumeration"%>
 <%@ page import="org.apache.jetspeed.request.RequestContext"%>
 <%@ page import="org.apache.jetspeed.Jetspeed" %>
-<%@ page import="org.apache.jetspeed.headerresource.HeaderResourceFactory" %>
+<%@ page import="org.apache.jetspeed.PortalReservedParameters" %>
+<%@ page import="org.apache.jetspeed.om.page.Fragment" %>
+<%@ page import="org.apache.jetspeed.decoration.Theme" %>
+<%@ page import="org.apache.jetspeed.decoration.Decoration" %>
 <% 
     JetspeedDesktopContext desktop = (JetspeedDesktopContext)request.getAttribute(JetspeedDesktopContext.DESKTOP_ATTRIBUTE);
-    //RequestContext requestContext = (RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV);
-    //HeaderResourceFactory resourceHeaderFactory = (HeaderResourceFactory)Jetspeed.getComponentManager().getComponent("org.apache.jetspeed.headerresource.HeaderResourceFactory");
-    //String resourceHeader = resourceHeaderFactory.getHeaderResouce(requestContext).toString();
-%>
+    RequestContext requestContext = (RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV);
+
+    String desktopThemeStyleClass = "layout-" + desktop.getDesktopTheme();
+
+    //Enumeration iter = request.getAttributeNames();
+    //String debugout = "";
+    //while ( iter.hasMoreElements() )
+    //{
+    //    debugout += iter.nextElement().toString() + ", " ;
+    //}
+    //System.out.println( "request.getAttributeNames() : " + debugout );
+
+    //Fragment rootFragment = (Fragment)requestContext.getPage().getRootContentFragment();
 
-<html>   <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
+    //String testThemeResourceUrl = desktop.getDesktopThemeResourceUrl("images/logo.gif");
+    ///System.out.println( "t h e m e : " + testThemeResourceUrl );
+%>
+<html> <!-- .jsp --> <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
 <head>
 <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
 <meta http-equiv="Content-style-type" content="text/css" />
-
 <!-- 
   DOJO Config Script ( djConfig )
   -->
@@ -37,10 +52,11 @@
     //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);
     }
+    djConfig.desktopThemeRootUrl = '<%= desktop.getDesktopThemeRootUrl() %>';
 </script>
 <!-- 
   DOJO Script
@@ -54,11 +70,11 @@
     dojo.require("dojo.io");
     dojo.require("dojo.collections.ArrayList");
     dojo.require("dojo.collections.Set");
-    //dojo.require("dojo.layout");
     dojo.require("dojo.widget.Manager");
     dojo.require("dojo.widget.TaskBar");
     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");
 
@@ -70,6 +86,7 @@
     dojo.require("jetspeed.ui.widget.PortalTaskBar");
     dojo.require("jetspeed.ui.widget.PortletWindow");
     dojo.require("jetspeed.ui.widget.PortalTabContainer");
+    dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -77,13 +94,14 @@
 <script language="JavaScript" type="text/javascript">
     dojo.widget.manager.registerWidgetPackage('jetspeed.ui.widget');
 </script>
-<!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
 <base id="basetag" href="<%= desktop.getPortalResourceUrl("/") %>">  <!-- http://localhost:8080/jetspeed/ --> 
-<link rel="stylesheet" type="text/css" media="screen, projection" href="desktop-themes/blue/css/styles.css"/>
+     <!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
+<link rel="stylesheet" type="text/css" media="screen, projection" href='<%= desktop.getDesktopThemeResourceUrl("css/styles.css") %>'/>
+
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop();
+        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', '<%= desktop.getDesktopThemeRootUrl() %>' );
     }
     function doRender( url, portletEntityId )
     {
@@ -95,30 +113,14 @@
     }
     dojo.event.connect( dojo, "loaded", "init" );
 </script>
+
+
 <script language="JavaScript" type="text/javascript">
-/*
-javascript: var tab = document.createElement( "div" ); tab.setAttribute( "label", "Blee" ); dojo.widget.byId( 'mainTabContainer' ).addChild( { domNode: tab } ); 
-javascript: var tab = document.createElement( "div" ); var tabText = document.createTextNode("Blee"); tab.appendChild( tabText ); dojo.widget.byId( 'mainTabContainer' ).addChild( { domNode: tab } );
-javascript: var tab = document.createElement( "div" ); var tabText = document.createTextNode("Blee"); tab.appendChild( tabText ); dojo.widget.byId( 'mainTabContainer' ).addChild( { domNode: tab, label: "Blee" } );
-javascript: dojo.widget.byId( 'mainTabContainer' ).addChild( { domNode: tab, label: "Blee" } );
-*/
     function notifyRetrieveAllMenusFinished()
     {
         dojo.debug( "window.notifyRetrieveAllMenusFinished" );
-        jetspeed.pageNavigateSuppress = true;
-        var menuObj = jetspeed.page.getMenu( "pages" );
-        if ( ! menuObj ) return;
-        var menuName = menuObj.getName();
-        if ( menuName == "pages" )
-        {
-            var portalTabWidget = dojo.widget.byId( "mainTabContainer" );
-            if ( ! portalTabWidget )
-                dojo.raise( "window.notifyRetrieveMenuFinished could not find widget for mainTabContainer" );
-            portalTabWidget.createTabsFromMenu( menuObj );
-        }
-        jetspeed.pageNavigateSuppress = false;
     }
-    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );  // jetspeed.notifyRetrieveMenuFinished
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
 </script>
 <style>
 
@@ -133,18 +135,45 @@
 
 </head>
 
+<body class="<%= desktopThemeStyleClass %>">
+<!-- Start Jetspeed Page -->
+<div class="<%= desktopThemeStyleClass %>" id="jetspeedPage">
+<div id="banner" style="position: static">    <!-- BOZO: set to absolute in stylesheet - don't know why - no apparent reason -->
+  <table>
+    <tr>
+      <td>
+        <div class="logo">
+        <img src='<%= desktop.getDesktopThemeResourceUrl("images/logo.gif") %>' alt="Logo" border="0"/>
+        </div>
+      </td>
+      <td>
+        <div align="right" id="login">
+          &nbsp;
+        </div>
+      </td>
+    </tr>
+  </table>
+</div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%; height: 30px; margin-top: 2px; margin-left: -1px; position: static"></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" >
+<div widgetId="jetspeed-menu-navigations" dojoType="PortalAccordionContainer" style=""></div>
+</td>
+<td style="vertical-align: top">   <!-- hack of "vertical-align: top" needed by IE once the leftnav was added  -->
 <!-- Start Jetspeed Desktop -->
-<body class="layout-blue" id="jetspeedPage">
-<div widgetId="mainTabContainer" dojoType="PortalTabContainer" style="width: 100%; height: 25px;"></div>
-<div class="layout-blue" id="jetspeedDesktop">
+<div class="<%= desktopThemeStyleClass %>" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
 <!-- Start Taskbar -->
 <!-- the presence of the PortalTaskBar here is hiding a style load problem (at least in ff - sure to be worse in IE) -->
 <!-- for now we need to keep this here until this can be fixed -->
 <!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
-<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" windowState="minimized" resizable="false">
-</div>
+<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" windowState="minimized" resizable="false"></div>
 <!-- End Taskbar -->
 </div>
+<!-- End Jetspeed Page -->
 </body>
-<!-- End Jetspeed Desktop -->
 </html>

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/blue.vm?rev=405130&r1=405129&r2=405130&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 Mon May  8 11:44:48 2006
@@ -14,11 +14,10 @@
 limitations under the License.
 *#
 
-<html>     <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
+<html> <!-- .vm --> <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
 <head>
 <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
 <meta http-equiv="Content-style-type" content="text/css" />
-
 <!-- 
   DOJO Config Script ( djConfig )
   -->
@@ -27,12 +26,12 @@
     //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);
     }
+    djConfig.desktopThemeRootUrl = "$jetspeedDesktop.getDesktopThemeRootUrl()";
 </script>
-
 <!-- 
   DOJO Script
   -->
@@ -48,6 +47,8 @@
     dojo.require("dojo.widget.Manager");
     dojo.require("dojo.widget.TaskBar");
  	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");
 
@@ -58,7 +59,8 @@
 
     dojo.require("jetspeed.ui.widget.PortalTaskBar");
     dojo.require("jetspeed.ui.widget.PortletWindow");
-
+    dojo.require("jetspeed.ui.widget.PortalTabContainer");
+    dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
 </script>
 <script language="JavaScript" type="text/javascript">
     dojo.hostenv.writeIncludes();
@@ -66,14 +68,14 @@
 <script language="JavaScript" type="text/javascript">
     dojo.widget.manager.registerWidgetPackage('jetspeed.ui.widget');
 </script>
-
-<!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
 <base href="$jetspeedDesktop.getPortalResourceUrl('/')"> <!-- http://localhost:8080/jetspeed/ -->
-<link rel="stylesheet" type="text/css" media="screen, projection" href="desktop-themes/blue/css/styles.css"/>
+     <!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
+<link rel="stylesheet" type="text/css" media="screen, projection" href="$jetspeedDesktop.getDesktopThemeResourceUrl('css/styles.css')"/>
+
 <script language="JavaScript" type="text/javascript">
     function init()
     {
-        jetspeed.initializeDesktop();
+        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", "$jetspeedDesktop.getDesktopThemeRootUrl()" );
     }
     function doRender(url,portletEntityId)
     {
@@ -85,6 +87,15 @@
     }
     dojo.event.connect(dojo, "loaded", "init");
 </script>
+
+
+<script language="JavaScript" type="text/javascript">
+    function notifyRetrieveAllMenusFinished()
+    {
+        dojo.debug( "window.notifyRetrieveAllMenusFinished" );
+    }
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
+</script>
 <style>
 
 html, body, .jetspeedDesktop
@@ -98,14 +109,45 @@
 
 </head>
 
+<body class="layout-${jetspeedDesktop.getDesktopTheme()}">
+<!-- Start Jetspeed Page -->
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedPage">
+<div id="banner" style="position: static">    <!-- BOZO: set to absolute in stylesheet - don't know why - no apparent reason -->
+  <table>
+    <tr>
+      <td>
+        <div class="logo">
+        <img src="$jetspeedDesktop.getDesktopThemeResourceUrl('images/logo.gif')" alt="Logo" border="0"/>
+        </div>
+      </td>
+      <td>
+        <div align="right" id="login">
+          &nbsp;
+        </div>
+      </td>
+    </tr>
+  </table>
+</div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%; height: 35px; margin-top: 2px; margin-left: -1px; position: static"></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" >
+<div widgetId="jetspeed-menu-navigations" dojoType="PortalAccordionContainer" style=""></div>
+</td>
+<td style="vertical-align: top">   <!-- hack of "vertical-align: top" needed by IE once the leftnav was added  -->
 <!-- Start Jetspeed Desktop -->
-<body class="layout-blue" id="jetspeedPage">
-<div class="layout-blue" id="jetspeedDesktop">
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
 <!-- Start Taskbar -->
-<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" resizable="false">
-</div>
+<!-- the presence of the PortalTaskBar here is hiding a style load problem (at least in ff - sure to be worse in IE) -->
+<!-- for now we need to keep this here until this can be fixed -->
+<!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
+<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" windowState="minimized" resizable="false"></div>
 <!-- End Taskbar -->
 </div>
+<!-- End Jetspeed Page -->
 </body>
-<!-- End Jetspeed Desktop -->
 </html>

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalAccordionContainer.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalAccordionContainer.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalAccordionContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalAccordionContainer.css Mon May  8 11:44:48 2006
@@ -0,0 +1,15 @@
+/*
+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.
+*/

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTabContainer.css Mon May  8 11:44:48 2006
@@ -0,0 +1,200 @@
+/*
+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.
+*/
+
+.dojoTabContainer {
+	position : static; /* relative; */
+}
+
+.dojoTabPaneWrapper {
+    position : relative;
+	border : 1px solid;
+    display: none;
+}
+
+.dojoTabLabels-top {
+	position : absolute;
+	top : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-bottom : -1px;
+	width : 100%;
+}
+
+.dojoTabPaneTab {
+	position : relative;
+	float : left;
+	padding-left : 9px;
+	border-bottom : 1px solid;
+	background : 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;
+	color : #333;
+	font-size : 90%;
+
+    background-image: url(../images/tabs/tab_top_right.gif);
+}
+
+.dojoTabPanePaneClose {
+	position : absolute;
+	bottom : 0px;
+	right : 6px;
+	height : 12px;
+	width : 12px;
+	background : no-repeat right top;
+
+    background-image: url(../images/tabs/tab_close.gif);
+}
+
+.dojoTabPanePaneCloseHover {
+    background-image: url(../images/tabs/tab_close_h.gif);
+}
+
+.dojoTabPaneTabClose {
+	display : inline;
+	height : 12px;
+	width : 12px;
+	padding : 0 12px 0 0;
+	margin : 0 -10px 0 10px;
+	background : no-repeat right top;
+	cursor : default;
+
+    background-image: url(../images/tabs/tab_close.gif);
+}
+
+.dojoTabPaneTabCloseHover {
+    background-image: url(../images/tabs/tab_close_h.gif);
+}
+
+.dojoTabPaneTab.current {
+	padding-bottom : 1px;
+	border-bottom : 0;
+	background-position : 0 -150px;
+}
+
+.dojoTabPaneTab.current span {
+	padding-bottom : 5px;
+	margin-bottom : -1px;
+	background-position : 100% -150px;
+}
+
+/* bottom tabs */
+
+.dojoTabLabels-bottom {
+	position : absolute;
+	bottom : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-top : -1px;
+	width : 100%;
+}
+
+.dojoTabLabels-bottom .dojoTabPaneTab {
+	border-top :  1px solid;
+	border-bottom : 0;
+	background : no-repeat left bottom;
+
+    background-image: url(../images/tabs/tab_bot_left.gif);
+}
+
+.dojoTabLabels-bottom .dojoTabPaneTab span {
+	background : no-repeat right bottom;
+
+    background-image: url(../images/tabs/tab_bot_right.gif);
+}
+
+.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);
+}
+
+.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);
+}
+
+/* right-h tabs */
+
+.dojoTabLabels-right-h {
+	position : absolute;
+	top : 0px;
+	right : 0px;
+	overflow : visible;
+	margin-left : -1px;
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab {
+	padding-left : 0;
+	border-left :  1px solid;
+	border-bottom : 0;
+	background : no-repeat right bottom;
+	float : none;
+
+    background-image: url(../images/tabs/tab_bot_right.gif);
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab span {
+	padding : 4px 15px 4px 15px;
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab.current {
+	border-left :  0;
+	border-bottom :  1px solid;
+}
+
+/* left-h tabs */
+
+.dojoTabLabels-left-h {
+	position : absolute;
+	top : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-right : -1px;
+}
+
+.dojoTabLabels-left-h .dojoTabPaneTab {
+	border-right :  1px solid;
+	border-bottom : 0;
+	float : none;
+	background : no-repeat left top;
+
+    background-image: url(../images/tabs/tab_top_left.gif);
+}
+
+.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);
+}
+
+.dojoTabLabels-left-h .dojoTabPaneTab span {
+	background : 0;
+}

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTaskBar.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTaskBar.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTaskBar.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/PortalTaskBar.css Mon May  8 11:44:48 2006
@@ -0,0 +1,73 @@
+/*
+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.
+*/
+
+.dojoTaskBarItem {
+    background-image: url(../windowicons/blue-metalic-28.jpg);
+    background-repeat: no-repeat;
+	height: 28px;
+	/*width: 200px;*/
+    overflow: hidden;
+    padding-right: 8px;
+	font-size: 9pt;
+    cursor: pointer;
+}
+.portalTaskBarItemEndCap {
+    background-image: url(../windowicons/blue-metalic-endcap-28.jpg);
+    background-repeat: no-repeat;
+    height: 28px;
+	width: 4px;
+}
+.portalTaskBarItemTable {
+    display: inline;
+    padding: 0px;
+    margin: 0px 2px 6px 2px;
+    /*border-spacing: 0;*/  /* could get rid of cellspacing attribute if IE would support CSS2 better */
+}
+
+
+
+/*
+.dojoTaskBarItem {
+    background-image: url(../windoXXXXXXXXXX/blue-metalic-28.jpg);
+    background-repeat: no-repeat;
+	border: outset 2px;
+	display: inline;
+	margin-right: 5px;
+	cursor: pointer;
+	height: 28px;
+	width: 200px;
+	font-size: 8pt;
+	white-space: nowrap;
+	text-align: center;
+}
+*/
+
+.dojoTaskBarItem img {
+	vertical-align: top;
+	margin-right: 5px;
+	margin-left: 5px;
+    margin-top: 1px;
+    padding-top: 0px;
+	height: 16px;
+	width: 16px;
+}
+
+.dojoTaskBarItem a {
+	color: black;
+	text-decoration: none;
+}
+
+

Modified: portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/styles.css?rev=405130&r1=405129&r2=405130&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/styles.css (original)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/blue/css/styles.css Mon May  8 11:44:48 2006
@@ -82,67 +82,31 @@
 
 
 
-/*  begin dojo styles  */
 
-/* tabcontainer */
 
-.layout-blue .dojoTabPaneTab {
-    background-image: url(../images/tabs/tab_left.gif);
-}
-
-.layout-blue .dojoTabPaneTab span {
-    background-image: url(../images/tabs/tab_top_right.gif);
-}
-
-.layout-blue .dojoTabPanePaneClose {
-    background-image: url(../images/tabs/tab_close.gif);
-}
-
-.layout-blue .dojoTabPanePaneCloseHover {
-    background-image: url(../images/tabs/tab_close_h.gif);
-}
-
-.layout-blue .dojoTabPaneTabClose {
-    background-image: url(../images/tabs/tab_close.gif);
-}
-
-.layout-blue .dojoTabPaneTabCloseHover {
-    background-image: url(../images/tabs/tab_close_h.gif);
-}
-
-.layout-blue .dojoTabLabels-bottom .dojoTabPaneTab {
-    background-image: url(../images/tabs/tab_bot_left.gif);
-}
-
-.layout-blue .dojoTabLabels-bottom .dojoTabPaneTab span {
-    background-image: url(../images/tabs/tab_bot_right.gif);
-}
-
-.layout-blue .dojoTabLabels-bottom .dojoTabPaneTab.current {
-    background-image: url(../images/tabs/tab_bot_left_curr.gif);
-}
-
-.layout-blue .dojoTabLabels-bottom .dojoTabPaneTab.current span {
-    background-image: url(../images/tabs/tab_bot_right_curr.gif);
-}
-
-.layout-blue .dojoTabLabels-right-h .dojoTabPaneTab {
-    background-image: url(../images/tabs/tab_bot_right.gif);
-}
-
-.layout-blue .dojoTabLabels-left-h .dojoTabPaneTab {
-    background-image: url(../images/tabs/tab_top_left.gif);
+.layout-blue .button
+{
+    background-image:url(../images/button_background.gif);
+    padding-left:5px;
+    padding-right:5px;
+    padding-top:3px;
+    padding-bottom:3px;
+    margin:1px;
+    text-align:center;
+    vertical-align:middle;
 }
 
-.layout-blue .dojoTabLabels-left-h .dojoTabPaneTab.current {
-    background-image: url(../images/tabs/tab_top_left.gif);
+.layout-blue .button a
+{
+    color:#0080b0;
+    text-decoration: none;
+    font-weight:bold;
+    font-family:Verdana,Helvetica,Arial,sans-serif;
+    voice-family:"\"}\"";
+    voice-family:inherit;
+    font-size:9pt;
 }
 
-
-/*  end dojo styles  */
-
-
-
 .layout-blue #banner {
     margin:0px;
     padding:0px;
@@ -164,26 +128,40 @@
 .layout-blue #banner .action {
     margin:0px;
     padding:0px;
-    height:30px;
+    height:20px;
     vertical-align:middle;
 }
 
 .layout-blue #banner .logo {
-    vertical-align:top;
-    height:70px;
+    height:95px;
+}
+
+.layout-blueocean #banner .logo img {
+    margin-top:25px;
 }
 
 .layout-blue #banner .info {
     vertical-align:top;
     text-align:right;
-    height:70px;
+    height:95px;
 
     color:#ffffff;
-    font-weight:bold;
-    font-family:monospace;
+    font-family:Verdana,Helvetica,Arial,sans-serif;
     voice-family:"\"}\"";
     voice-family:inherit;
     font-size:10pt;
+}
+
+.layout-blueocean #banner .info div {
+    margin:0px;
+    padding:2px;
+}
+
+.layout-blueocean #banner .info input {
+    border:1px;
+    border-color:#0000ff;
+
+    font-weight:bold;
 }
 
 .layout-blue #poweredby {

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalAccordionContainer.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalAccordionContainer.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalAccordionContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalAccordionContainer.css Mon May  8 11:44:48 2006
@@ -0,0 +1,15 @@
+/*
+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.
+*/

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTabContainer.css Mon May  8 11:44:48 2006
@@ -0,0 +1,200 @@
+/*
+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.
+*/
+
+.dojoTabContainer {
+	position : static; /* relative; */
+}
+
+.dojoTabPaneWrapper {
+    position : relative;
+	border : 1px solid;
+    display: none;
+}
+
+.dojoTabLabels-top {
+	position : absolute;
+	top : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-bottom : -1px;
+	width : 100%;
+}
+
+.dojoTabPaneTab {
+	position : relative;
+	float : left;
+	padding-left : 9px;
+	border-bottom : 1px solid;
+	background : 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;
+	color : #333;
+	font-size : 90%;
+
+    background-image: url(../images/tabs/tab_top_right.gif);
+}
+
+.dojoTabPanePaneClose {
+	position : absolute;
+	bottom : 0px;
+	right : 6px;
+	height : 12px;
+	width : 12px;
+	background : no-repeat right top;
+
+    background-image: url(../images/tabs/tab_close.gif);
+}
+
+.dojoTabPanePaneCloseHover {
+    background-image: url(../images/tabs/tab_close_h.gif);
+}
+
+.dojoTabPaneTabClose {
+	display : inline;
+	height : 12px;
+	width : 12px;
+	padding : 0 12px 0 0;
+	margin : 0 -10px 0 10px;
+	background : no-repeat right top;
+	cursor : default;
+
+    background-image: url(../images/tabs/tab_close.gif);
+}
+
+.dojoTabPaneTabCloseHover {
+    background-image: url(../images/tabs/tab_close_h.gif);
+}
+
+.dojoTabPaneTab.current {
+	padding-bottom : 1px;
+	border-bottom : 0;
+	background-position : 0 -150px;
+}
+
+.dojoTabPaneTab.current span {
+	padding-bottom : 5px;
+	margin-bottom : -1px;
+	background-position : 100% -150px;
+}
+
+/* bottom tabs */
+
+.dojoTabLabels-bottom {
+	position : absolute;
+	bottom : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-top : -1px;
+	width : 100%;
+}
+
+.dojoTabLabels-bottom .dojoTabPaneTab {
+	border-top :  1px solid;
+	border-bottom : 0;
+	background : no-repeat left bottom;
+
+    background-image: url(../images/tabs/tab_bot_left.gif);
+}
+
+.dojoTabLabels-bottom .dojoTabPaneTab span {
+	background : no-repeat right bottom;
+
+    background-image: url(../images/tabs/tab_bot_right.gif);
+}
+
+.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);
+}
+
+.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);
+}
+
+/* right-h tabs */
+
+.dojoTabLabels-right-h {
+	position : absolute;
+	top : 0px;
+	right : 0px;
+	overflow : visible;
+	margin-left : -1px;
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab {
+	padding-left : 0;
+	border-left :  1px solid;
+	border-bottom : 0;
+	background : no-repeat right bottom;
+	float : none;
+
+    background-image: url(../images/tabs/tab_bot_right.gif);
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab span {
+	padding : 4px 15px 4px 15px;
+}
+
+.dojoTabLabels-right-h .dojoTabPaneTab.current {
+	border-left :  0;
+	border-bottom :  1px solid;
+}
+
+/* left-h tabs */
+
+.dojoTabLabels-left-h {
+	position : absolute;
+	top : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-right : -1px;
+}
+
+.dojoTabLabels-left-h .dojoTabPaneTab {
+	border-right :  1px solid;
+	border-bottom : 0;
+	float : none;
+	background : no-repeat left top;
+
+    background-image: url(../images/tabs/tab_top_left.gif);
+}
+
+.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);
+}
+
+.dojoTabLabels-left-h .dojoTabPaneTab span {
+	background : 0;
+}

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTaskBar.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTaskBar.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTaskBar.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/PortalTaskBar.css Mon May  8 11:44:48 2006
@@ -0,0 +1,73 @@
+/*
+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.
+*/
+
+.dojoTaskBarItem {
+    background-image: url(../windowicons/blue-metalic-28.jpg);
+    background-repeat: no-repeat;
+	height: 28px;
+	/*width: 200px;*/
+    overflow: hidden;
+    padding-right: 8px;
+	font-size: 9pt;
+    cursor: pointer;
+}
+.portalTaskBarItemEndCap {
+    background-image: url(../windowicons/blue-metalic-endcap-28.jpg);
+    background-repeat: no-repeat;
+    height: 28px;
+	width: 4px;
+}
+.portalTaskBarItemTable {
+    display: inline;
+    padding: 0px;
+    margin: 0px 2px 6px 2px;
+    /*border-spacing: 0;*/  /* could get rid of cellspacing attribute if IE would support CSS2 better */
+}
+
+
+
+/*
+.dojoTaskBarItem {
+    background-image: url(../windoXXXXXXXXXX/blue-metalic-28.jpg);
+    background-repeat: no-repeat;
+	border: outset 2px;
+	display: inline;
+	margin-right: 5px;
+	cursor: pointer;
+	height: 28px;
+	width: 200px;
+	font-size: 8pt;
+	white-space: nowrap;
+	text-align: center;
+}
+*/
+
+.dojoTaskBarItem img {
+	vertical-align: top;
+	margin-right: 5px;
+	margin-left: 5px;
+    margin-top: 1px;
+    padding-top: 0px;
+	height: 16px;
+	width: 16px;
+}
+
+.dojoTaskBarItem a {
+	color: black;
+	text-decoration: none;
+}
+
+

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/styles.css?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/styles.css (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/css/styles.css Mon May  8 11:44:48 2006
@@ -0,0 +1,350 @@
+/*
+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.
+*/
+
+@import url("../../../decorations/layout/css/portal-standard.css");
+
+DIV.portlet
+{
+    margin: 2px;    /* necessary to override margin settings from decorations/layout/css/standard-columns.css */
+                    /* needs to match margin setting for .dojoFloatingPaneClient */
+}
+
+
+/*  begin layout decorator tigris  */
+
+body {
+    font-family: Verdana, Helvetica, Arial, sans-serif;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    padding: 1em;
+    background: #fff;
+    color: #000;
+    white-space: normal;
+
+
+}
+
+/** 
+  This white-space setting is VERY important as it keeps content from "spilling"
+  outside of portlets.
+  */
+
+td,
+th
+{
+  white-space: normal;
+}
+
+th
+{
+  font-size: 12pt;
+}
+
+a:link, a:visited {
+    color: blue;
+}
+
+a:hover {
+    color: #f30 !important;
+}
+
+body.layout-tigris
+{
+    margin: 0;
+    padding: 0;
+}
+
+
+.Link
+{
+}
+
+.LinkFolder
+{
+}
+
+.LinkPage
+{
+}
+
+.layout-tigris .LTabLeftLow
+{
+    width: 5px;
+
+    background-image: url(../images/nw_maj_rond.gif);
+    background-repeat: no-repeat;
+    background-color: #999;
+    border-bottom: 1px solid #fff;
+    border-left: 1px solid #fff;
+    padding-left: 9px;
+    padding-right: 0px;
+}
+
+.layout-tigris .LTabLow
+{
+    height:25px;    
+
+    background-color: #999;
+    border-bottom: 1px solid #fff;
+    padding-left: 0px;
+    padding-right: 0px;
+
+}
+
+.layout-tigris .LTabLow A:link, 
+.layout-tigris .LTabLow A:visited,
+.layout-tigris .LTabLow A:hover, 
+.layout-tigris .LTabLow A:active
+{
+    text-decoration: none;
+    color: #fff;
+}
+
+.layout-tigris .LTabRightLow
+{
+    width: 0px;
+
+    background-color: #999;
+    border-bottom: 1px solid #fff;
+    border-right: 1px solid #fff;
+    padding-left: 0px;
+    padding-right: 9px;
+}
+
+.layout-tigris .LTabLeft
+{
+    width: 5px;
+
+    background-image: url(../images/nw_maj_rond.gif);
+    background-repeat: no-repeat;
+    background-color: #ddd;
+    color: #fff;
+    border-left: 1px solid #fff;
+    padding-left: 9px;
+    padding-right: 0px;
+
+}
+
+.layout-tigris .LTab
+{
+    height:25px;    
+
+    background-color: #ddd;
+    color: #555;
+    padding-left: 0px;
+    padding-right: 0px;
+}
+ 
+.layout-tigris .LTabRight
+{
+    width:10px;
+
+    border-right: 1px solid #333;
+    background-color: #ddd;
+    color: #fff;
+    padding-left: 0px;
+    padding-right: 9px;
+}
+
+.layout-tigris .tabs {
+    margin-top: .67em;
+    margin-right: 0px;
+    margin-left: 0px;
+    padding-left: 8px;
+    border-bottom: 6px #ddd solid;
+}
+
+.layout-tigris .tabs td {
+    padding-top: 3px;
+    padding-bottom: 3px;
+    font-weight: bold;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+
+}
+
+.layout-tigris #banner h1 {
+    font-size: 1.25em;
+    margin: 0;
+}
+
+.layout-tigris #login {
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+    font-weight: bold;
+}
+
+.layout-tigris #breadcrumbs {
+    border-top: 1px solid #fff;
+    background-color: #ccc;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+    padding: 2px 8px;
+}
+
+.layout-tigris #breadcrumbs a {
+    text-decoration: none;
+}
+
+.layout-tigris #navcolumn {
+    font-size: x-small;
+}
+
+.layout-tigris #navcolumn p {
+    background-image: none;
+
+}
+
+.layout-tigris #navcolumn a:visited {
+    color: blue;
+}
+
+.layout-tigris #main {
+    border-top: 1px solid #999;
+}
+
+.layout-tigris #leftcol 
+{
+    width: 15%;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.layout-tigris #leftcol a {
+    text-decoration: none;
+}
+
+.layout-tigris #leftcol a:active, .layout-tigris #leftcol a:hover {
+    color: #f30 !important;
+}
+
+.layout-tigris .toolgroup {
+    background: #efefef;
+    margin-bottom: 6px;
+}
+
+.layout-tigris .toolgroup .label {
+    border-bottom: 1px solid #666;
+    border-right: 1px solid #666;
+    background: #ddd;
+    color: #555;
+    padding: 4px;
+    font-weight: bold;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.layout-tigris .toolgroup .body {
+    border-right: 1px solid #aaa;
+    border-bottom: 1px solid #aaa;
+    padding: 4px 4px 4px 0;
+}
+
+.layout-tigris .toolgroup .body div {
+    padding-bottom: .3em;
+    padding-left: 0;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.layout-tigris .toolgroup .body div div {
+    padding-left: .5em;
+}
+
+.layout-tigris .toolgroup .pagetitle{
+    font-weight: bold;
+    padding-left: .5em;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.layout-tigris .toolgroup .body div p {
+    margin-top: .0;
+    padding-bottom: 0;
+    padding-left: 0;
+    margin-top: .0;
+    margin-bottom: .0;
+}
+
+
+
+#portal-page-actions A img
+{
+   display: inline;   
+}
+
+#portal-page-actions
+{
+   display: inline;
+   position: absolute;
+   right: 5px;
+}
+
+.FolderList
+{
+   display: inline;
+}
+
+.layout-tigris .layout-edit-bar
+{
+  width: 100%;
+  padding-top: 5px;
+  font-size: 8pt;
+  color: blue;
+  overflow:hidden;
+  clip:auto;
+}
+
+.layout-tigris .layout-edit-bar label, 
+.layout-tigris .layout-edit-bar input, 
+.layout-tigris .layout-edit-bar select 
+{
+  font-size: 8pt;
+  color: blue;
+}
+
+.layout-tigris .layout-edit-bar input
+{
+  font-size: 8pt;
+}
+
+.layout-tigris .layout-edit-bar-left
+{
+  display:inline;
+  float:left;
+}
+
+.layout-tigris .layout-edit-bar-right
+{
+  display:inline;
+  float:right;
+  padding-right: 5px;
+}
+
+.layout-tigris .portlet-edit-bar select
+{
+  font-size: 8pt;
+  color: blue;
+}
+
+/*  end layout decorator blueocean  */

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/logo.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/logo.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/nw_maj_rond.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/nw_maj_rond.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left_curr.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left_curr.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_left_curr.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right_curr.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right_curr.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_bot_right_curr.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close_h.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close_h.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_close_h.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_left.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_left.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_left.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_left.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_left.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_left.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_right.gif
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_right.gif?rev=405130&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/images/tabs/tab_top_right.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/theme.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/theme.properties?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/theme.properties (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/theme.properties Mon May  8 11:44:48 2006
@@ -0,0 +1,16 @@
+# 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.
+
+id=tigris
+template.extension=.jsp

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.jsp Mon May  8 11:44:48 2006
@@ -0,0 +1,179 @@
+<%--
+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.
+--%>
+<%@ page language="java" import="org.apache.jetspeed.desktop.JetspeedDesktopContext" session="true" %>
+<%@ page import="java.util.Enumeration"%>
+<%@ page import="org.apache.jetspeed.request.RequestContext"%>
+<%@ page import="org.apache.jetspeed.Jetspeed" %>
+<%@ page import="org.apache.jetspeed.PortalReservedParameters" %>
+<%@ page import="org.apache.jetspeed.om.page.Fragment" %>
+<%@ page import="org.apache.jetspeed.decoration.Theme" %>
+<%@ page import="org.apache.jetspeed.decoration.Decoration" %>
+<% 
+    JetspeedDesktopContext desktop = (JetspeedDesktopContext)request.getAttribute(JetspeedDesktopContext.DESKTOP_ATTRIBUTE);
+    RequestContext requestContext = (RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV);
+
+    String desktopThemeStyleClass = "layout-" + desktop.getDesktopTheme();
+
+    //Enumeration iter = request.getAttributeNames();
+    //String debugout = "";
+    //while ( iter.hasMoreElements() )
+    //{
+    //    debugout += iter.nextElement().toString() + ", " ;
+    //}
+    //System.out.println( "request.getAttributeNames() : " + debugout );
+
+    //Fragment rootFragment = (Fragment)requestContext.getPage().getRootContentFragment();
+
+    //String testThemeResourceUrl = desktop.getDesktopThemeResourceUrl("images/logo.gif");
+    ///System.out.println( "t h e m e : " + testThemeResourceUrl );
+%>
+<html> <!-- .jsp --> <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
+<head>
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-style-type" content="text/css" />
+<!-- 
+  DOJO Config Script ( djConfig )
+  -->
+<script type="text/javascript">
+    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);
+    }
+    djConfig.desktopThemeRootUrl = '<%= desktop.getDesktopThemeRootUrl() %>';
+</script>
+<!-- 
+  DOJO Script
+  -->
+<script type="text/javascript" src="<%= desktop.getPortalResourceUrl("/javascript/dojo/dojo.js") %>"></script>
+<script language="JavaScript" type="text/javascript">
+    dojo.require("dojo.lang.*");
+    dojo.require("dojo.dnd.HtmlDragMove");
+    dojo.require("dojo.dnd.HtmlDragSource");
+    dojo.require("dojo.event.*");    
+    dojo.require("dojo.io");
+    dojo.require("dojo.collections.ArrayList");
+    dojo.require("dojo.collections.Set");
+    dojo.require("dojo.widget.Manager");
+    dojo.require("dojo.widget.TaskBar");
+    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.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
+    dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
+
+    dojo.require("jetspeed.desktop.core");
+
+    dojo.require("jetspeed.ui.widget.PortalTaskBar");
+    dojo.require("jetspeed.ui.widget.PortletWindow");
+    dojo.require("jetspeed.ui.widget.PortalTabContainer");
+    dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+</script>
+<script language="JavaScript" type="text/javascript">
+    dojo.hostenv.writeIncludes();
+</script>
+<script language="JavaScript" type="text/javascript">
+    dojo.widget.manager.registerWidgetPackage('jetspeed.ui.widget');
+</script>
+<base id="basetag" href="<%= desktop.getPortalResourceUrl("/") %>">  <!-- http://localhost:8080/jetspeed/ --> 
+     <!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
+<link rel="stylesheet" type="text/css" media="screen, projection" href='<%= desktop.getDesktopThemeResourceUrl("css/styles.css") %>'/>
+
+<script language="JavaScript" type="text/javascript">
+    function init()
+    {
+        jetspeed.initializeDesktop( '<%= desktop.getDesktopTheme() %>', '<%= desktop.getDesktopThemeRootUrl() %>' );
+    }
+    function doRender( url, portletEntityId )
+    {
+        jetspeed.doRender( url, portletEntityId );
+    }
+    function doAction( url, portletEntityId, currentForm )
+    {
+        jetspeed.doAction( url,portletEntityId, currentForm );
+    }
+    dojo.event.connect( dojo, "loaded", "init" );
+</script>
+
+
+<script language="JavaScript" type="text/javascript">
+    function notifyRetrieveAllMenusFinished()
+    {
+        dojo.debug( "window.notifyRetrieveAllMenusFinished" );
+    }
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
+</script>
+<style>
+
+html, body, .jetspeedDesktop
+{	
+    width: 100%;	/* make the body expand to fill the visible window */
+    height: 100%;
+    margin: 0 0 0 0;
+}
+
+</style>
+
+</head>
+
+<body class="<%= desktopThemeStyleClass %>">
+<!-- Start Jetspeed Page -->
+<div class="<%= desktopThemeStyleClass %>" id="jetspeedPage">
+<div id="banner" style="position: static">    <!-- BOZO: set to absolute in stylesheet - don't know why - no apparent reason -->
+  <table>
+    <tr>
+      <td>
+        <div class="logo">
+        <img src='<%= desktop.getDesktopThemeResourceUrl("images/logo.gif") %>' alt="Logo" border="0"/>
+        </div>
+      </td>
+      <td>
+        <div align="right" id="login">
+          &nbsp;
+        </div>
+      </td>
+    </tr>
+  </table>
+</div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%; height: 30px; margin-top: 2px; margin-left: -1px; position: static"></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" >
+<div widgetId="jetspeed-menu-navigations" dojoType="PortalAccordionContainer" style=""></div>
+</td>
+<td style="vertical-align: top">   <!-- hack of "vertical-align: top" needed by IE once the leftnav was added  -->
+<!-- Start Jetspeed Desktop -->
+<div class="<%= desktopThemeStyleClass %>" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
+<!-- Start Taskbar -->
+<!-- the presence of the PortalTaskBar here is hiding a style load problem (at least in ff - sure to be worse in IE) -->
+<!-- for now we need to keep this here until this can be fixed -->
+<!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
+<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" windowState="minimized" resizable="false"></div>
+<!-- End Taskbar -->
+</div>
+<!-- End Jetspeed Page -->
+</body>
+</html>

Added: portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm?rev=405130&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm (added)
+++ portals/jetspeed-2/trunk/src/webapp/desktop-themes/tigris/tigris.vm Mon May  8 11:44:48 2006
@@ -0,0 +1,153 @@
+#*
+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.
+*#
+
+<html> <!-- .vm --> <!-- NOTE: do not use strict doctype - see dojo svn log for FloatingPane.js -->
+<head>
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-style-type" content="text/css" />
+<!-- 
+  DOJO Config Script ( djConfig )
+  -->
+<script type="text/javascript">
+    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);
+    }
+    djConfig.desktopThemeRootUrl = "$jetspeedDesktop.getDesktopThemeRootUrl()";
+</script>
+<!-- 
+  DOJO Script
+  -->
+<script type="text/javascript" src='$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/dojo.js")'></script>
+<script language="JavaScript" type="text/javascript">
+    dojo.require("dojo.lang.*");
+    dojo.require("dojo.dnd.HtmlDragMove");
+    dojo.require("dojo.dnd.HtmlDragSource");
+    dojo.require("dojo.event.*");    
+    dojo.require("dojo.io");
+    dojo.require("dojo.collections.ArrayList");
+    dojo.require("dojo.collections.Set");
+    dojo.require("dojo.widget.Manager");
+    dojo.require("dojo.widget.TaskBar");
+ 	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.hostenv.setModulePrefix('jetspeed.ui.widget', '../desktop/widget');
+    dojo.hostenv.setModulePrefix('jetspeed.desktop', '../desktop/core');
+
+    dojo.require("jetspeed.desktop.core");
+
+    dojo.require("jetspeed.ui.widget.PortalTaskBar");
+    dojo.require("jetspeed.ui.widget.PortletWindow");
+    dojo.require("jetspeed.ui.widget.PortalTabContainer");
+    dojo.require("jetspeed.ui.widget.PortalAccordionContainer");
+</script>
+<script language="JavaScript" type="text/javascript">
+    dojo.hostenv.writeIncludes();
+</script>
+<script language="JavaScript" type="text/javascript">
+    dojo.widget.manager.registerWidgetPackage('jetspeed.ui.widget');
+</script>
+<base href="$jetspeedDesktop.getPortalResourceUrl('/')"> <!-- http://localhost:8080/jetspeed/ -->
+     <!-- <base> tag must appear after dojo load in IE6 ( see http://trac.dojotoolkit.org/ticket/557 ) -->
+<link rel="stylesheet" type="text/css" media="screen, projection" href="$jetspeedDesktop.getDesktopThemeResourceUrl('css/styles.css')"/>
+
+<script language="JavaScript" type="text/javascript">
+    function init()
+    {
+        jetspeed.initializeDesktop( "$jetspeedDesktop.getDesktopTheme()", "$jetspeedDesktop.getDesktopThemeRootUrl()" );
+    }
+    function doRender(url,portletEntityId)
+    {
+        jetspeed.doRender(url,portletEntityId);
+    }
+    function doAction(url, portletEntityId, currentForm)
+    {
+        jetspeed.doAction(url,portletEntityId, currentForm);
+    }
+    dojo.event.connect(dojo, "loaded", "init");
+</script>
+
+
+<script language="JavaScript" type="text/javascript">
+    function notifyRetrieveAllMenusFinished()
+    {
+        dojo.debug( "window.notifyRetrieveAllMenusFinished" );
+    }
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
+</script>
+<style>
+
+html, body, .jetspeedDesktop
+{	
+    width: 100%;	/* make the body expand to fill the visible window */
+    height: 100%;
+    margin: 0 0 0 0;
+}
+
+</style>
+
+</head>
+
+<body class="layout-${jetspeedDesktop.getDesktopTheme()}">
+<!-- Start Jetspeed Page -->
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedPage">
+<div id="banner" style="position: static">    <!-- BOZO: set to absolute in stylesheet - don't know why - no apparent reason -->
+  <table>
+    <tr>
+      <td>
+        <div class="logo">
+        <img src="$jetspeedDesktop.getDesktopThemeResourceUrl('images/logo.gif')" alt="Logo" border="0"/>
+        </div>
+      </td>
+      <td>
+        <div align="right" id="login">
+          &nbsp;
+        </div>
+      </td>
+    </tr>
+  </table>
+</div>
+<div widgetId="jetspeed-menu-pages" dojoType="PortalTabContainer" style="width: 100%; height: 35px; margin-top: 2px; margin-left: -1px; position: static"></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" >
+<div widgetId="jetspeed-menu-navigations" dojoType="PortalAccordionContainer" style=""></div>
+</td>
+<td style="vertical-align: top">   <!-- hack of "vertical-align: top" needed by IE once the leftnav was added  -->
+<!-- Start Jetspeed Desktop -->
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
+<!-- Start Taskbar -->
+<!-- the presence of the PortalTaskBar here is hiding a style load problem (at least in ff - sure to be worse in IE) -->
+<!-- for now we need to keep this here until this can be fixed -->
+<!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
+<div dojoType="PortalTaskBar" id="jetspeedTaskbar" style="background-color: #666; width: 98%; bottom: 5px; height: 110px" windowState="minimized" resizable="false"></div>
+<!-- End Taskbar -->
+</div>
+<!-- End Jetspeed Page -->
+</body>
+</html>

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/compatibility.js
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/compatibility.js?rev=405130&r1=405129&r2=405130&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/compatibility.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/compatibility.js Mon May  8 11:44:48 2006
@@ -1,38 +1,37 @@
-/*
- * 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.
- */
-
-// jetspeed javascript to help support portlets in both /portal and /desktop
-
-
-dojo.provide("jetspeed.desktop.compatibility");
-
-// ... jetspeed base objects
-if ( ! window.jetspeed )
-    jetspeed = {} ;
-
-
-jetspeed.addOnLoad = function( adviceFnc )
-{
-    dojo.debug( "jetspeed.addOnLoad" );
-    if ( dojo.hostenv.post_load_ )
-    {
-        adviceFnc.call( this );
-    }
-    else
-    {
-        dojo.event.connect( dojo, "loaded", adviceFnc );
-    }
-};
+/*
+ * 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.
+ */
+
+// jetspeed javascript to help support portlets in both /portal and /desktop
+
+
+dojo.provide("jetspeed.desktop.compatibility");
+
+// ... jetspeed base objects
+if ( ! window.jetspeed )
+    jetspeed = {} ;
+
+
+jetspeed.addOnLoad = function( adviceFnc )
+{
+    if ( dojo.hostenv.post_load_ )
+    {
+        adviceFnc.call( this );
+    }
+    else
+    {
+        dojo.event.connect( dojo, "loaded", adviceFnc );
+    }
+};

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/javascript/desktop/core/core.js?rev=405130&r1=405129&r2=405130&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 Mon May  8 11:44:48 2006
@@ -71,7 +71,12 @@
     PORTLET_PROP_TOP: "top",
     PORTLET_PROP_COLUMN: "column",
     PORTLET_PROP_ROW: "row",
-    PORTLET_PROP_EXCLUDE_PCONTENT: "excludePContent"
+    PORTLET_PROP_EXCLUDE_PCONTENT: "excludePContent",
+    PORTLET_PROP_WINDOW_STATE: "windowState",
+
+    MENU_WIDGET_ID_PREFIX: "jetspeed-menu-",
+
+    WINDOW_THEMES: [ "tigris", "blueocean" ]     // temporary validation to avoid trying to use an undefined window theme
 };
 
 // ... jetspeed desktop preferences
@@ -79,9 +84,23 @@
 {
     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
+    windowTilingVariableHeight: true,   // only meaningful when windowTitling > 0
     //portalTaskBarType: "blee"  // BOZO: need pref/s to handle this ( instead of html elements in the content )
     
+    desktopTheme: null,
+    desktopThemeRootUrl: null,
+    getDesktopTheme: function()
+    {
+        if ( jetspeed.prefs.desktopTheme == null )
+            return djConfig.desktopTheme;
+        return jetspeed.prefs.desktopTheme;
+    },
+    getDesktopThemeRootUrl: function()
+    {
+        if ( jetspeed.prefs.desktopThemeRootUrl == null )
+            return djConfig.desktopThemeRootUrl;
+        return jetspeed.prefs.desktopThemeRootUrl;
+    }        
 };
 
 // ... jetspeed debug options
@@ -106,25 +125,23 @@
 //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 = [ "tigris", "blueocean" ];  /* , "tigris", "blueocean" ]; */
+jetspeed.debugPortletWindowThemes = [ "blueocean" ];  /* , "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" ]; // , "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1", "jsfCalendar"
+jetspeed.debugContentDumpIds = [ "notifyGridSelect", "P-10acd169a40-10001", "reports-select" ]; // , "dp-7", "jsfGuessNumber1", "jsfCalendar" ];    // "um-4", "dp-7", "jsfGuessNumber1", "jsfCalendar"
 //jetspeed.debugContentDumpIds = [ "P-10aba.*" ];
 
 // ... load page /portlets
 jetspeed.page = null ;   // BOZO: is this it? one page at a time?
 jetspeed.columns = [];
-jetspeed.initializeDesktop = function()
+jetspeed.initializeDesktop = function( desktopThemeName, desktopThemeRootUrl )
 {
     jetspeed.url.pathInitialize();
+    jetspeed.prefs.desktopTheme = desktopThemeName;
+    jetspeed.prefs.desktopThemeRootUrl = desktopThemeRootUrl;
     jetspeed.loadPage();
-    if ( jetspeed.prefs.windowTiling > 0 )
-    {
-        jetspeed.ui.createColumns( document.getElementById( jetspeed.id.DESKTOP ), jetspeed.prefs.windowTiling );
-    }
     //jetspeed.currentTaskbar = new jetspeed.ui.PortalTaskBar() ;
 };
 jetspeed.loadPage = function()
@@ -143,12 +160,13 @@
         windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_TITLE ] = "Dojo Debug";
         windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ] = "text-x-script.png";
         windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = jetspeed.id.PORTLET_WINDOW_ID_PREFIX + "dojo-debug";
-        windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = "700";
+        windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = "400";
         windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = "400";
-        windowParams[ jetspeed.id.PORTLET_PROP_LEFT ] = "35";
+        windowParams[ jetspeed.id.PORTLET_PROP_LEFT ] = "320";
+        windowParams[ jetspeed.id.PORTLET_PROP_TOP ] = "0";
         windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = false;
         windowParams[ jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER ] = new jetspeed.om.DojoDebugContentRetriever();
-
+        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_STATE ] = "minimized" ;
         var pwWidgetParams = jetspeed.ui.widget.PortletWindow.prototype.staticDefineAsAltInitParameters( null, windowParams );
         jetspeed.ui.createPortletWindow( pwWidgetParams, null, null );
         pwWidgetParams.retrieveContent( null, null );
@@ -157,6 +175,12 @@
 
 jetspeed.loadPortletWindows = function( portletWindowFactory )
 {
+    if ( jetspeed.prefs.windowTiling > 0 )
+    {
+        var numberOfColumns = jetspeed.page.getNumberOfColumns();
+        jetspeed.ui.createColumns( document.getElementById( jetspeed.id.DESKTOP ), numberOfColumns );
+    }
+
     var windowsToRender = [];
 
     var portletArray = jetspeed.page.getPortletArrayByColumnRow();
@@ -333,44 +357,36 @@
 // ... jetspeed.notifyRetrieveAllMenusFinished
 jetspeed.notifyRetrieveAllMenusFinished = function()
 {   // dojo.event.connect to this or add to your page content, one of the functions that it invokes ( doMenuBuildAll() or doMenuBuild() )
-    dojo.debug( "jetspeed.notifyRetrieveAllMenusFinished" );
+    jetspeed.pageNavigateSuppress = true;
+
     if ( dojo.lang.isFunction( window.doMenuBuildAll ) )
     {   
         window.doMenuBuildAll();
     }
-    else if ( dojo.lang.isFunction( window.doMenuBuild ) )
+    
+    var menuNames = jetspeed.page.getMenuNames();
+    for ( var i = 0 ; i < menuNames.length; i++ )
     {
-        for ( var menuName in this.menus )
+        var menuNm = menuNames[i];
+        var menuWidget = dojo.widget.byId( jetspeed.id.MENU_WIDGET_ID_PREFIX + menuNm );
+        if ( menuWidget )
         {
-            var menuObj = this.menus[ menuName ];
-            window.doMenuBuild( menuObj );
+            menuWidget.createJetspeedMenu( jetspeed.page.getMenu( menuNm ) );
         }
     }
+    
+    jetspeed.pageNavigateSuppress = false;
 };
 
 // ... jetspeed.notifyRetrieveMenuFinished
 jetspeed.notifyRetrieveMenuFinished = function( /* jetspeed.om.Menu */ menuObj )
 {   // dojo.event.connect to this or add to your page content the function that it invokes ( doMenuBuild() )
-    dojo.debug( "jetspeed.notifyRetrieveMenuFinished" );
     if ( dojo.lang.isFunction( window.doMenuBuild ) )
     {
         window.doMenuBuild( menuObj );
     }
 };
 
-jetspeed.menuNavClick = function( /* jetspeed.om.MenuOption */ menuOpt )
-{
-    if ( menuOpt && menuOpt.isLeaf() )
-    {
-        var navUrl = menuOpt.getUrl();
-        if ( navUrl )
-        {
-            var navTarget = menuOpt.getTarget();
-            jetspeed.pageNavigate( navUrl, navTarget );
-        }
-    }
-}
-
 jetspeed.menuNavClickWidget = function( /* Tab widget || Tab widgetId */ tabWidget, /* int || String */ selectedTab )
 {
     dojo.debug( "jetspeed.menuNavClick" );
@@ -403,11 +419,10 @@
 {
     if ( ! navUrl || jetspeed.pageNavigateSuppress ) return;
 
-    if ( jetspeed.page && jetspeed.page.isPageUrl( navUrl ) )
+    if ( jetspeed.page && jetspeed.page.equalsPageUrl( navUrl ) )
         return ;
 
-    if ( ! jetspeed.url.validateUrlStartsWithHttp( navUrl ) )
-        navUrl = jetspeed.url.path.SERVER + jetspeed.url.path.DESKTOP + navUrl;
+    navUrl = jetspeed.page.makePageUrl( navUrl );
 
     if ( navTarget == "top" )
         top.location.href = navUrl;
@@ -686,7 +701,7 @@
     this.portlets = [] ;
     this.menus = [];
 };
-dojo.inherits( jetspeed.om.Page, jetspeed.om.Id);
+dojo.inherits( jetspeed.om.Page, jetspeed.om.Id );
 dojo.lang.extend( jetspeed.om.Page,
 {
     psmlPath: null,
@@ -848,7 +863,25 @@
         }
         return dumpMsg;
     },
-
+    getNumberOfColumns: function()
+    {
+        var numberOfColumns = 1;
+        if ( this.columns != null )
+            return this.columns;
+        var portletArray = this.getPortletArray();
+        if ( ! portletArray ) return portletArray;
+        var filteredPortletArray = [];
+        for ( var i = 0 ; i < portletArray.length; i++ )
+        {
+            if ( portletArray[i].getProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ) )
+            {
+                var windowState = portletArray[i].getLastSavedWindowState();
+                if ( windowState && windowState.column != null && (windowState.column + 1) > numberOfColumns )
+                    numberOfColumns = new Number( windowState.column ) + 1;
+            }
+        }
+        return numberOfColumns;
+    },
     getPortletArrayByZIndex: function()
     {
         var portletArray = this.getPortletArray();
@@ -1051,17 +1084,29 @@
         jetspeed.url.retrieveContent( psmlMenuActionUrl, contentListener, null, mimeType, ajaxApiContext, jetspeed.debugContentDumpIds );
     },
 
-    isPageUrl: function( url )
+    getPageUrl: function()
     {
-        var pagePath = this.getPath();
-        if ( url == pagePath )
+        return jetspeed.url.path.SERVER + jetspeed.url.path.DESKTOP + this.getPath();
+    },
+
+    equalsPageUrl: function( url )
+    {
+        if ( url == this.getPath() )
             return true;
-        var pageUrl = jetspeed.url.path.SERVER + jetspeed.url.path.DESKTOP + pagePath;
-        if ( url == pageUrl )
+        if ( url == this.getPageUrl() )
             return true;
         return false;
     },
 
+    makePageUrl: function( pathOrUrl )
+    {
+        if ( ! pathOrUrl ) pathOrUrl = "";
+        if ( ! jetspeed.url.validateUrlStartsWithHttp( pathOrUrl ) )
+            return jetspeed.url.path.SERVER + jetspeed.url.path.DESKTOP + pathOrUrl;
+        return pathOrUrl;
+    },
+
+
     // ... access
     getName: function()
     {
@@ -1083,7 +1128,7 @@
     {
         return this.layoutDecorator;
     },
-    getPortletDecorator: function()
+    getPortletDecorator : function()
     {
         return this.portletDecorator;
     }
@@ -1109,7 +1154,7 @@
     },
     notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, domainModelObject )
     {
-        alert( "BasicContentListener notifyFailure url=" + requestUrl + " type=" + type + " error=" + error ) ;
+        dojo.debug( "BasicContentListener notifyFailure url=" + requestUrl + " type=" + type + " error=" + error ) ;
     }
 };
 
@@ -1125,7 +1170,7 @@
     },
     notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, /* Portlet */ portlet )
     {
-        alert( "PortletContentListener notifyFailure url=" + requestUrl + " type=" + type + " error=" + error ) ;
+        dojo.debug( "PortletContentListener notifyFailure url=" + requestUrl + " type=" + type + " error=" + error ) ;
     }
 };
 
@@ -1157,7 +1202,7 @@
     },
     notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, /* Portlet */ portlet )
     {
-        alert( "PortletActionContentListener notifyFailure type=" + type ) ;
+        dojo.debug( "PortletActionContentListener notifyFailure type=" + type ) ;
         dojo.debugShallow( error );
     }
 };
@@ -1759,6 +1804,24 @@
 };
 dojo.lang.extend( jetspeed.om.MenuOption,
 {
+    // operations
+    navigateTo: function()
+    {
+        if ( this.isLeaf() )
+        {
+            var navUrl = this.getUrl();
+            if ( navUrl )
+            {
+                jetspeed.pageNavigate( navUrl, this.getTarget() );
+            }
+        }
+    },
+    navigateUrl: function()
+    {
+        return jetspeed.page.makePageUrl( this.getUrl() );
+    },
+
+    // data
     getType: function()
     {
         return this.type;
@@ -1791,6 +1854,10 @@
     {
         return this.selected;
     },
+    getText: function()
+    {
+        return this.text;
+    },
     isLeaf: function()
     {
         return true;
@@ -1997,7 +2064,6 @@
             {
                 if ( menu != null )
                     dojo.raise( "unexpected multiple top level <menu> elements in menu xml" );
-                dojo.debug( "parse menuObject" );
                 menu = this.parseMenuObject( child, new jetspeed.om.Menu() );
             }
         }
@@ -2298,7 +2364,7 @@
     }
 };
 
-jetspeed.ui.preParseAnnotateHtml = function( /* String */ initialHtmlStr )
+jetspeed.ui.preParseAnnotateHtml = function( /* String */ initialHtmlStr, /* String */ url )
 {   // deal with embedded script tags -  /=/=/=/=/=  taken from dojo ContentPane.js  splitAndFixPaths()  =/=/=/=/=/
     var scripts = [];
     var remoteScripts = [];
@@ -2338,6 +2404,14 @@
         }
         initialHtmlStr = initialHtmlStr.replace(/<script[^>]*>[\s\S]*?<\/script>/i, "");
     }
+    //dojo.debug( "= = = = = =  annotated content for: " + ( url ? url : "unknown url" ) );
+    //dojo.debug( initialHtmlStr );
+    //if ( scripts.length > 0 )
+    //{
+    //    dojo.debug( "      = = =  script content for: " + ( url ? url : "unknown url" ) );
+    //    for ( var i = 0 ; i < scripts.length; i++ )
+    //        dojo.debug( "      =[" + (i+1) + "]:" + scripts[i] );
+    //}
     //     /=/=/=/=/=  end of taken from dojo ContentPane.js  splitAndFixPaths()  =/=/=/=/=/
     //dojo.debug( "preParse  scripts: " + ( scripts ? scripts.length : "0" ) + " remoteScripts: " + ( remoteScripts ? remoteScripts.length : "0" ) );
     return { preParsedContent: initialHtmlStr, preParsedScripts: scripts, preParsedRemoteScripts: remoteScripts };



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