You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/06/25 01:31:30 UTC

svn commit: r416971 - in /tapestry/tapestry4/trunk: ./ annotations/ contrib/ examples/ examples/TimeTracker/ examples/Vlib/ examples/VlibBeans/ examples/Workbench/ framework/ framework/src/java/org/apache/tapestry/dojo/form/ framework/src/js/dojo/src/w...

Author: jkuhnert
Date: Sat Jun 24 16:31:29 2006
New Revision: 416971

URL: http://svn.apache.org/viewvc?rev=416971&view=rev
Log:
Added new custom widget..Some validation checks for Autocomplete

Added:
    tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js   (with props)
    tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js   (with props)
    tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_down.gif   (with props)
    tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_up.gif   (with props)
    tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html   (with props)
    tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html   (with props)
Modified:
    tapestry/tapestry4/trunk/annotations/pom.xml
    tapestry/tapestry4/trunk/contrib/pom.xml
    tapestry/tapestry4/trunk/examples/TimeTracker/pom.xml
    tapestry/tapestry4/trunk/examples/Vlib/pom.xml
    tapestry/tapestry4/trunk/examples/VlibBeans/pom.xml
    tapestry/tapestry4/trunk/examples/Workbench/pom.xml
    tapestry/tapestry4/trunk/examples/pom.xml
    tapestry/tapestry4/trunk/framework/pom.xml
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.script
    tapestry/tapestry4/trunk/framework/src/js/dojo/src/widget/templates/HtmlComboBox.html
    tapestry/tapestry4/trunk/framework/src/js/tapestry/form/validation.js
    tapestry/tapestry4/trunk/framework/src/js/tests/test_debug.js
    tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDatePicker.html
    tapestry/tapestry4/trunk/pom.xml
    tapestry/tapestry4/trunk/portlet/pom.xml
    tapestry/tapestry4/trunk/src/site/apt/download.apt
    tapestry/tapestry4/trunk/src/site/site.xml

Modified: tapestry/tapestry4/trunk/annotations/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/annotations/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/annotations/pom.xml (original)
+++ tapestry/tapestry4/trunk/annotations/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,7 +3,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>annotations</artifactId>
+    <artifactId>tapestry-annotations</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
@@ -17,7 +17,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
+            <artifactId>tapestry-framework</artifactId>
             <version>4.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>

Modified: tapestry/tapestry4/trunk/contrib/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/contrib/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/contrib/pom.xml (original)
+++ tapestry/tapestry4/trunk/contrib/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,7 +3,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>contrib</artifactId>
+    <artifactId>tapestry-contrib</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
@@ -17,7 +17,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
+            <artifactId>tapestry-framework</artifactId>
             <version>4.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>

Modified: tapestry/tapestry4/trunk/examples/TimeTracker/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/examples/TimeTracker/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/pom.xml (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,13 +3,13 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>TimeTracker</artifactId>
+    <artifactId>tapestry-TimeTracker</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
     <parent>
         <groupId>org.apache.tapestry</groupId>
-        <artifactId>examples</artifactId>
+        <artifactId>tapestry-examples</artifactId>
         <version>4.1.0-SNAPSHOT</version>
     </parent>
     <name>Tapestry Core Library</name>
@@ -17,11 +17,11 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
+            <artifactId>tapestry-framework</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>annotations</artifactId>
+            <artifactId>tapestry-annotations</artifactId>
         </dependency>
         <dependency>
             <groupId>hivemind</groupId>

Modified: tapestry/tapestry4/trunk/examples/Vlib/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/examples/Vlib/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/Vlib/pom.xml (original)
+++ tapestry/tapestry4/trunk/examples/Vlib/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,13 +3,13 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>Vlib</artifactId>
+    <artifactId>tapestry-Vlib</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
     <parent>
         <groupId>org.apache.tapestry</groupId>
-        <artifactId>examples</artifactId>
+        <artifactId>tapestry-examples</artifactId>
         <version>4.1.0-SNAPSHOT</version>
     </parent>
     <name>Tapestry Virtual Library</name>
@@ -17,11 +17,11 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
+            <artifactId>tapestry-framework</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>annotations</artifactId>
+            <artifactId>tapestry-annotations</artifactId>
         </dependency>
         <dependency>
             <groupId>jboss</groupId>
@@ -30,7 +30,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>VlibBeans</artifactId>
+            <artifactId>tapestry-VlibBeans</artifactId>
             <version>4.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>

Modified: tapestry/tapestry4/trunk/examples/VlibBeans/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/examples/VlibBeans/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/VlibBeans/pom.xml (original)
+++ tapestry/tapestry4/trunk/examples/VlibBeans/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,13 +3,13 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>VlibBeans</artifactId>
+    <artifactId>tapestry-VlibBeans</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
     <parent>
         <groupId>org.apache.tapestry</groupId>
-        <artifactId>examples</artifactId>
+        <artifactId>tapestry-examples</artifactId>
         <version>4.1.0-SNAPSHOT</version>
     </parent>
     <name>Tapestry Virtual Library</name>
@@ -17,15 +17,15 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
+            <artifactId>tapestry-framework</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>annotations</artifactId>
+            <artifactId>tapestry-annotations</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>contrib</artifactId>
+            <artifactId>tapestry-contrib</artifactId>
             <version>4.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>

Modified: tapestry/tapestry4/trunk/examples/Workbench/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/examples/Workbench/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/Workbench/pom.xml (original)
+++ tapestry/tapestry4/trunk/examples/Workbench/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,13 +3,13 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>Workbench</artifactId>
+    <artifactId>tapestry-Workbench</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
     <parent>
         <groupId>org.apache.tapestry</groupId>
-        <artifactId>examples</artifactId>
+        <artifactId>tapestry-examples</artifactId>
         <version>4.1.0-SNAPSHOT</version>
     </parent>
     <name>Tapestry Workbench</name>
@@ -22,11 +22,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>annotations</artifactId>
+            <artifactId>tapestry-annotations</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
-            <artifactId>contrib</artifactId>
+            <artifactId>tapestry-contrib</artifactId>
         </dependency>
     </dependencies>
     <build>

Modified: tapestry/tapestry4/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/examples/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/pom.xml (original)
+++ tapestry/tapestry4/trunk/examples/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,7 +3,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>examples</artifactId>
+    <artifactId>tapestry-examples</artifactId>
     <packaging>pom</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->
@@ -24,17 +24,17 @@
         <dependencies>
             <dependency>
                 <groupId>org.apache.tapestry</groupId>
-                <artifactId>framework</artifactId>
+                <artifactId>tapestry-framework</artifactId>
                 <version>4.1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.tapestry</groupId>
-                <artifactId>annotations</artifactId>
+                <artifactId>tapestry-annotations</artifactId>
                 <version>4.1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.tapestry</groupId>
-                <artifactId>contrib</artifactId>
+                <artifactId>tapestry-contrib</artifactId>
                 <version>4.1.0-SNAPSHOT</version>
             </dependency>
         </dependencies>

Modified: tapestry/tapestry4/trunk/framework/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/pom.xml (original)
+++ tapestry/tapestry4/trunk/framework/pom.xml Sat Jun 24 16:31:29 2006
@@ -3,7 +3,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>framework</artifactId>
+    <artifactId>tapestry-framework</artifactId>
     <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
     <!-- This should change to tapestry-project -->

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java Sat Jun 24 16:31:29 2006
@@ -104,6 +104,7 @@
         }
         
         parms.put("props", json.toString());
