The actual 4.1.3 release version.
git-svn-id: https://svn.apache.org/repos/asf/tapestry/tapestry4/tags/4.1.3/tapestry@574990 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 6f82a8e..d6bba38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
<packaging>pom</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<description>Java Web Application Framework</description>
<name>Tapestry</name>
<inceptionYear>2006</inceptionYear>
@@ -170,7 +170,7 @@
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
- <version>2.7.1-SNAPSHOT</version>
+ <version>2.7.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
diff --git a/src/site/xdoc/components/dojo/dialog.xml b/src/site/xdoc/components/dojo/dialog.xml
index 6315aee..6e8e4df 100644
--- a/src/site/xdoc/components/dojo/dialog.xml
+++ b/src/site/xdoc/components/dojo/dialog.xml
@@ -95,6 +95,62 @@
valid values would range from <code>0.1 - 1</code>.
</td>
</tr>
+ <tr>
+ <td>followScroll</td>
+ <td>boolean</td>
+ <td>no</td>
+ <td>true</td>
+ <td>
+ Whether ot not the dialog should follow the scroll remaining centered on the browser viewport.
+ </td>
+ </tr>
+ <tr>
+ <td>closeOnBackgroundClick</td>
+ <td>boolean</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+ Whether ot not the dialog should close when clicking on the background.
+ </td>
+ </tr>
+ <tr>
+ <td>blockDuration</td>
+ <td>int</td>
+ <td>no</td>
+ <td>0</td>
+ <td>
+ Number of seconds for which the user cannot dismiss the dialog.
+ </td>
+ </tr>
+ <tr>
+ <td>lifeTime</td>
+ <td>int</td>
+ <td>no</td>
+ <td>0</td>
+ <td>
+ The number of seconds the dialog will be displayed before automatically disappearing.
+ </td>
+ </tr>
+ <tr>
+ <td>toggle</td>
+ <td>String</td>
+ <td>no</td>
+ <td>literal:fade</td>
+ <td>
+ The type of effect to be used on dialog show/hide. Possible values are:
+ <code>litera:plain</code>, <code>literal:wipe</code>, <code>literal:fade</code>, <code>literal:explode</code>
+ </td>
+ </tr>
+ <tr>
+ <td>toggleDuration</td>
+ <td>int</td>
+ <td>no</td>
+ <td>150</td>
+ <td>
+ Controls how opaque the background is. This parameter is given in the form of a percent, so
+ valid values would range from <code>0.1 - 1</code>.
+ </td>
+ </tr>
</table>
<p>
diff --git a/src/site/xdoc/release-notes.xml b/src/site/xdoc/release-notes.xml
index 9182d8f..1c22ca9 100644
--- a/src/site/xdoc/release-notes.xml
+++ b/src/site/xdoc/release-notes.xml
@@ -10,6 +10,102 @@
<section name="Tapestry 4 Releases">
+ <subsection name="Release Notes - Tapestry - Version 4.1.3">
+ <h2> Bug
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-340'>TAPESTRY-340</a>] - url-encoded parameters are not considered in multipart-requests
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-399'>TAPESTRY-399</a>] - If a RedirectException is thrown after IEngine.setLocale(...) has been called, the cookie org.apache.tapestry.locale is not being set
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1522'>TAPESTRY-1522</a>] - @EventListener is not been called if target ids contains _
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1527'>TAPESTRY-1527</a>] - @Dialog component triggers a lot a javascript errors on scroll after show/hide by EventListener
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1540'>TAPESTRY-1540</a>] - no response with dojo ajax responsebuilder
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1551'>TAPESTRY-1551</a>] - 404 in some dojo bundles
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1575'>TAPESTRY-1575</a>] - @EventListener doesn't work with multi-part forms
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1580'>TAPESTRY-1580</a>] - AJAX response to update a component doesn't include the updated component's root tag
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1616'>TAPESTRY-1616</a>] - Tap 4.1.2 PageNotFoundException not caught
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1622'>TAPESTRY-1622</a>] - IE 6 doesn't update a component, if its new content is empty.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1638'>TAPESTRY-1638</a>] - ImageSubmit doesn't trigger it's listener/action when called asynchronously
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1640'>TAPESTRY-1640</a>] - FieldLabel + IFormComponent update in ajax request fails because of prerender
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1651'>TAPESTRY-1651</a>] - ComponentSpecificationResolverImpl not checking app namespace
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1654'>TAPESTRY-1654</a>] - Contrib:Timeout caused TimeoutConfirm is not defined js error
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1660'>TAPESTRY-1660</a>] - inject script xml declaration forces context relative paths
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1663'>TAPESTRY-1663</a>] - @RadioGroup client-side validation does not work
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1680'>TAPESTRY-1680</a>] - Anchors are missing in usersguide/spec.html
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1681'>TAPESTRY-1681</a>] - Workbench pom.xml is buggy this patch fixes it
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1682'>TAPESTRY-1682</a>] - Parameters with defined with a default-value counted as "invariant"
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1685'>TAPESTRY-1685</a>] - Examples in documentation for @Script are incomplete
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1687'>TAPESTRY-1687</a>] - Autocompleter handles null values in a wrong way
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1701'>TAPESTRY-1701</a>] - Wrong link in Hidden component documentation
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1705'>TAPESTRY-1705</a>] - form focus errors out on ie if focusing on a dialog form before it is displayed
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1706'>TAPESTRY-1706</a>] - Rounded corner service fails with 0 byte image buffer.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1740'>TAPESTRY-1740</a>] - Error in documentation of Custom Exception Pages
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1744'>TAPESTRY-1744</a>] - tab doesn't close time list drop down on gtimepicker
+ </li>
+ </ul>
+
+ <h2> Improvement
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-400'>TAPESTRY-400</a>] - LinkSubmit and Rollover should be able to play together.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1448'>TAPESTRY-1448</a>] - Ability to set the default @Persist property persistence strategy
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1656'>TAPESTRY-1656</a>] - InlineEditBox needs a listener parameter
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1661'>TAPESTRY-1661</a>] - Specless component html template needs a package based resolution strategy
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1688'>TAPESTRY-1688</a>] - the tapestry form.js script has an unnecessary call to eval
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1693'>TAPESTRY-1693</a>] - exception pages documentation example wanted and minor mistakes
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1707'>TAPESTRY-1707</a>] - Note in rounded services documentation that tapestry-contrib must be installed.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1708'>TAPESTRY-1708</a>] - Document all rounded service parameters.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1729'>TAPESTRY-1729</a>] - Additional bindings for Dialog component
+ </li>
+ </ul>
+
+ <h2> New Feature
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-394'>TAPESTRY-394</a>] - Default for listener parameter of DirectLink, etc.
+ </li>
+ </ul>
+
+ <h2> Wish
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1202'>TAPESTRY-1202</a>] - EventListener - send custom data in the same way browser event data is sent
+ </li>
+ </ul>
+ </subsection>
+
<subsection name="Release Notes - Tapestry - Version 4.1.2">
<h2> Sub-task
</h2>
diff --git a/tapestry-annotations/pom.xml b/tapestry-annotations/pom.xml
index 028e9ee..ac83853 100644
--- a/tapestry-annotations/pom.xml
+++ b/tapestry-annotations/pom.xml
@@ -4,12 +4,12 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-annotations</artifactId>
<packaging>jar</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<!-- This should change to tapestry-project -->
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Annotations</name>
<inceptionYear>2006</inceptionYear>
@@ -18,7 +18,7 @@
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>hivemind</groupId>
diff --git a/tapestry-contrib/pom.xml b/tapestry-contrib/pom.xml
index 2543729..bbcf71f 100644
--- a/tapestry-contrib/pom.xml
+++ b/tapestry-contrib/pom.xml
@@ -5,12 +5,12 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-contrib</artifactId>
<packaging>jar</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Contrib</name>
<inceptionYear>2006</inceptionYear>
@@ -19,7 +19,7 @@
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>jboss</groupId>
diff --git a/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java b/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java
index 91d573c..c3f9d11 100644
--- a/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java
+++ b/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java
@@ -158,7 +158,7 @@
public void setDisplayName(String displayName)
{
if (displayName != null)
- displayName = displayName.replace(".", "_");
+ displayName = displayName.replace("_", ".");
m_strDisplayName = displayName;
}
@@ -225,7 +225,7 @@
*/
public void loadSettings(IComponent objSettingsContainer)
{
- String strDisplayName = objSettingsContainer.getMessages().getMessage(getColumnName());
+ String strDisplayName = objSettingsContainer.getMessages().getMessage(getDisplayName());
// Hack! the Messages inteface needs to restore the getMessage(key,
// default), or needs
diff --git a/tapestry-examples/TimeTracker/pom.xml b/tapestry-examples/TimeTracker/pom.xml
index f7043d8..ebdd47a 100644
--- a/tapestry-examples/TimeTracker/pom.xml
+++ b/tapestry-examples/TimeTracker/pom.xml
@@ -4,12 +4,12 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-TimeTracker</artifactId>
<packaging>war</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<!-- This should change to tapestry-project -->
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-examples</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Tapestry Time Tracker</name>
<inceptionYear>2006</inceptionYear>
@@ -18,17 +18,17 @@
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-annotations</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-contrib</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>hivemind</groupId>
diff --git a/tapestry-examples/Workbench/pom.xml b/tapestry-examples/Workbench/pom.xml
index 88dd493..2ac9427 100644
--- a/tapestry-examples/Workbench/pom.xml
+++ b/tapestry-examples/Workbench/pom.xml
@@ -4,13 +4,13 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-Workbench</artifactId>
<packaging>war</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<!-- This should change to tapestry-project -->
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-examples</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Tapestry Workbench</name>
diff --git a/tapestry-examples/pom.xml b/tapestry-examples/pom.xml
index 419e226..9f8549b 100644
--- a/tapestry-examples/pom.xml
+++ b/tapestry-examples/pom.xml
@@ -4,12 +4,12 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-examples</artifactId>
<packaging>pom</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<!-- This should change to tapestry-project -->
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Examples</name>
<inceptionYear>2006</inceptionYear>
@@ -24,17 +24,17 @@
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-annotations</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-contrib</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
</dependencies>
</dependencyManagement>
diff --git a/tapestry-framework/pom.xml b/tapestry-framework/pom.xml
index e7d7c36..a899aa1 100644
--- a/tapestry-framework/pom.xml
+++ b/tapestry-framework/pom.xml
@@ -4,12 +4,12 @@
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
<packaging>jar</packaging>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<!-- This should change to tapestry-project -->
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<name>Tapestry Core Library - ${version}</name>
<inceptionYear>2006</inceptionYear>
diff --git a/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.java b/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.java
index bcf018e..f6d6ee4 100644
--- a/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.java
+++ b/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.java
@@ -37,6 +37,18 @@
public abstract float getOpacity();
+ public abstract boolean getFollowScroll();
+
+ public abstract boolean getCloseOnBackgroundClick();
+
+ public abstract int getBlockDuration();
+
+ public abstract int getLifeTime();
+
+ public abstract String getToggle();
+
+ public abstract int getToggleDuration();
+
public void show()
{
setHidden(false);
@@ -69,6 +81,12 @@
JSONObject json = new JSONObject();
json.put("bgColor", getBackgroundColor());
json.put("bgOpacity", getOpacity());
+ json.put("followScroll", getFollowScroll());
+ json.put("closeOnBackgroundClick", getCloseOnBackgroundClick());
+ json.put("blockDuration", getBlockDuration());
+ json.put("lifeTime", getLifeTime());
+ json.put("toggle", getToggle());
+ json.put("toggleDuration", getToggleDuration());
Map parms = new HashMap();
parms.put("component", this);
@@ -77,7 +95,7 @@
getScript().execute(this, cycle, TapestryUtils.getPageRenderSupport(cycle, this), parms);
}
}
-
+
/** injected. */
public abstract IScript getScript();
}
diff --git a/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.jwc b/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.jwc
index 4b74cc1..e23117d 100644
--- a/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.jwc
+++ b/tapestry-framework/src/java/org/apache/tapestry/dojo/html/Dialog.jwc
@@ -31,7 +31,19 @@
<parameter name="backgroundColor" default-value="literal:black" />
<parameter name="opacity" default-value="0.4" />
+
+ <parameter name="followScroll" default-value="true" />
+
+ <parameter name="closeOnBackgroundClick" default-value="false" />
+ <parameter name="blockDuration" default-value="0" />
+
+ <parameter name="lifeTime" default-value="0" />
+
+ <parameter name="toggle" default-value="literal:fade" />
+
+ <parameter name="toggleDuration" default-value="150" />
+
<inject property="script" type="script" object="Dialog.script"/>
</component-specification>
diff --git a/tapestry-framework/src/js/tapestry/widget/TimePicker.js b/tapestry-framework/src/js/tapestry/widget/TimePicker.js
index 5c540d8..814b93f 100644
--- a/tapestry-framework/src/js/tapestry/widget/TimePicker.js
+++ b/tapestry-framework/src/js/tapestry/widget/TimePicker.js
@@ -6,6 +6,8 @@
dojo.require("dojo.html.metrics");
dojo.require("dojo.html.iframe");
+tapestry.widget.currentTimePicker=null;
+
dojo.widget.defineWidget(
"tapestry.widget.TimePicker",
dojo.widget.HtmlWidget,
@@ -19,6 +21,7 @@
inputNode:null, // form input text node
selectedNode:null, // currently selected node
+ hoveredNode:null, // current node being hovered over with mouse - ie has background color changed
dropdownNode:null, // drop down div container
bgIframe:null,
options:[], // option div nodes
@@ -80,7 +83,9 @@
dojo.event.connect(this.inputNode, "onclick", this, "onInputClick");
dojo.event.connect(this.inputNode, "onblur", this, "onInputBlur");
-
+ dojo.event.connect(this.inputNode, "onkeyup", this, "onInputKeyUp");
+ dojo.event.connect(this.inputNode, "onkeydown", this, "onInputKeyDown");
+
dojo.event.connect(this.dropdownNode, "onmouseover", this, "onDropdownMouseOver");
dojo.event.connect(this.dropdownNode, "onmouseout", this, "onDropdownMouseOut");
@@ -88,14 +93,11 @@
},
onOptionMouseOver: function(evt) {
- this.preventBlur=true;
- if (!dojo.html.hasClass(evt.target, this.optionHoverClass)) {
- dojo.html.addClass(evt.target, this.optionHoverClass);
- }
+ this._selectOption(evt.target);
},
onOptionMouseOut: function(evt) {
- dojo.html.removeClass(evt.target, this.optionHoverClass);
+ this._clearOptionSelection(evt.target);
},
onChange:function() {},
@@ -116,12 +118,10 @@
return;
}
- this.hasFocus=true;
- this.preventBlur=true;
this.show();
if (this.selectedNode){
- dojo.html.scrollIntoView(this.selectedNode);
+ this.selectedNode.scrollIntoView(true);
}
},
@@ -139,6 +139,7 @@
},
onDropdownMouseOut: function(evt) {
+ if (!this.showing){return;}
this.preventBlur=false;
if (this.isWidgetNode(evt["relatedTarget"])){
@@ -155,7 +156,31 @@
}
},
- hide: function(evt) {
+ onInputKeyUp: function(evt) {
+ switch(evt.keyCode){
+ case evt.KEY_TAB:
+ this.show();
+ break;
+ /* case evt.KEY_UP_ARROW:
+ this.inputNode.focus();
+ this._selectPreviousOption();
+ break;
+ case evt.KEY_DOWN_ARROW:
+ this.inputNode.focus();
+ this._selectNextOption();
+ break;
+ */
+ }
+ },
+
+ onInputKeyDown: function(evt) {
+ switch(evt.keyCode){
+ case evt.KEY_TAB:
+ if (this.showing){this.hide();}
+ }
+ },
+
+ hide: function() {
dojo.html.hide(this.dropdownNode);
if (this.bgIframe){
@@ -165,9 +190,15 @@
this.hasFocus=false;
this.preventBlur=false;
this.showing=false;
+ this.hoveredNode=null;
},
- show: function(evt) {
+ show: function() {
+
+ if (tapestry.widget.currentTimePicker &&
+ tapestry.widget.currentTimePicker != this){
+ tapestry.widget.currentTimePicker.hide();
+ }
var oldDisplay = this.inputNode.style.display;
var mb = dojo.html.getElementBox(this.inputNode, dojo.html.boxSizing.BORDER_BOX);
@@ -195,7 +226,7 @@
this.dropdownNode.style["top"]=ddY+'px';
this.dropdownNode.style["left"]=ddX+'px';
-
+
dojo.html.show(this.dropdownNode);
if (this.bgIframe){
@@ -204,6 +235,13 @@
}
this.showing=true;
+ this.hasFocus=true;
+ this.preventBlur=true;
+ tapestry.widget.currentTimePicker=this;
+ },
+
+ getValue:function(){
+ return this.inputNode.value;
},
isWidgetNode: function(node){
@@ -219,6 +257,8 @@
dojo.event.disconnect(this.inputNode, "onclick", this, "onInputClick");
dojo.event.disconnect(this.inputNode, "onblur", this, "onInputBlur");
+ dojo.event.disconnect(this.inputNode, "onkeyup", this, "onInputKeyUp");
+ dojo.event.disconnect(this.inputNode, "onkeydown", this, "onInputKeyDown");
dojo.event.browser.clean(this.inputNode);
dojo.event.disconnect(this.dropdownNode, "onmouseover", this, "onDropdownMouseOver");
@@ -235,8 +275,47 @@
} catch (e) { }
},
- getValue:function(){
- return this.inputNode.value;
+ _selectOption:function(node){
+ if (!node) { return; }
+
+ this.preventBlur=true;
+ if (!dojo.html.hasClass(node, this.optionHoverClass)) {
+ dojo.html.addClass(node, this.optionHoverClass);
+ }
+
+ this.hoveredNode=node;
+ },
+
+ _clearOptionSelection:function(node){
+ dojo.html.removeClass(node, this.optionHoverClass);
+ },
+
+ _selectPreviousOption:function(){
+ var prevNode;
+ if (!this.hoveredNode){
+ this.hoveredNode=this.options[0];
+ prevNode = this.hoveredNode;
+ } else {
+ prevNode = this.hoveredNode.previousSibling;
+ }
+
+ prevNode.scrollIntoView(true);
+ this._clearOptionSelection(this.hoveredNode);
+ this._selectOption(prevNode);
+ },
+
+ _selectNextOption:function() {
+ var nextNode;
+ if (!this.hoveredNode){
+ this.hoveredNode=this.options[0];
+ nextNode = this.hoveredNode;
+ } else {
+ nextNode = this.hoveredNode.nextSibling;
+ }
+
+ nextNode.scrollIntoView(true);
+ this._clearOptionSelection(this.hoveredNode);
+ this._selectOption(nextNode);
}
}
);
diff --git a/tapestry-framework/src/js/tests/widget/test_TimePicker.html b/tapestry-framework/src/js/tests/widget/test_TimePicker.html
index a77daca..7e14eda 100644
--- a/tapestry-framework/src/js/tests/widget/test_TimePicker.html
+++ b/tapestry-framework/src/js/tests/widget/test_TimePicker.html
@@ -74,7 +74,7 @@
}
.optionHover {
- background: cornflowerblue;
+ background-color: cornflowerblue;
color: #ffffff;
}
</style>
diff --git a/tapestry-portlet/pom.xml b/tapestry-portlet/pom.xml
index ce96123..19913f0 100644
--- a/tapestry-portlet/pom.xml
+++ b/tapestry-portlet/pom.xml
@@ -3,21 +3,21 @@
<parent>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-project</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-portlet</artifactId>
<name>Portlet</name>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
<inceptionYear>2006</inceptionYear>
<dependencies>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-framework</artifactId>
- <version>4.1.3-SNAPSHOT</version>
+ <version>4.1.3</version>
</dependency>
<dependency>
<groupId>hivemind</groupId>