You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2007/01/04 20:37:37 UTC

svn commit: r492701 [1/2] - in /portals/jetspeed-2/trunk/tutorial: ./ portal/ portal/src/ portal/src/webapp/ portal/src/webapp/decorations/ portal/src/webapp/decorations/portlet/ portal/src/webapp/decorations/portlet/express-portlet/ portal/src/webapp/...

Author: taylor
Date: Thu Jan  4 11:37:33 2007
New Revision: 492701

URL: http://svn.apache.org/viewvc?view=rev&rev=492701
Log:
A Jetspeed Tutorial for creating a custom portal with Maven-2, and developing with Eclipse
I still need to sort out the resource files used in the tutorial, and separate them from my training material
So the resources references in the tutorial are not yet available
I've uploaded an initial tutorial here:

http://portals.apache.org/tutorials/jetspeed-2/index.html


Added:
    portals/jetspeed-2/trunk/tutorial/
    portals/jetspeed-2/trunk/tutorial/portal/
    portals/jetspeed-2/trunk/tutorial/portal/src/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/styles.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/decorator.properties
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad1blue.png   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad2blue.png   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalAccordionContainer.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalBreadcrumbContainer.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTabContainer.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTaskBar.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/styles.css
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.jsp
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.vm
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/addportlet.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/edit.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/help.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/logo.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/nw_maj_rond.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left_curr.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right_curr.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close_h.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_left.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_left.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_right.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/view.gif   (with props)
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages.properties
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages_en.properties
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbContainer.html
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbLinkSeparator.html
    portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/theme.properties
    portals/jetspeed-2/trunk/tutorial/project.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/
    portals/jetspeed-2/trunk/tutorial/xdocs/01/
    portals/jetspeed-2/trunk/tutorial/xdocs/01/build-it.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/01/first-steps.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/01/genapp.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/01/run-it.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/
    portals/jetspeed-2/trunk/tutorial/xdocs/02/customizing-overview.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/default-page.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/deploy-custom.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/desktop-theme.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/page-decoration.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/02/portlet-decoration.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/03/
    portals/jetspeed-2/trunk/tutorial/xdocs/03/build-it.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/03/pages.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/03/portlet-app.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/04/
    portals/jetspeed-2/trunk/tutorial/xdocs/04/eclipse.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/04/hello.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/04/overview.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/04/taglib.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/04/tutorial-psml.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/05/
    portals/jetspeed-2/trunk/tutorial/xdocs/05/jetspeed-service.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/build-commands.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/images/
    portals/jetspeed-2/trunk/tutorial/xdocs/images/Thumbs.db   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/eclipse-classpath.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/eclipse-classpath2.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/eclipse-classpath3.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/import-project.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/import-project2.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/jetexpress-desktop.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/jetexpress-portal.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/min-screenshot.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/new-home.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/new-home2.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/new-portlet.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/override-impl.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/site.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/src-dir.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/svn1.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/svn2.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/svn3.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/theme.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/tigris-page.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/images/tigris-portlet.png   (with props)
    portals/jetspeed-2/trunk/tutorial/xdocs/index.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/navigation.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/project-directory.xml
    portals/jetspeed-2/trunk/tutorial/xdocs/project-generation.xml

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/styles.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/styles.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/styles.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/css/styles.css Thu Jan  4 11:37:33 2007
@@ -0,0 +1,168 @@
+/*
+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.
+*/
+
+.express-portlet
+{
+    font-family: Verdana, Helvetica, Arial, sans-serif;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.express-portlet .PTitle
+{
+    padding-left:2px;
+    padding-top: 2px;
+    padding-bottom: 16px;
+    padding-right: 2px; 
+    border-left: 1px solid #517B94;
+    border-right: 1px solid #517B94;
+    border-top: 1px solid #517B94;
+    color: #990000;
+    
+    background-image: url(../images/grad2blue.png);
+}
+
+.express-portlet .PTitleContent
+{   
+    font-weight:bold;
+    display: inline;
+    float: left;
+
+}
+
+.express-portlet .PActionBar
+{
+   float: right;
+   display: inline;
+
+}
+ 
+.express-portlet .PContent
+{   
+    padding-left:2px;
+    padding-right:2px;
+    border-left: 1px solid #517B94;
+    border-right: 1px solid #517B94;
+    border-bottom: 1px solid #517B94;
+}
+
+/* Custom stuff for UGS added by EDB */
+.express-portlet p.corelink
+{
+    margin-top: 0.5em;
+    margin-bottom: 0em;
+    font-size: 12px;
+}
+
+.express-portlet p.abstract
+{
+    margin-top: 0em;
+    margin-bottom: 0.5em;
+    font-size: 11px;
+}
+
+.express-portlet p.title
+{
+    font-family: Arial, Helvetica, sans-serif; 
+    font-size: 17px; 
+    font-weight: bold; 
+    padding-bottom: 0em; 
+    margin-top: 0em; 
+    margin-bottom: 0em;
+}
+
+.express-portlet p.download
+{
+    font-size:12px;
+    margin-top:0.25em;
+    margin-bottom:0em;
+}
+
+.express-portlet p.side
+{ 
+    font-size: 12px;
+    margin-left: 0.85em;
+    text-indent: -0.85em;
+    margin-top: 0.25em;
+    margin-bottom:
+    0.25em;
+}
+
+.express-portlet img
+{
+    display: inline;
+    margin: 0em;
+}
+
+/** Below are tab styles */
+    .express-portlet .tabContainer
+    {
+      background-image: url(../images/grad1blue.png);
+      width: 100%;
+     
+    }
+    
+    .express-portlet .tabSpacer
+    {
+      border-bottom: thin solid #01375D;
+      height: 3px;      
+      width: 100%;
+    }
+    
+    .express-portlet A.tab,
+    .express-portlet A:LINK.tab,
+    .express-portlet A:ACTIVE.tab,
+    .express-portlet A:VISITED.tab,
+    .express-portlet A:HOVER.tab
+    {
+      color: #02385E;
+      font-size: x-small;
+      text-decoration: none;
+      padding-left: 4px;
+      padding-right: 4px;
+    }
+    
+    .express-portlet A.tabActive
+    {
+       
+        background-color: #85A3B8;
+        border-top: thin solid     #01375D;
+        border-left: thin solid #01375D;
+        border-right: thin solid #01375D;        
+        
+    }
+    
+    .express-portlet A:LINK.tabActive,
+    .express-portlet A:ACTIVE.tabActive,
+    .express-portlet A:VISITED.tabActive
+    {
+        color: #FFFFFF;
+    }
+    
+    .express-portlet A.tabInactive
+    {
+      background-image: none;
+      border-bottom: thin solid #01375D;
+      border-top: 0 none;
+    }
+    
+    .express-portlet A:HOVER.tabInactive
+    {
+      background-image: url(../images/grad2blue.png);
+      border-top: thin solid #990000;
+    }
+

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/decorator.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/decorator.properties?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/decorator.properties (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/decorator.properties Thu Jan  4 11:37:33 2007
@@ -0,0 +1,18 @@
+# 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=express-portlet
+template.type=velocity
+template.extension=.vm
+decorates=portlet

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad1blue.png
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad1blue.png?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad1blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad2blue.png
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad2blue.png?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/decorations/portlet/express-portlet/images/grad2blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalAccordionContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalAccordionContainer.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalAccordionContainer.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalAccordionContainer.css Thu Jan  4 11:37:33 2007
@@ -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/tutorial/portal/src/webapp/themes/express/css/PortalBreadcrumbContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalBreadcrumbContainer.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalBreadcrumbContainer.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalBreadcrumbContainer.css Thu Jan  4 11:37:33 2007
@@ -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/tutorial/portal/src/webapp/themes/express/css/PortalTabContainer.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTabContainer.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTabContainer.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTabContainer.css Thu Jan  4 11:37:33 2007
@@ -0,0 +1,178 @@
+/*
+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 : relative;
+}
+
+.dojoTabPaneWrapper {
+	border : 1px solid #6290d2;
+	_zoom: 1; /* force IE6 layout mode so top border doesnt disappear */
+	display: block;
+	clear: both;
+}
+
+.dojoTabLabels-top {
+	position : relative;
+	top : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-bottom : -1px;
+	width : 100%;
+	z-index: 2;	/* so the bottom of the tab label will cover up the border of dojoTabPaneWrapper */
+}
+
+.dojoTabNoLayout.dojoTabLabels-top .dojoTab {
+	margin-bottom: -1px;
+	_margin-bottom: 0px; /* IE filter so top border lines up correctly */
+}
+
+.dojoTab {
+	position : relative;
+	float : left;
+	padding-left : 9px;
+	border-bottom : 1px solid #6290d2;
+	background : url(../images/tabs/tab_left.gif) no-repeat left top;
+	cursor: pointer;
+	white-space: nowrap;
+	z-index: 3;
+}
+
+.dojoTab div {
+	display : block;
+	padding : 4px 15px 4px 6px;
+	background : url(../images/tabs/tab_top_right.gif) no-repeat right top;
+	color : #333;
+	font-size : 90%;
+}
+
+.dojoTab .close {
+	display : inline-block;
+	height : 12px;
+	width : 12px;
+	padding : 0 12px 0 0;
+	margin : 0 -10px 0 10px;
+	cursor : default;
+	font-size: small;
+}
+
+.dojoTab .closeImage {
+	background : url(../images/tabs/tab_close.gif) no-repeat right top;
+}
+
+.dojoTab .closeHover {
+	background-image : url(../images/tabs/tab_close_h.gif);
+}
+
+.dojoTab.current {
+	padding-bottom : 1px;
+	border-bottom : 0;
+	background-position : 0 -150px;
+}
+
+.dojoTab.current div {
+	padding-bottom : 5px;
+	margin-bottom : -1px;
+	background-position : 100% -150px;
+}
+
+/* bottom tabs */
+
+.dojoTabLabels-bottom {
+	position : relative;
+	bottom : 0px;
+	left : 0px;
+	overflow : visible;
+	margin-top : -1px;
+	width : 100%;
+	z-index: 2;
+}
+
+.dojoTabNoLayout.dojoTabLabels-bottom {
+	position : relative;
+}
+
+.dojoTabLabels-bottom .dojoTab {
+	border-top :  1px solid #6290d2;
+	border-bottom : 0;
+	background : url(../images/tabs/tab_bot_left.gif) no-repeat left bottom;
+}
+
+.dojoTabLabels-bottom .dojoTab div {
+	background : url(../images/tabs/tab_bot_right.gif) no-repeat right bottom;
+}
+
+.dojoTabLabels-bottom .dojoTab.current {
+	border-top : 0;
+	background : url(../images/tabs/tab_bot_left_curr.gif) no-repeat left bottom;
+}
+
+.dojoTabLabels-bottom .dojoTab.current div {
+	padding-top : 4px;
+	background : url(../images/tabs/tab_bot_right_curr.gif) no-repeat right bottom;
+}
+
+/* right-h tabs */
+
+.dojoTabLabels-right-h {
+	overflow : visible;
+	margin-left : -1px;
+	z-index: 2;
+}
+
+.dojoTabLabels-right-h .dojoTab {
+	padding-left : 0;
+	border-left :  1px solid #6290d2;
+	border-bottom : 0;
+	background : url(../images/tabs/tab_bot_right.gif) no-repeat right bottom;
+	float : none;
+}
+
+.dojoTabLabels-right-h .dojoTab div {
+	padding : 4px 15px 4px 15px;
+}
+
+.dojoTabLabels-right-h .dojoTab.current {
+	border-left :  0;
+	border-bottom :  1px solid #6290d2;
+}
+
+/* left-h tabs */
+
+.dojoTabLabels-left-h {
+	overflow : visible;
+	margin-right : -1px;
+	z-index: 2;
+}
+
+.dojoTabLabels-left-h .dojoTab {
+	border-right :  1px solid #6290d2;
+	border-bottom : 0;
+	float : none;
+	background : url(../images/tabs/tab_top_left.gif) no-repeat left top;
+}
+
+.dojoTabLabels-left-h .dojoTab.current {
+	border-right : 0;
+	border-bottom :  1px solid #6290d2;
+	padding-bottom : 0;
+	background : url(../images/tabs/tab_top_left.gif) no-repeat 0 -150px;
+}
+
+.dojoTabLabels-left-h .dojoTab div {
+	background : 0;
+	border-bottom :  1px solid #6290d2;
+}

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTaskBar.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTaskBar.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTaskBar.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/PortalTaskBar.css Thu Jan  4 11:37:33 2007
@@ -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/tutorial/portal/src/webapp/themes/express/css/styles.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/styles.css?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/styles.css (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/css/styles.css Thu Jan  4 11:37:33 2007
@@ -0,0 +1,376 @@
+/*
+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");
+
+
+/*  jetspeed desktop settings  */
+
+DIV.portlet
+{
+    margin: 2px;    /* necessary to override margin settings from decorations/layout/css/standard-columns.css */
+                    /* needs to match margin setting for .dojoFloatingPaneClient */
+}
+
+.layout-tigris #jetspeedPageControls {
+    float: right;
+    
+    width: 100px;
+}
+
+.layout-tigris #portalBreadcrumbList {
+    float: left;
+    margin-left: 6px;
+    margin-top: 2px;
+}
+
+.layout-tigris .portalPageActionButton {
+	height: 11px;
+	width: 11px;
+}
+
+
+/*  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 {
+    height: 20px;
+    width: 100%;
+
+    border-top: 1px solid #fff;
+    background-color: #ccc;
+
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+}
+
+.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;
+    clear: both;
+    width: 100%;
+}
+
+.layout-tigris #leftcol 
+{
+    width: 15%;
+    voice-family: "\"}\"";
+    voice-family: inherit;
+    font-size: x-small;
+    vertical-align: top;
+}
+
+.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/tutorial/portal/src/webapp/themes/express/express.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.jsp?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.jsp (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.jsp Thu Jan  4 11:37:33 2007
@@ -0,0 +1,88 @@
+<%--
+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();
+%>
+<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" />
+
+<%= desktop.getHeaderResource().getNamedContentForPrefix( "header.dojo" )%>
+
+<%= desktop.getHeaderResource().getContent()%>
+
+<script language="JavaScript" type="text/javascript">
+    function notifyRetrieveAllMenusFinished()
+    {
+        dojo.debug( "window.notifyRetrieveAllMenusFinished" );
+    }
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
+</script>
+</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="jetspeed:PortalTabContainer" style="width: 100%; margin-top: 2px; margin-left: -1px"></div>
+<div widgetId="jetspeed-menu-breadcrumbs" dojoType="jetspeed:PortalBreadcrumbContainer" style="width: 100%; margin-top: 2px; margin-left: -1px"></div>
+<table cellpadding="0" cellspacing="0" border="0" width="100%" id="main">
+<tr>
+<td id="leftcol">
+<div widgetId="jetspeed-menu-navigations" dojoType="jetspeed:PortalAccordionContainer" style=""></div>
+</td>
+<td id="jetspeedDesktopCell">
+<!-- Start Jetspeed Desktop -->
+<div class="<%= desktopThemeStyleClass %>" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
+<!-- Start Taskbar -->
+<!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
+<!-- <div dojoType="jetspeed: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/tutorial/portal/src/webapp/themes/express/express.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.vm?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.vm (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/express.vm Thu Jan  4 11:37:33 2007
@@ -0,0 +1,74 @@
+#*
+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" />
+
+#desktopIncludeDojoHeaderContent()
+
+#desktopIncludeHeaderContent()
+
+<script language="JavaScript" type="text/javascript">
+    function notifyRetrieveAllMenusFinished()
+    {
+        dojo.debug( "window.notifyRetrieveAllMenusFinished" );
+    }
+    dojo.event.connect( jetspeed, "notifyRetrieveAllMenusFinished", "notifyRetrieveAllMenusFinished" );
+</script>
+</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="jetspeed:PortalTabContainer" style="width: 100%; margin-top: 2px; margin-left: -1px"></div>
+<div widgetId="jetspeed-menu-breadcrumbs" dojoType="jetspeed:PortalBreadcrumbContainer" style="width: 100%; margin-top: 2px; margin-left: -1px"></div>
+<table cellpadding="0" cellspacing="0" border="0" width="100%" id="main">
+<tr>
+<td id="leftcol">
+<div widgetId="jetspeed-menu-navigations" dojoType="jetspeed:PortalAccordionContainer" style=""></div>
+</td>
+<td id="jetspeedDesktopCell">
+<!-- Start Jetspeed Desktop -->
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedDesktop"></div>
+<!-- End Jetspeed Desktop -->
+</td>
+</tr>
+</table>
+<!-- Start Taskbar -->
+<!-- (when we don't want a taskbar - set windowState to "minimized", otherwise omit windowState) -->
+<!-- <div dojoType="jetspeed: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/tutorial/portal/src/webapp/themes/express/images/addportlet.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/addportlet.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/addportlet.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/edit.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/edit.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/edit.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/help.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/help.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/help.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/logo.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/logo.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/nw_maj_rond.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/nw_maj_rond.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left_curr.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_left_curr.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right_curr.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_bot_right_curr.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close_h.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_close_h.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_left.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_left.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_left.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_left.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_right.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/tabs/tab_top_right.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

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

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/view.gif
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/view.gif?view=auto&rev=492701
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/images/view.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages.properties?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages.properties (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages.properties Thu Jan  4 11:37:33 2007
@@ -0,0 +1,23 @@
+# Copyright 2005 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.
+
+desktop.action.menu=Window Menu
+desktop.action.tile=Tile Window
+desktop.action.untile=Untile Window
+desktop.action.heightexpand=Height - Expand
+desktop.action.heightnormal=Height - Normal
+desktop.action.restore=Restore
+desktop.action.removeportlet=Delete Portlet
+desktop.action.addportlet=Add Portlet
+desktop.action.editpage=Edit Page

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages_en.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages_en.properties?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages_en.properties (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/resources/Messages_en.properties Thu Jan  4 11:37:33 2007
@@ -0,0 +1,23 @@
+# Copyright 2005 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.
+
+desktop.action.menu=Window Menu
+desktop.action.tile=Tile Window
+desktop.action.untile=Untile Window
+desktop.action.heightexpand=Height - Expand
+desktop.action.heightnormal=Height - Normal
+desktop.action.restore=Restore
+desktop.action.removeportlet=Delete Portlet
+desktop.action.addportlet=Add Portlet
+desktop.action.editpage=Edit Page

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbContainer.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbContainer.html?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbContainer.html (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbContainer.html Thu Jan  4 11:37:33 2007
@@ -0,0 +1 @@
+<div id="breadcrumbs"><div dojoAttachPoint="containerNode" id="portalBreadcrumbList"></div><div id="jetspeedPageControls"></div></div>

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbLinkSeparator.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbLinkSeparator.html?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbLinkSeparator.html (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/templates/PortalBreadcrumbLinkSeparator.html Thu Jan  4 11:37:33 2007
@@ -0,0 +1 @@
+<span dojoAttachPoint="containerNode">&nbsp;&gt;&gt;&nbsp;</span>

Added: portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/theme.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/theme.properties?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/theme.properties (added)
+++ portals/jetspeed-2/trunk/tutorial/portal/src/webapp/themes/express/theme.properties Thu Jan  4 11:37:33 2007
@@ -0,0 +1,17 @@
+# 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=express
+template.extension=.vm
+resource.file=Messages

Added: portals/jetspeed-2/trunk/tutorial/project.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/project.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/project.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/project.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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$
+-->
+<project>
+    <pomVersion>3</pomVersion>
+    <groupId>org.apache.portals.tutorials</groupId>
+    <artifactId>jetexpress</artifactId>
+    <name>JetExpress Tutorial Portal</name>
+    <currentVersion>1.0</currentVersion>        
+</project>

Added: portals/jetspeed-2/trunk/tutorial/xdocs/01/build-it.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/01/build-it.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/01/build-it.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/01/build-it.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!--
+  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.
+-->
+<document>
+  <properties>
+    <title>Build the Custom Portal</title>
+    <subtitle>Building a Custom Jetspeed Portal</subtitle>
+	<authors>
+		<person name="David Sean Taylor" email="taylor@apache.org" />
+	</authors>
+  </properties>
+  <body>
+    <section name="Building and Deploying a Custom Jetspeed Portal">
+      <p>      
+       Now that you have generated a custom portal named <b>jetexpress</b>, we are ready to build the portal.
+       We are going to build the portal from the command line:
+      </p>
+	 <source>
+	 <![CDATA[
+# Linux	 
+cd /JetspeedTraining/workspace/jetexpress  	 
+
+# Windows
+cd \JetspeedTraining\workspace\jetexpress  	 
+
+mvn -P tomcat,min
+     ]]>
+	</source> 
+      <p>
+      <i>Please take note that there is no space between the comma and the word <b>min</b></i>
+      </p>
+      <p>
+      We are building a <b>min</b> (minimal) deployment. The Min deployment only creates a Jetspeed core portal and a Jetspeed Admin portlet application (j2-admin).
+      When the build process completes, you should see the message <b>BUILD SUCCESSFUL</b> at the end of a large amount of build logging information      
+      The portal is built into a temp directory named <i>target</i> found directory under your <i>jetexpress</i> project directory.
+      As well as building, the <i>tomcat,min</i> goals also:
+      </p>
+      <ul>
+       <li>deploys Jetspeed to the Tomcat application server. If you are following the training material,
+      the Tomcat directory is located under <i>/JetspeedTraining/tomcat-express/</i></li>
+      <li>creates the Jetspeed core schema tables in the Derby database</li>
+      <li>populates the database with a minimal set of portal information, including default roles, groups, profiles, and administrative users</li>
+      </ul>
+      <p>
+      Now that we've built and deployed the portal, lets start up the application server...
+      </p>	
+	  <p>
+	    <a href='genapp.html'>Previous</a> <a href='run-it.html'>Next</a>
+	  </p>            
+    </section>
+  </body>
+</document>
+

Added: portals/jetspeed-2/trunk/tutorial/xdocs/01/first-steps.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/01/first-steps.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/01/first-steps.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/01/first-steps.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<!--
+  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.
+-->
+<document>
+  <properties>
+    <title>Maven First Steps</title>
+    <subtitle>Custom Project First Steps</subtitle>
+	<authors>
+		<person name="David Sean Taylor" email="taylor@apache.org" />
+	</authors>
+  </properties>
+  <body>
+    <section name="First Steps with Maven-2">
+    <p>
+    Minimal configuration is required to get started with your Jetspeed custom build and Maven-2.
+    </p>
+    <subsection name='Copying in the settings.xml'>
+      <p>      
+       The first step to building with Maven-2 is to setup your <b>settings.xml</b>.
+       These settings hold all the information necessary to build with Maven-2 and Jetspeed.             
+      </p>
+      <p>There is a <i>settings.xml.jetexpress</i> file in the <i>/JetspeedTraining/resources/maven/</i> directory.
+         Copy this file into your <i>Maven Home</i> directory. The Maven home directory
+         is located in a directory named <b>.m2</b> found under your <i>User Home</i> directory.
+         So for example that would be <i>~/.m2/</i> on Linux, or <i>"%USERPROFILE%\.m2\"</i> on Windows.
+      </p>
+	  <p>
+	  <b>Linux: paste into Command Line:</b>
+	  <input size ='80' value='mkdir ~/.m2'/>
+	  <input id='cl1' size="80" value="cp resources/maven/settings.xml.jetexpress ~/.m2/settings.xml"/>	  
+	  </p>
+	  <p>
+	  <b>Windows: paste into Command Line:</b>
+	  <input size="80" value='mkdir "%USERPROFILE%\.m2"'/>
+	  <input id='cl1' size="80" value='copy resources\maven\settings.xml.jetexpress "%USERPROFILE%\.m2\settings.xml"'/>	  	  	  
+	  </p>	  
+	</subsection>
+    <subsection name='Editing the settings.xml'>	
+      <p>
+      The settings file is primarily for configuring your application server and database.
+      The settings are preconfigured for an embedded Derby database, so more changes are required 
+      if another database solution is to be used, covered later in this tutorial.      
+      </p>
+	  <p>	 
+	  Edit the <i>~/.m2/settings.xml</i> file. 
+	  </p>
+	</subsection>
+    <subsection name='Change the Jetspeed Server (Tomcat) Location'>		  
+    <p>
+	  For the purpose of the training, lets all use the same Tomcat home, point it to the <i>/JetspeedTraining/tomcat-express</i> directory.
+	  </p>
+	 <source>
+	 <![CDATA[		
+	  <org.apache.jetspeed.server.home>c:/JetspeedTraining/tomcat-express</org.apache.jetspeed.server.home>
+     ]]>
+	</source> 
+	</subsection>
+    <subsection name='Change the Derby Database location'>		  	
+	  <p>	 
+	  Next, lets change the location of our Derby database to the <i>/JetspeedTraining/database/jetexpress</i> directory.
+	  </p>
+	 <source>
+	 <![CDATA[		
+     <org.apache.jetspeed.production.database.url>jdbc:derby:/JetspeedTraining/database/jetexpress</org.apache.jetspeed.production.database.url>	 
+     ]]>
+	</source> 	
+	</subsection>
+    <subsection name='Change the Repository Location'>		
+    <p>  
+        Change the Maven local repository location by modifying the <i>&lt;localRepository&gt;</i>
+	    element in the settings.xml file. If you are using the training material, we have pre-configured
+	    a Maven-2 repository /JetspeedTraining/maven/repository. Lets configure Maven to point there,
+	    edit the <i>settings.xml</i>:	    
+     </p>
+	 <source>
+	 <![CDATA[		
+	  <localRepository>c:/JetspeedTraining/maven/repository/</localRepository>
+     ]]>
+	</source> 
+	  <p>Go on and save that file.</p>     
+	</subsection>
+	  <p>
+	    <a href='genapp.html'>Next</a>
+	  </p>            	  
+    </section>        
+  </body>
+</document>
+

Added: portals/jetspeed-2/trunk/tutorial/xdocs/01/genapp.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/01/genapp.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/01/genapp.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/01/genapp.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!--
+  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.
+-->
+<document>
+  <properties>
+    <title>Generating a Jetspeed Portal</title>
+    <subtitle>Using Maven to Generate a Custom Jetspeed Portal</subtitle>
+	<authors>
+		<person name="David Sean Taylor" email="taylor@apache.org" />
+	</authors>
+  </properties>
+  <body>
+    <section name="Generating a Jetspeed Portal">
+      <p>      
+       To create a new custom portal named <b>jetexpress</b>, enter the following commands:
+      </p>
+	 <source>
+	 <![CDATA[
+# Linux	 
+cd /JetspeedTraining/workspace
+
+# Windows
+cd \JetspeedTraining\workspace
+
+mvn archetype:create -DarchetypeGroupId=org.apache.portals.jetspeed-2 
+                     -DarchetypeArtifactId=portal-archetype 
+                     -DarchetypeVersion=2.1-dev 
+                     -DgroupId=org.apache.portals.tutorials
+                     -DartifactId=jetexpress
+                     -Dversion=1.0
+     ]]>
+	</source> 
+	  <p>
+	  <b>Paste into Command Line:</b>
+	  <input id='genapp' size="80" value="mvn archetype:create -DarchetypeGroupId=org.apache.portals.jetspeed-2 -DarchetypeArtifactId=portal-archetype -DarchetypeVersion=2.1-dev -DgroupId=org.apache.portals.tutorials -DartifactId=jetexpress -Dversion=1.0"/>	  
+	  </p>
+      <p>      
+       A directory named <b>jetexpress</b> under <i>/JetspeedTraining/workspace</i> should have been created.
+       Notice that <b>jetexpress</b> will be the name of your portal, not <b>jetspeed</b>. The idea is that you 
+       can create a customized portal based upon Jetspeed, but with a different name, customized to meet your organization requirements.
+      </p>	
+	  <p>
+	    <a href='first-steps.html'>Previous</a> <a href='build-it.html'>Next</a>
+	  </p>            
+    </section>
+  </body>
+</document>
+

Added: portals/jetspeed-2/trunk/tutorial/xdocs/01/run-it.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/01/run-it.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/01/run-it.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/01/run-it.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<!--
+  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.
+-->
+<document>
+  <properties>
+    <title>Run the Custom Portal</title>
+    <subtitle>Running a Custom Jetspeed Portal</subtitle>
+	<authors>
+		<person name="David Sean Taylor" email="taylor@apache.org" />
+	</authors>
+  </properties>
+  <body>
+    <section name="Running a Custom Jetspeed Portal">
+      <p>      
+       Running the portal is very straight forward. In this tutorial we are running our Jetspeed portal in a Tomcat application server.
+       To start up the portal, go to the command line and enter:
+      </p>
+	 <source>
+	 <![CDATA[
+cd tomcat-express
+cd bin
+# Windows
+catdebug 
+# Linux
+./catdebug.sh
+     ]]>
+	</source> 
+      <p>
+      The first time we run the portal, its going to take a minute or so to complete the initial deployment of the portal and Admin portlet application.       
+      </p>	
+      <p>
+      Open up a browser and navigate to <a href="http://localhost:8080/jetexpress/portal">http://localhost:8080/jetexpress/portal</a>
+      </p>
+	  <p>
+	   You should see the minimal core Jetspeed portal as shown below. Login with the credentials <b>admin/admin</b>. You will be prompted
+	   to change the admin password. As you can see, this is a boiler plate, minimal portal. Press the Next button to get started on customizing
+	   Jetspeed.
+	  </p>            
+	  <p>
+	    <a href='build-it.html'>Previous</a> <a href='../02/customizing-overview.html'>Next</a>
+	  </p>	  
+	  <img src="../images/min-screenshot.png"/>
+    </section>
+  </body>
+</document>
+

Added: portals/jetspeed-2/trunk/tutorial/xdocs/02/customizing-overview.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/02/customizing-overview.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/02/customizing-overview.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/02/customizing-overview.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!--
+	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.
+-->
+<document>
+	<properties>
+		<title>Customization</title>
+		<subtitle>Decorator and Theme Customization</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+		</authors>
+	</properties>
+	<body>
+    <section name="Decorator and Theme Customization">
+      <p> 
+      Now that we have created our custom Jetspeed project, lets start customizing the portal design.
+      The portal design, or skins, are known in Jetspeed as <i>decorators and themes</i>.
+      With decorators and themes, you can customize the portal experience to the branding of your 
+      organization. In this tutorial, we will simply change a few images, CSS styles and colors to get 
+      you on your way.
+      </p>
+      <p>
+      It is important to note that all of the changes made in this section 
+      are made in the build environment. The changes we are making here could just as easily
+      be made using the portal's live customization features. For example, you can drop a decorator
+      or theme into the portal while its running. Jetspeed will pick it up automatically. Or, to 
+      customize a page, you can use the portlet customizer or desktop customizer, portlet selector,
+      and site manager: all administrative portlets that work on your live portal. However, the point of
+      configuring everything in a Maven build is to be able to easily reproduce portal environments
+      for development, testing, and new deployments.
+      </p>
+      <p>
+      This section of the tutorial covers customizing:
+      <ul>
+      <li>Portal Skins (or Decorators). We replace the default logo, colors, and page header and footers with our own.
+      </li>
+      <li>Portal Themes. Same as Portal Skins, but themes apply to the Jetspeed Desktop.
+      </li>
+      <li>Configuring the default portal page to use these new decorators and themes</li>
+      </ul>
+      </p>	
+	  <p>Lets get started with customization of the default portal page decoration</p>
+	  <p>
+	    <a href='../01/run-it.html'>Previous</a> <a href='page-decoration.html'>Next</a>
+	  </p>	        
+	  </section>	  
+	</body>
+</document>
\ No newline at end of file

Added: portals/jetspeed-2/trunk/tutorial/xdocs/02/default-page.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/02/default-page.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/02/default-page.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/02/default-page.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--
+	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.
+-->
+<document>
+	<properties>
+		<title>Default Page</title>
+		<subtitle>Modifying the Default Page</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+		</authors>
+	</properties>
+	<body>
+    <section name="Modifying the Default Page">
+      <p> 
+      Now that we have created our decorators and themes, lets put them to use on the default page.
+	  Lets get started with customization of the default portal page decoration. Copy in our
+	  sample default-page:</p>
+	 <source>
+	 <![CDATA[
+# Linux	 
+cd /JetspeedTraining/workspace/jetexpress
+cp ../../resources/pages/default-page.psml portal/src/webapp/WEB-INF/pages/
+
+# Windows
+cd \JetspeedTraining\workspace\jetexpress
+copy  ..\..\resources\pages\default-page.psml portal\src\webapp\WEB-INF\pages
+     ]]>
+     </source>	  	  
+	<p>Refresh your Eclipse project and edit the default-page.psml.
+	   Make the following modifications 
+	   <ul>
+	   <li>for the layout-decorator, replace tigris with <b>express-page</b></li>
+	   <li>for the portlet-decorator, replace tigris with <b>express-portlet</b></li>
+	   <li>add a skin default attribute as <b>skin="express"</b> for the desktop theme</li>
+	   </ul>
+	   </p>
+	 <source>
+	 <![CDATA[
+<page>
+  <defaults layout-decorator="express-page" 
+            portlet-decorator="express-portlet"
+            skin="express"/>	   	  
+     ]]>
+     </source>	  	  	   	
+     <p>Go ahead and save that file. We are now ready to deploy your changes to the portal</p>  
+	  <p>
+	    <a href='desktop-theme.html'>Previous</a> <a href='deploy-custom.html'>Next</a>
+	  </p>	        
+	  </section>	  
+	</body>
+</document>
\ No newline at end of file

Added: portals/jetspeed-2/trunk/tutorial/xdocs/02/deploy-custom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/02/deploy-custom.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/02/deploy-custom.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/02/deploy-custom.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!--
+	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.
+-->
+<document>
+	<properties>
+		<title>Deploying Decorations, Themes and Pages</title>
+		<subtitle>Deploying Decorations, Themes and Pages</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+		</authors>
+	</properties>
+	<body>
+    <section name="Deploying Decorations, Themes and Pages">
+      <p> 
+      To deploy the new resources (decorations, themes, and page) that we created in this section
+      of the tutorial, you could simply rebuild the portal by typing <b>mvn -P tomcat,min</b>.
+      Or, if your portal is aleady up and running, a simpler way is to automate the easy deployment
+      tasks with Ant. We have created a simple build.xml to copy over changed portal resources:</p>
+	 <source>
+	 <![CDATA[
+# Linux	 
+cd /JetspeedTraining/workspace/jetexpress
+cp ../../resources/build.xml .
+
+# Windows
+cd \JetspeedTraining\workspace\jetexpress
+copy  ..\..\resources\build.xml
+     ]]>
+     </source>	  	  
+	<p>To copy over the resources to the running portal, type:
+	   </p>
+	 <source>
+	 <![CDATA[
+ant	 
+     ]]>
+     </source>	  	  	   	
+     <p>Refresh the portal home page, <a href="http://localhost:8080/jetexpress/portal">http://localhost:8080/jetexpress/portal</a>
+     You should now see a portal with our new custom decorators:</p>  
+     <p>
+     <img src="../images/jetexpress-portal.png"/>
+     </p>
+     <p>
+     and desktop theme:
+     </p>
+     <p>
+     <img src="../images/jetexpress-desktop.png"/>     
+     </p>
+	  <p>
+	    <a href='default-page.html'>Previous</a> <a href='../03/portlet-app.html'>Next</a>
+	  </p>	        
+	  </section>	  
+	</body>
+</document>
\ No newline at end of file

Added: portals/jetspeed-2/trunk/tutorial/xdocs/02/desktop-theme.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/tutorial/xdocs/02/desktop-theme.xml?view=auto&rev=492701
==============================================================================
--- portals/jetspeed-2/trunk/tutorial/xdocs/02/desktop-theme.xml (added)
+++ portals/jetspeed-2/trunk/tutorial/xdocs/02/desktop-theme.xml Thu Jan  4 11:37:33 2007
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<!--
+	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.
+-->
+<document>
+	<properties>
+		<title>Page Themes</title>
+		<subtitle>Desktop Page Themes</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+		</authors>
+	</properties>
+	<body>
+    <section name="Desktop Page Themes">
+      <p> 
+      The Jetspeed Desktop has its own kinds of decorations.
+      These decorations are called <b>Desktop Themes</b>
+
+      Each Jetspeed Desktop page can be associated with a different theme. Themes
+      control some important aspect of a desktop page:
+      <ul>
+      <li>The colors, images, CSS styles that skin this page</li>
+      <li>The header portion of the page</li>
+      <li>The page margins</li>
+      <li>The footer portion of the page</li>
+      <li>Menus displayed on the page</li>
+      <li>Action buttons displayed on the window</li>            
+      </ul>
+      Themes do not control the placement of portlets. That is handled by the Jetspeed Desktop engine,
+      which follows the layout plan provided by the stuctured page markup (PSML). This is the same
+      layout instructions applied to a portal page. You will see that themes are much simpler
+      content than decorators. That is because most of the content in a theme is populated by the
+      Jetspeed Desktop engine at runtime.
+      Jetspeed comes with a few desktop themes out of the box. The default desktop theme for 
+      most pages is called <i>blue</i>. It looks like this:
+      </p>
+      <img src="../images/theme.png"/>
+      <p>
+      We are going to create a new desktop theme for this tutorial.
+      This new theme can be copied into our project from the <i>/JetspeedTutorial/resources/themes/express/</i> directory.
+      This will save you the trouble of creating all the logo images and CSS definitions.
+      </p>
+	 <source>
+	 <![CDATA[
+# Linux	 
+cd /JetspeedTraining/workspace/jetexpress
+mkdir portal/src/webapp/desktop-themes/express
+cp -r ../../resources/desktop-themes/express/* portal/src/webapp/desktop-themes/express/
+
+# Windows
+cd \JetspeedTraining\workspace\jetexpress
+mkdir portal\src\webapp\desktop-themes\express
+xcopy /s ..\..\resources\desktop-themes\express\* portal\src\webapp\desktop-themes\express\
+     ]]>
+     </source>	  	  
+    <subsection name="The Theme template">
+    <p>
+    Have a look at the <i>express</i> theme directory. 
+    Notice that there are two theme files: <i>express.jsp</i> and <i>express.vm</i>
+    Since there were so many complaints about no JSP support in templates, with the Desktop we 
+    decided to require support for both. The <i>theme.properties</i> determines which templates
+    is active. Lets look at the Velocity template. We have macros to display-theme relative resources:
+    </p>
+	 <source>
+	 <![CDATA[    
+        <img src="$jetspeedDesktop.getDesktopThemeResourceUrl('images/logo.gif')" alt="Logo" border="0"/>
+     ]]>
+     </source>	  	  
+    </subsection>
+    <subsection name="Theme Variables">    
+    <p>
+    JSP and Velocity make several variables about the context of a theme available for dynamic substition of menus and content:
+    </p>
+    <table>
+    <tr>
+    <th>Variable</th>
+    <th>Desc</th>    
+    <th>Usage</th>
+    </tr>
+    <tr>
+    <td>$jetspeedDesktop</td>
+    <td>Retrieve theme resources, and the name of the theme</td>
+    <td>${jetspeedDesktop.getDesktopTheme()</td>
+    </tr>
+    </table>
+    </subsection>
+    <subsection name="Content Divs">   
+     <p>
+     The remainder of the page is HTML DIV markup with special widget types and identifiers.
+     The desktop will populate these Divs with various content such as the portlets and menus.
+     <i>Jetspeed Menus</i> are build from a collection of portal resources
+     known as the <i>Portal Site</i>. The portal site is a content tree (like a file system) of portal
+     resources. The site can be stored in the file system or in a database. Resources can be a page,
+     folder, or link.  Lets look at some of the available macros for displaying menus on your page.
+     </p>	     
+    <p>
+    <table>
+    <tr>
+    <th>Widget</th>
+    <th>Type</th>
+    <th>Desc</th>
+    </tr>
+    <tr>
+    <td>jetspeed-menu-pages</td>
+    <td>jetspeed:PortalTabContainer</td>
+    <td>relative pages menu of pages in the current folder. Used to define the page tabs above the portal.</td>
+    </tr>
+    <tr>
+    <td>jetspeed-menu-breadcrumbs</td>
+    <td>jetspeed:PortalBreadcrumbContainer</td>
+    <td>paths to page used to provide history links below the page tabs</td>
+    </tr>
+    <tr>
+    <td>jetspeed-menu-navigations</td>
+    <td>jetspeed:PortalAccordionContainer</td>
+    <td>relative subfolders and root level links menu used to define the navigation pane beside the portal.</td>
+    </tr>
+    </table>
+    You can also define your own menus (not covered in this tutorial).
+    </p>
+	<p>
+	Finally, the Div to hold the portlet content must be defined. It is just a plain HTML DIV:
+	 <source>
+	 <![CDATA[
+<div class="layout-${jetspeedDesktop.getDesktopTheme()}" id="jetspeedDesktop"></div>	
+     ]]>
+     </source>	  	  
+	Notice that while decorators require two templates, desktops only require one template.
+	This makes for a much simpler page.
+	</p>
+	</subsection>
+	  <p>
+	    <a href='portlet-decoration.html'>Previous</a> <a href='default-page.html'>Next</a>
+	  </p>	      
+ </section>	  
+</body>
+</document>
\ No newline at end of file



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