+        parms.put("form", getForm().getName());
         
         PageRenderSupport prs = TapestryUtils.getPageRenderSupport(cycle, this);
         getScript().execute(cycle, prs, parms);

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.script
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.script?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.script (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.script Sat Jun 24 16:31:29 2006
@@ -5,6 +5,7 @@
 <script>
 <input-symbol key="id" required="yes" />
 <input-symbol key="props" required="yes" />
+<input-symbol key="form" required="yes" />
     <body>
         <unique>
             dojo.require("dojo.io");

Modified: tapestry/tapestry4/trunk/framework/src/js/dojo/src/widget/templates/HtmlComboBox.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/dojo/src/widget/templates/HtmlComboBox.html?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/dojo/src/widget/templates/HtmlComboBox.html (original)
+++ tapestry/tapestry4/trunk/framework/src/js/dojo/src/widget/templates/HtmlComboBox.html Sat Jun 24 16:31:29 2006
@@ -12,7 +12,7 @@
 			<td width=100%>
 				<input type="text" autocomplete="off" class="dojoComboBoxInput"
 					dojoAttachEvent="keyDown: onKeyDown; keyUp: onKeyUp; keyPress: onKeyPress;"
-					dojoAttachPoint="textInputNode"
+					dojoAttachPoint="textInputNode" 
 					style="width: 100%;">
 			</td>
 			<td>

Modified: tapestry/tapestry4/trunk/framework/src/js/tapestry/form/validation.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/form/validation.js?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tapestry/form/validation.js (original)
+++ tapestry/tapestry4/trunk/framework/src/js/tapestry/form/validation.js Sat Jun 24 16:31:29 2006
@@ -77,8 +77,6 @@
 	processResults:function(form, results, profile){
 		if (results.isSuccessful()) return true; 
 		
-		// TODO: Need to remove previous field validation
-		// decorations for things fixed since last run
 		var formValid=true;
 		if (results.hasMissing()) {
 			var missing=results.getMissing();
@@ -99,6 +97,16 @@
 	 * @param profile The form validation profile.
 	 */
 	handleMissingField:function(field, profile){
+		// if it's a widget form control try to point the field
+		// to the widget controlled field
+		/* var w=dojo.widget.byId(field);
+		if (w) {
+			if (w["textInputNode"]){
+				field=w.textInputNode;
+			}
+		}
+		*/
+		
 		dojo.html.removeClass(field, this.invalidClass);
 		
 		if (!dojo.html.hasClass(field, this.missingClass)){
@@ -120,6 +128,10 @@
 		}
 	},
 	
+	/**
+	 * Clears out previous css classes set on fields 
+	 * in error.
+	 */
 	clearValidationDecorations:function(form, props){
 		for (var i=0; i<form.elements.length; i++) {
 			dojo.html.removeClass(form.elements[i], this.missingClass);

Added: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js?rev=416971&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js (added)
+++ tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js Sat Jun 24 16:31:29 2006
@@ -0,0 +1,60 @@
+dojo.provide("tapestry.widget.DropdownDateTimePicker");
+
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.DropdownContainer");
+dojo.require("dojo.event.*");
+dojo.require("dojo.html");
+
+dojo.require("tapestry.widget.TimePicker");
+
+dojo.widget.defineWidget(
+	"tapestry.widget.DropdownDateTimePicker",
+	dojo.widget.DropdownContainer,
+	{
+		iconURL: dojo.uri.dojoUri("../tapestry/widget/templates/images/dateIcon.gif"),
+		iconAlt: "Select a Date/Time",
+		zIndex: "10",
+		timePicker: null,
+		
+		dateFormat: "%I:%M %p",
+		date: null,
+		
+		fillInTemplate: function(args, frag){
+			tapestry.widget.DropdownDateTimePicker.superclass.fillInTemplate.call(this, args, frag);
+			var source = this.getFragNodeRef(frag);
+			
+			if(args.date){ this.date = new Date(args.date); }
+			
+			var dpNode = document.createElement("div");
+			this.containerNode.appendChild(dpNode);
+			
+			var dateProps = { widgetContainerId: this.widgetId };
+			if(this.date){
+				dateProps["date"] = this.date;
+				dateProps["storedDate"] = dojo.widget.TimePicker.util.toRfcDateTime(this.date);
+				this.inputNode.value = dojo.date.format(this.date, this.dateFormat);
+			}
+			this.timePicker = dojo.widget.createWidget("TimePicker", dateProps, dpNode);
+			dojo.event.connect(this.timePicker, "onSetTime", this, "onSetTime");
+			this.containerNode.style.zIndex = this.zIndex;
+			this.containerNode.style.backgroundColor = "transparent";
+		},
+		
+		onSetTime: function(){
+			this.inputNode.value = dojo.date.format(this.timePicker.time, this.dateFormat);
+			this.hideContainer();
+		},
+		
+		onInputChange: function(){
+			if (this.inputNode.value.length < 1) return;
+			var tmp = new Date(this.inputNode.value);
+			this.timePicker.time = tmp;
+			this.timePicker.setDateTime(dojo.widget.TimePicker.util.toRfcDateTime(tmp));
+			this.timePicker.initData();
+			this.timePicker.initUI();
+		}
+	},
+	"html"
+);
+
+dojo.widget.tags.addParseTreeHandler("dojo:dropdowndatetimepicker");

Propchange: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/DropdownDateTimePicker.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js?rev=416971&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js (added)
+++ tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js Sat Jun 24 16:31:29 2006
@@ -0,0 +1,329 @@
+dojo.provide("tapestry.widget.TimePicker");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.date");
+dojo.require("dojo.lang.common");
+
+tapestry.widget.TimePicker=function(){
+	dojo.widget.HtmlWidget.call(this);
+	
+	this.widgetType="TimePicker";
+	this.isContainer=false;
+
+	this.hourElement=null;
+	this.minuteElement=null;
+	this.secondElement=null;
+	this.amPmElement=null;
+
+	this.hourUpElement=null;
+	this.hourDownElement=null;
+	this.minuteUpElement=null;
+	this.minuteDownElement=null;
+	this.secondUpElement=null;
+	this.secondDownElement=null;
+	this.amPmUpElement=null;
+	this.amPmDownElement=null;
+
+	//	values
+	this.is24HourClock=false;
+	this.isPm=false;
+	this.date=null;
+
+	//	options
+	this.displayHours=true;
+	this.displayMinutes=true;
+	this.displaySeconds=false;
+
+	this.adjustHoursBy=1;
+	this.adjustMinutesBy=15;
+	this.adjustSecondsBy=15;
+};
+dojo.inherits(tapestry.widget.TimePicker, dojo.widget.HtmlWidget);
+
+dojo.lang.extend(tapestry.widget.TimePicker, {
+	
+	templatePath:null,
+	templateCssPath:null,
+	imagePath:dojo.uri.dojoUri("../tapestry/widget/templates/images/"),
+	
+	getValue:function(){
+		return this.date;
+	},
+	
+	setValue:function(date){
+		if (dojo.lang.isString(date)) { this.date=new Date(date); }
+		else { this.date=date; }
+		
+		this.isPm=this.date.getHours()>=12;
+	},
+	parseValue:function(str){
+		var a=str.match(/\d{1,2}/g);
+		var t=str.match(/(am|pm|a|p)/ig);
+		if(a){
+			var d=new Date();
+			var h=a[0];
+			var m=a[1]?a[1]:0;
+			if(t) t=String(t[0]);
+			if(t&&t.charAt(0).toLowerCase()=="p") h=h%12+12;
+			d.setHours(h);
+			d.setMinutes(m);
+			setValue(d);
+		}
+	},
+
+	adjust:function(){
+		//	set up for set value.
+		var h=this.date.getHours();
+		if(!this.is24HourClock&&this.isPm&&h<12){
+			h+=12;
+		}
+		this.date.setHours(h);
+		this.setValue(this.date);
+
+		var h=this.date.getHours();
+		var m=""+this.date.getMinutes();
+		var s=""+this.date.getSeconds();
+		this.isPm=h>=12?true:false;	//	isPm
+
+		if(h==0) h=24;
+		if(h>12) h-=12;
+		if(m.length==1) m="0"+m;
+		if(s.length==1) s="0"+s;
+
+		this.hourElement.value=h;
+		this.minuteElement.value=m;
+		if (this.secondElement) this.secondElement.value=s;
+		if (!this.is24HourClock){
+			if(this.amPmElement) this.amPmElement.innerHTML=((this.isPm)?"pm":"am");
+		}
+
+	},
+
+	//	event handlers
+	adjustHours:function(e){
+		if(e.target==this.hourUpElement){
+			this.date.setHours(this.date.getHours()+parseInt(this.adjustHoursBy));
+		}
+		if(e.target==this.hourDownElement){
+			this.date.setHours(this.date.getHours()-parseInt(this.adjustHoursBy));
+		}
+		if(e.target==this.hourElement){
+			this.date.setHours(parseInt(this.hourElement.value));
+		}
+		this.adjust();
+	},
+	adjustMinutes:function(e){
+		if(e.target==this.minuteUpElement){
+			this.date.setMinutes(this.date.getMinutes()+parseInt(this.adjustMinutesBy));
+		}
+		if(e.target==this.minuteDownElement){
+			this.date.setMinutes(this.date.getMinutes()-parseInt(this.adjustMinutesBy));
+		}
+		if(e.target==this.minuteElement){
+			this.date.setMinutes(parseInt(this.minuteElement.value));
+		}
+		this.adjust();
+	},
+	adjustSeconds:function(e){
+		if(e.target==this.secondUpElement){
+			this.date.setSeconds(this.date.getSeconds()+parseInt(this.adjustSecondsBy));
+		}
+		if(e.target==this.secondDownElement){
+			this.date.setSeconds(this.date.getSeconds()-parseInt(this.adjustSecondsBy));
+		}
+		if(e.target==this.minuteElement){
+			this.date.setSeconds(parseInt(this.secondElement.value));
+		}
+		this.adjust();
+	},
+	adjustAmPm:function(e){
+		this.isPm=!this.isPm;
+		if(this.date.getHours()>12) this.date.setHours(this.date.getHours()-12);
+		this.adjust();
+	},
+
+	postCreate:function(args){
+		//	make sure any attributes are the right type.
+		this.is24HourClock=Boolean(this.is24HourClock);
+		if (args.date) { this.date = new Date(args.date); }
+		else { this.date = new Date(); }
+		this.isPm=Boolean(this.isPm);
+		
+		//	options
+		this.displayHours=Boolean(this.displayHours);
+		this.displayMinutes=Boolean(this.displayMinutes);
+		this.displaySeconds=Boolean(this.displaySeconds);
+
+		this.adjustHoursBy=parseInt(this.adjustHoursBy);
+		this.adjustMinutesBy=parseInt(this.adjustMinutesBy);
+		this.adjustSecondsBy=parseInt(this.adjustSecondsBy);
+	
+		//	from here we build.
+		this.hourElement=document.createElement("input");
+		this.hourElement.style.width="20px";
+		this.hourElement.style.textAlign="right";
+		dojo.event.connect(this.hourElement, "onchange", this, "adjustHours");
+
+		this.minuteElement=document.createElement("input");
+		this.minuteElement.style.width="20px";
+		this.minuteElement.style.textAlign="right";
+		dojo.event.connect(this.minuteElement, "onchange", this, "adjustMinutes");
+		
+		if (this.displaySeconds){
+			this.secondElement=document.createElement("input");
+			this.secondElement.style.width="20px";
+			this.secondElement.style.textAlign="right";
+			dojo.event.connect(this.secondElement, "onchange", this, "adjustSeconds");
+		}
+		
+		if (!this.is24HourClock){
+			this.amPmElement=document.createElement("span");
+			this.amPmElement.style.width="24px";
+		}
+		
+		this.adjust();
+
+		var container=document.createElement("table");
+		container.setAttribute("cellpadding","0");
+		container.setAttribute("cellspacing","0");
+		container.setAttribute("border","0");
+
+		var row=document.createElement("tr");
+		container.appendChild(row);
+
+		var cell=document.createElement("td");
+		cell.setAttribute("rowspan","2");
+		cell.style.padding="0";
+		cell.appendChild(this.hourElement);
+		row.appendChild(cell);
+
+		cell=document.createElement("td");
+		cell.setAttribute("width","12");
+		cell.style.padding="0";
+		this.hourUpElement=document.createElement("img");
+		this.hourUpElement.setAttribute("src", this.imagePath + "domain_up.gif");
+		this.hourUpElement.setAttribute("width","10");
+		this.hourUpElement.setAttribute("height","10");
+		cell.appendChild(this.hourUpElement);
+		dojo.event.connect(this.hourUpElement, "onclick", this, "adjustHours");
+		row.appendChild(cell);
+
+		cell=document.createElement("td");
+		cell.setAttribute("rowspan","2");
+		cell.style.padding="0";
+		cell.style.paddingLeft="2px";
+		cell.appendChild(this.minuteElement);
+		row.appendChild(cell);
+
+		cell=document.createElement("td");
+		cell.setAttribute("width","12");
+		cell.style.padding="0";
+		this.minuteUpElement=document.createElement("img");
+		this.minuteUpElement.setAttribute("src", this.imagePath + "domain_up.gif");
+		this.minuteUpElement.setAttribute("width","10");
+		this.minuteUpElement.setAttribute("height","10");
+		cell.appendChild(this.minuteUpElement);
+		dojo.event.connect(this.minuteUpElement, "onclick", this, "adjustMinutes");
+		row.appendChild(cell);
+
+		if (this.displaySeconds){
+			cell=document.createElement("td");
+			cell.style.padding="0";
+			cell.setAttribute("rowspan","2");
+			cell.appendChild(this.secondElement);
+			cell.style.paddingLeft="2px";
+			row.appendChild(cell);
+
+			cell=document.createElement("td");
+			cell.setAttribute("width","12");
+			cell.style.padding="0";
+			this.secondUpElement=document.createElement("img");
+			this.secondUpElement.setAttribute("src", this.imagePath + "domain_up.gif");
+			this.secondUpElement.setAttribute("width","10");
+			this.secondUpElement.setAttribute("height","10");
+			cell.appendChild(this.secondUpElement);
+			dojo.event.connect(this.secondUpElement, "onclick", this, "adjustSeconds");
+			row.appendChild(cell);
+		}
+
+		if (!this.is24HourClock){
+			cell=document.createElement("td");
+			cell.setAttribute("rowspan","2");
+			cell.setAttribute("valign","bottom");
+			cell.setAttribute("align","right");
+			cell.style.padding="0 2px";
+			cell.style.border="1px solid #ededde";
+			cell.appendChild(this.amPmElement);
+			row.appendChild(cell);
+
+			cell=document.createElement("td");
+			cell.setAttribute("width","12");
+			cell.style.padding="0";
+			this.amPmUpElement=document.createElement("img");
+			this.amPmUpElement.setAttribute("src", this.imagePath + "domain_up.gif");
+			this.amPmUpElement.setAttribute("width","10");
+			this.amPmUpElement.setAttribute("height","10");
+			cell.appendChild(this.amPmUpElement);
+			dojo.event.connect(this.amPmUpElement, "onclick", this, "adjustAmPm");
+			row.appendChild(cell);
+		}
+
+		row=document.createElement("tr");
+		container.appendChild(row);
+
+		cell=document.createElement("td");
+		cell.setAttribute("width","12");
+		cell.setAttribute("valign","bottom");
+		cell.style.padding="0";
+		this.hourDownElement=document.createElement("img");
+		this.hourDownElement.setAttribute("src", this.imagePath + "domain_down.gif");
+		this.hourDownElement.setAttribute("width","10");
+		this.hourDownElement.setAttribute("height","10");
+		cell.appendChild(this.hourDownElement);
+		dojo.event.connect(this.hourDownElement, "onclick", this, "adjustHours");
+		row.appendChild(cell);
+
+		cell=document.createElement("td");
+		cell.setAttribute("width","12");
+		cell.setAttribute("valign","bottom");
+		cell.style.padding="0";
+		this.minuteDownElement=document.createElement("img");
+		this.minuteDownElement.setAttribute("src", this.imagePath + "domain_down.gif");
+		this.minuteDownElement.setAttribute("width","10");
+		this.minuteDownElement.setAttribute("height","10");
+		cell.appendChild(this.minuteDownElement);
+		dojo.event.connect(this.minuteDownElement, "onclick", this, "adjustMinutes");
+		row.appendChild(cell);
+
+		if (this.displaySeconds){
+			cell=document.createElement("td");
+			cell.setAttribute("width","12");
+			cell.setAttribute("valign","bottom");
+			cell.style.padding="0";
+			this.secondDownElement=document.createElement("img");
+			this.secondDownElement.setAttribute("src", this.imagePath + "domain_down.gif");
+			this.secondDownElement.setAttribute("width","10");
+			this.secondDownElement.setAttribute("height","10");
+			cell.appendChild(this.secondDownElement);
+			dojo.event.connect(this.secondDownElement, "onclick", this, "adjustSeconds");
+			row.appendChild(cell);
+		}
+
+		if (!this.is24HourClock){
+			cell=document.createElement("td");
+			cell.setAttribute("width","12");
+			cell.setAttribute("valign","bottom");
+			cell.style.padding="0";
+			this.amPmDownElement=document.createElement("img");
+			this.amPmDownElement.setAttribute("src", this.imagePath + "domain_down.gif");
+			this.amPmDownElement.setAttribute("width","10");
+			this.amPmDownElement.setAttribute("height","10");
+			cell.appendChild(this.amPmDownElement);
+			dojo.event.connect(this.amPmDownElement, "onclick", this, "adjustAmPm");
+			row.appendChild(cell);
+		}
+
+		this.domNode.appendChild(container);
+	}
+});
+
+dojo.widget.tags.addParseTreeHandler("dojo:timepicker");

Propchange: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/TimePicker.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_down.gif
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_down.gif?rev=416971&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_down.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_up.gif
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_up.gif?rev=416971&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/framework/src/js/tapestry/widget/templates/images/domain_up.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: tapestry/tapestry4/trunk/framework/src/js/tests/test_debug.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tests/test_debug.js?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tests/test_debug.js (original)
+++ tapestry/tapestry4/trunk/framework/src/js/tests/test_debug.js Sat Jun 24 16:31:29 2006
@@ -20,10 +20,5 @@
 	dojo.log.debug("DEFINITELY SHOULDNT see this");
 	jum.assertEquals("logmsglength", currLength, dojo.logging.logQueueHandler.data.length);
 	
-	currLength = dojo.logging.logQueueHandler.data.length;
-	dojo.log.warn("Filtered warning");
-	dojo.log.err("Filtered error");
-	jum.assertEquals("logmsgfilteredlength", currLength + 2, dojo.logging.logQueueHandler.data.length);
-	
 	dojo.log.setLevel(dojo.log.getLevel("DEBUG"));
 }

Modified: tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDatePicker.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDatePicker.html?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDatePicker.html (original)
+++ tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDatePicker.html Sat Jun 24 16:31:29 2006
@@ -112,12 +112,13 @@
 
 </head>
 <script type="text/javascript">
-    dojo.require("tapestry.widget.DropDownDatePicker");
+	dojo.require("tapestry.widget.*");
+    dojo.require("tapestry.widget.DropdownTimePicker");
 </script>
 <body>
 
 <p>
-<div dojoType="DropDownDatePicker" subWidgetType="TDatePicker" widgetId="date1" ></div>
+<div dojoType="DropdownTimePicker" widgetId="date1" ></div>
 </p>
 
 </body>

Added: tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html?rev=416971&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html (added)
+++ tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html Sat Jun 24 16:31:29 2006
@@ -0,0 +1,125 @@
+<!--
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>DatePicker Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+
+<script type="text/javascript">
+var djConfig = {
+    isDebug: true
+};
+</script>
+<script type="text/javascript" src="../../dojo/dojo.js"></script>
+<script type="text/javascript" src="../../tapestry/core.js"></script>
+<style type="text/css">
+body { font-family : sans-serif; }
+
+.datePickerContainer {
+    margin:0.5em 2em 0.5em 0.8em;
+    width:10em;
+    float:left;
+}
+
+.previousMonth {
+    background-color:#f4f9ff;
+}
+
+.currentMonth {
+    background-color:#EAF1F8;
+}
+
+.nextMonth {
+    background-color:#f4f9ff;
+}
+
+.currentDate {
+    text-decoration:underline;
+    font-style:italic;
+}
+
+.selectedItem {
+    background-color:#D6AE33;
+    color:#ffffff;
+    border: 1px solid #8A5E21;
+}
+
+.calendarContainer {
+    width:100%;
+    border-collapse:collapse;
+    border-spacing:0;
+    border-bottom:1px solid #e6e6e6;
+}
+
+.calendarContainer thead{
+    background-color:#2A78B0;
+    border-bottom:1px solid #e6e6e6;
+    color:#fff;
+}
+
+.calendarContainer td {
+    font-size:12px !important;
+    padding:0.15em;
+    text-align:center;
+    cursor:pointer;cursor:hand;
+}
+
+.monthLabel {
+    font-size:15px !important;
+    font-weight:400;
+    margin:0;
+    text-align:center;
+}
+
+.monthLabel .month {
+    padding:0 0.4em 0 0.4em;
+}
+
+.yearLabel {
+    font-size:12px !important;
+    font-weight:400;
+    margin:0.25em 0 0 0;
+    text-align:right;
+    color:#a3a3a3;
+}
+
+.yearLabel .selectedYear {
+    color:#000;
+    padding:0 0.2em;
+}
+
+.nextYear, .previousYear {
+    cursor:pointer;cursor:hand;
+}
+
+.incrementControl {
+    cursor:pointer;cursor:hand;
+    width:1em;
+}
+
+.dropDownContainer {
+    display:none;
+    position:absolute;
+    width:12em;
+    background-color:#fff; 
+    border:1px solid #215E8A;
+    font-size:1.2em;
+}
+</style>
+
+</head>
+<script type="text/javascript">
+	dojo.require("tapestry.widget.*");
+    dojo.require("tapestry.widget.DropdownDateTimePicker");
+</script>
+<body>
+
+<p>
+<div dojoType="DropdownDateTimePicker" widgetId="date1" ></div>
+</p>
+
+</body>
+</html>
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_DropDownDateTimePicker.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html?rev=416971&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html (added)
+++ tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html Sat Jun 24 16:31:29 2006
@@ -0,0 +1,36 @@
+<!--
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>TimePicker Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+
+<script type="text/javascript">
+var djConfig = {
+    isDebug: true
+};
+</script>
+<script type="text/javascript" src="../../dojo/dojo.js"></script>
+<script type="text/javascript" src="../../tapestry/core.js"></script>
+
+</head>
+
+<body>
+<script type="text/javascript">
+    dojo.require("tapestry.widget.*");
+    dojo.require("tapestry.widget.TimePicker");
+    
+    dojo.addOnLoad(function() {
+    	
+    });
+</script>
+
+<p>
+<div dojoType="TimePicker" widgetId="picker" ></div>
+</p>
+
+</body>
+</html>
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/framework/src/js/tests/widget/test_TimePicker.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tapestry/tapestry4/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/pom.xml (original)
+++ tapestry/tapestry4/trunk/pom.xml Sat Jun 24 16:31:29 2006
@@ -9,7 +9,7 @@
     <description>Java Web Application Framework</description>
     <name>Tapestry</name>
     <inceptionYear>2006</inceptionYear>
-    <url>http://tapestry.apache.org/tapestry4</url>
+    <url>http://tapestry.apache.org/tapestry4.1/</url>
 
     <licenses>
         <license>
@@ -212,15 +212,15 @@
     <distributionManagement>
         <site>
             <id>tapestry</id>
-            <url>scp://minotaur.apache.org/www/tapestry.apache.org/tapestry4.1/</url>
+            <url>scp://apache.org/www/tapestry.apache.org/tapestry4.1/</url>
         </site>
         <repository>
             <id>tapestry-repo</id>
-            <url>scp://minotaur.apache.org/www/www.apache.org/dist/maven-repository</url>
+            <url>scp://apache.org/www/www.apache.org/dist/maven-repository</url>
         </repository>
         <snapshotRepository>
             <id>tapestry-snapshot-repo</id>
-            <url>scp://minotaur.apache.org/www/cvs.apache.org/maven-snapshot-repository</url>
+            <url>scp://apache.org/www/cvs.apache.org/maven-snapshot-repository</url>
         </snapshotRepository>
     </distributionManagement>
 

Modified: tapestry/tapestry4/trunk/portlet/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/portlet/pom.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/portlet/pom.xml (original)
+++ tapestry/tapestry4/trunk/portlet/pom.xml Sat Jun 24 16:31:29 2006
@@ -1,194 +1,175 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
+<?xml version="1.0"?><project>
+  <parent>
+    <artifactId>tapestry-project</artifactId>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>portlet</artifactId>
-    <packaging>jar</packaging>
     <version>4.1.0-SNAPSHOT</version>
-    <!-- This should change to tapestry-project -->
-    <parent>
-        <groupId>org.apache.tapestry</groupId>
-        <artifactId>tapestry-project</artifactId>
-        <version>4.1.0-SNAPSHOT</version>
-    </parent>
-    <name>Portlet</name>
-    <inceptionYear>2006</inceptionYear>
-    <dependencies>
-        <dependency>
-            <groupId>javax.portlet</groupId>
-            <artifactId>portlet-api</artifactId>
-            <version>1.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tapestry</groupId>
-            <artifactId>framework</artifactId>
-            <version>4.1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>hivemind</groupId>
-            <artifactId>hivemind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>hivemind</groupId>
-            <artifactId>hivemind-lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.9</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <sourceDirectory>src/java</sourceDirectory>
-        <resources>
-            <resource>
-                <directory>src/descriptor/META-INF</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <targetPath>META-INF</targetPath>
-            </resource>
-            <resource>
-                <directory>src/java</directory>
-                <includes>
-                    <include>**/*</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-
-        <testSourceDirectory>src/test</testSourceDirectory>
-        <testResources>
-            <testResource>
-                <directory>src/test</directory>
-                <includes>
-                    <include>**/*</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </testResource>
-            <testResource>
-                <directory>src/conf</directory>
-                <includes>
-                    <include>log4j.properties</include>
-                </includes>
-            </testResource>
-        </testResources>
-
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.2</version>
-                <configuration>
-                    <testSourceDirectory>src/test</testSourceDirectory>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-clover-plugin</artifactId>
-                <version>2.1</version>
-                <configuration>
-                    <licenseLocation>
-                        ${user.home}/.m2/repository/com/cenqua/clover/clover.license
-                    </licenseLocation>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>pre-site</phase>
-                        <goals>
-                            <goal>instrument</goal>
-                            <goal>aggregate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <reporting>
-        <outputDirectory>../target/site/portlet</outputDirectory>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>surefire-report-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <report>index</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <configuration>
-                    <linksource>true</linksource>
-                    <destDir>../target/site/portlet/apidocs</destDir>
-                    <tags>
-                        <tag>
-                            <name>todo</name>
-                            <!-- Should be a combinaison of the letters Xaoptcmf -->
-                            <placement>a</placement>
-                            <head>To do something:</head>
-                        </tag>
-                    </tags>
-                    <linksource>true</linksource>
-                    <links>
-                        <link>http://jakarta.apache.org/hivemind/hivemind/apidocs/</link>
-                        <link>http://java.sun.com/j2se/1.4.2/docs/api/</link>
-                        <link>http://java.sun.com/products/servlet/2.3/javadoc/</link>
-                        <link>http://jakarta.apache.org/commons/codec/api-release/</link>
-                        <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
-                        <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
-                        <link>http://www.ognl.org/2.6.9/Documentation/javadoc/</link>
-                    </links>
-                    <stylesheetfile>${basedir}/../src/site/resources/css/jdstyle.css</stylesheetfile>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <configuration>
-                    <configLocation>${basedir}/../tapestry-checkstyle.xml</configLocation>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-clover-plugin</artifactId>
-                <configuration>
-                    <licenseLocation>
-                        ${user.home}/.m2/repository/com/cenqua/clover/clover.license
-                    </licenseLocation>
-                </configuration>
-            </plugin>
-        </plugins>
-    </reporting>
-
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.tapestry</groupId>
+  <artifactId>tapestry-portlet</artifactId>
+  <name>Portlet</name>
+  <version>4.1.0-SNAPSHOT</version>
+  <inceptionYear>2006</inceptionYear>
+  <build>
+    <sourceDirectory>src/java</sourceDirectory>
+    <testSourceDirectory>src/test</testSourceDirectory>
+    <resources>
+      <resource>
+        <targetPath>META-INF</targetPath>
+        <directory>src/descriptor/META-INF</directory>
+        <includes>
+          <include>**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/java</directory>
+        <includes>
+          <include>**/*</include>
+        </includes>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </resource>
+    </resources>
+    <testResources>
+      <testResource>
+        <directory>src/test</directory>
+        <includes>
+          <include>**/*</include>
+        </includes>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </testResource>
+      <testResource>
+        <directory>src/conf</directory>
+        <includes>
+          <include>log4j.properties</include>
+        </includes>
+      </testResource>
+    </testResources>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.2</version>
+        <configuration>
+          <testSourceDirectory>src/test</testSourceDirectory>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clover-plugin</artifactId>
+        <version>2.1</version>
+        <executions>
+          <execution>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>instrument</goal>
+              <goal>aggregate</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <licenseLocation>${user.home}/.m2/repository/com/cenqua/clover/clover.license</licenseLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.tapestry</groupId>
+      <artifactId>tapestry-framework</artifactId>
+      <version>4.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>hivemind</groupId>
+      <artifactId>hivemind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>hivemind</groupId>
+      <artifactId>hivemind-lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.easymock</groupId>
+      <artifactId>easymock</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.easymock</groupId>
+      <artifactId>easymockclassextension</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.9</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>portlet-api</groupId>
+      <artifactId>portlet-api</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+  <reporting>
+    <outputDirectory>../target/site/portlet</outputDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>surefire-report-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>dependencies</report>
+              <report>index</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <linksource>true</linksource>
+          <destDir>../target/site/portlet/apidocs</destDir>
+          <tags>
+            <tag>
+              <name>todo</name>
+              <placement>a</placement>
+              <head>To do something:</head>
+            </tag>
+          </tags>
+          <linksource>true</linksource>
+          <links>
+            <link>http://jakarta.apache.org/hivemind/hivemind/apidocs/</link>
+            <link>http://java.sun.com/j2se/1.4.2/docs/api/</link>
+            <link>http://java.sun.com/products/servlet/2.3/javadoc/</link>
+            <link>http://jakarta.apache.org/commons/codec/api-release/</link>
+            <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link>
+            <link>http://jakarta.apache.org/commons/logging/apidocs/</link>
+            <link>http://www.ognl.org/2.6.9/Documentation/javadoc/</link>
+          </links>
+          <stylesheetfile>${basedir}/../src/site/resources/css/jdstyle.css</stylesheetfile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <configuration>
+          <configLocation>${basedir}/../tapestry-checkstyle.xml</configLocation>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clover-plugin</artifactId>
+        <configuration>
+          <licenseLocation>${user.home}/.m2/repository/com/cenqua/clover/clover.license</licenseLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>

Modified: tapestry/tapestry4/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/apt/download.apt?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/apt/download.apt (original)
+++ tapestry/tapestry4/trunk/src/site/apt/download.apt Sat Jun 24 16:31:29 2006
@@ -30,12 +30,12 @@
 +---------------------------------------------------------
 <dependency>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>framework</artifactId>
+    <artifactId>tapestry-framework</artifactId>
     <version>4.1.0-SNAPSHOT</version>
 </dependency>
 <dependency>
     <groupId>org.apache.tapestry</groupId>
-    <artifactId>annotations</artifactId>
+    <artifactId>tapestry-annotations</artifactId>
     <version>4.1.0-SNAPSHOT</version>
 </dependency>
 +---------------------------------------------------------

Modified: tapestry/tapestry4/trunk/src/site/site.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/site.xml?rev=416971&r1=416970&r2=416971&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/site.xml (original)
+++ tapestry/tapestry4/trunk/src/site/site.xml Sat Jun 24 16:31:29 2006
@@ -22,8 +22,8 @@
     
     <body>
         <links>
-            <item name="Tapestry" href="http://tapestry.apache.org" />
-            <item name="Hivemind" href="http://jakarta.apache.org/hivemind" />
+            <item name="Tapestry" href="http://tapestry.apache.org/" />
+            <item name="Hivemind" href="http://jakarta.apache.org/hivemind/" />
             <item name="Apache" href="http://www.apache.org/" />
         </links>
         
@@ -42,4 +42,4 @@
         ${reports} 
     </body>
     
-</project>
\ No newline at end of file
+</project>