You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2011/09/23 22:05:44 UTC
svn commit: r1174988 -
/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
Author: hlship
Date: Fri Sep 23 20:05:43 2011
New Revision: 1174988
URL: http://svn.apache.org/viewvc?rev=1174988&view=rev
Log:
TAP5-888: The Tapestry.ErrorPopup client-side class should create the div/span as needed (not at page initialization)
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js?rev=1174988&r1=1174987&r2=1174988&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js Fri Sep 23 20:05:43 2011
@@ -1319,6 +1319,15 @@ Tapestry.ErrorPopup = Class.create({
initialize : function(field) {
this.field = $(field);
+ // The UI elements (outerDiv and friends) are created by the first call to setMessage().
+ this.outerDiv = null;
+ },
+
+ /**
+ * Invoked once, from setMessage(), to create the outerDiv and innerSpan elements, as well as necessary listeners
+ * (to hide the popup if clicked), and reposition the popup as necessary when the window resizes.
+ */
+ createUI : function() {
this.innerSpan = new Element("span");
this.outerDiv = $(new Element("div", {
'id' : this.field.id + "_errorpopup",
@@ -1374,6 +1383,11 @@ Tapestry.ErrorPopup = Class.create({
},
showMessage : function(message) {
+
+ if (this.outerDiv == null) {
+ this.createUI();
+ }
+
this.stopAnimation();
this.innerSpan.update(message);
@@ -1427,7 +1441,7 @@ Tapestry.ErrorPopup = Class.create({
/** Used in IE to hide the field if not the focus field. */
hideIfNotFocused : function() {
- if (this.field != Tapestry.currentFocusField) {
+ if (this.outerDiv != null && this.field != Tapestry.currentFocusField) {
this.outerDiv.hide();
}
},
@@ -1441,7 +1455,7 @@ Tapestry.ErrorPopup = Class.create({
},
fadeOut : function() {
- if (this.animation)
+ if (this.animation || this.outerDiv == null)
return;
if (Prototype.Browser.IE) {
@@ -1468,7 +1482,7 @@ Tapestry.ErrorPopup = Class.create({
this.stopAnimation();
- this.outerDiv.hide();
+ this.outerDiv && this.outerDiv.hide();
}
});