Author: abelevich
Date: 2010-10-27 08:23:39 -0400 (Wed, 27 Oct 2010)
New Revision: 19683
Modified:
trunk/ui/input/ui/pom.xml
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputBase.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.ecss
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
Log:
fix list behavior on blur event
Modified: trunk/ui/input/ui/pom.xml
===================================================================
--- trunk/ui/input/ui/pom.xml 2010-10-27 12:17:48 UTC (rev 19682)
+++ trunk/ui/input/ui/pom.xml 2010-10-27 12:23:39 UTC (rev 19683)
@@ -65,5 +65,11 @@
<groupId>org.richfaces.ui.core</groupId>
<artifactId>richfaces-ui-core-ui</artifactId>
</dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <version>1.2</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -55,6 +55,7 @@
this.element.bind(this.editEvent, $.proxy(this.__editHandler, this));
this.isSaved = false;
this.useDefaultLabel = false;
+ this.editState = false;
};
rf.ui.InputBase.extend(rf.ui.InplaceBase);
@@ -128,6 +129,7 @@
__show: function() {
this.scrollElements = rf.Event.bindScrollEventHandlers(this.id, this.__scrollHandler,
this);
this.onshow();
+ this.editState = true;
},
__hide: function() {
@@ -136,6 +138,7 @@
this.scrollElements = null;
}
this.onhide();
+ this.editState = false;
this.editContainer.addClass(this.noneCss);
},
@@ -148,6 +151,10 @@
this.cancel();
},
+ isEditState: function() {
+ return this.editState;
+ },
+
destroy: function () {
$super.destroy.call(this);
}
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -66,15 +66,18 @@
}
},
- __blurHandler: function(e) {
- if(!this.isValueSaved() && this.__isSaveOnBlur()) {
+ __handleBlur: function() {
+ if(!this.isValueSaved() && this.__isSaveOnBlur()) {
this.save();
} else {
this.__hide();
}
- return false;
- },
+ },
+ __blurHandler: function(e) {
+ this.__handleBlur();
+ },
+
__changeHandler: function(e) {
if(!this.isValueSaved()) {
this.save();
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -9,6 +9,8 @@
this.popupList = new rf.ui.PopupList(id+"List", this, mergedOptions);
this.items = mergedOptions.items;
this.selValueInput = $(document.getElementById(id+"selValue"));
+ this.list = $(document.getElementById(id+"List"));
+ this.list.bind("click", $.proxy(this.__onListClick, this));
this.openPopup = false;
}
@@ -125,15 +127,19 @@
}
$super.__keydownHandler.call(this,e);
-
},
__blurHandler: function(e) {
- var target = $(e.originalEvent.explicitOriginalTarget);
- if(!this.popupList.isPopupList(target)) {
- $super.__blurHandler.call(this,e);
- }
- return false;
+ if(this.isEditState()) {
+ this.timeoutId = window.setTimeout($.proxy(function(){
+ this.popupList.hide();
+ this.__handleBlur();
+ }, this), 200);
+ }
+ },
+
+ __onListClick: function(e) {
+ window.clearTimeout(this.timeoutId);
}
}
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputBase.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputBase.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputBase.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -25,7 +25,7 @@
this.id = id;
this.input = $(document.getElementById(id + "Input"));
this.attachToDom(id);
-
+
this.input.bind("keydown", $.proxy(this.__keydownHandler, this));
this.input.bind("blur", $.proxy(this.__blurHandler, this));
this.input.bind("change", $.proxy(this.__changeHandler, this));
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.ecss
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.ecss 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.ecss 2010-10-27
12:23:39 UTC (rev 19683)
@@ -30,7 +30,7 @@
input.rf-insp-inp[type="text"] {
background-color: '#{richSkin.controlBackgroundColor}';
- background-imaage:
url("#{resource['org.richfaces.renderkit.html.images.InputBackgroundImage']}");
+ background-image:
url("#{resource['org.richfaces.renderkit.html.images.InputBackgroundImage']}");
background-position:1px 1px;
background-repeat:no-repeat;
border: 0px;
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -40,6 +40,7 @@
}
this.popup.setPosition({id: this.attachTo}, {type: this.positionType , offset:
this.positionOffset}).show();
this.visible = true;
+ this.__onShow();
}
},
@@ -51,6 +52,7 @@
this.popup.detach().appendTo(this.parentElement);
this.parentElement = null;
}
+ this.__onHide();
}
},
@@ -66,6 +68,13 @@
},
__onClick: function(e) {
+ },
+
+ __onHide: function() {
+ },
+
+ __onShow: function() {
+
}
}
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2010-10-27
12:17:48 UTC (rev 19682)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2010-10-27
12:23:39 UTC (rev 19683)
@@ -125,10 +125,16 @@
if(mergedOptions.showControl) {
this.btn = $(document.getElementById(id+"Button"));
- this.btn.bind("click", $.proxy(this.__clickHandler, this));
+ this.btn.bind("click", $.proxy(this.__clickHandler, this));
+ this.btn.mousedown($.proxy(this, function(){
+ this.focusin = false;
+ }));
}
this.selectFirst = mergedOptions.selectFirst;
this.popupList = new rf.ui.SelectList((id+"List"), this,
mergedOptions);
+ this.listElem = $(document.getElementById(id+"List"));
+ this.listElem.bind("click", $.proxy(this.__onListClick, this));
+
var items = this.popupList.__getItems();
var enableManualInput = mergedOptions.enableManualInput;
@@ -169,13 +175,13 @@
name : "select",
__clickHandler: function(e) {
- e.preventDefault();
if(!this.popupList.isVisible()) {
this.popupList.show();
- this.__setInputFocus();
} else {
this.popupList.hide();
}
+ this.__setInputFocus();
+ window.clearTimeout(this.timeoutId);
},
__focusHandler: function(e) {
@@ -250,19 +256,24 @@
}
},
+ __handleBlur: function(e) {
+ var inputLabel = this.getValue();
+ if(!inputLabel || inputLabel == "") {
+ this.setValue(this.defaultLabel);
+ }
+ },
+
__blurHandler: function(e) {
- var target = $(e.originalEvent.explicitOriginalTarget);
- if(!this.popupList.isPopupList(target)) {
- var inputLabel = this.getValue();
- if(!inputLabel || inputLabel == "") {
- this.setValue(this.defaultLabel);
- }
- this.popupList.hide();
- return true;
- }
- return false;
+ this.timeoutId = window.setTimeout($.proxy(function(){
+ this.popupList.hide();
+ this.__handleBlur();
+ }, this), 200);
+ },
+
+ __onListClick: function(e) {
+ window.clearTimeout(this.timeoutId);
},
-
+
processItem: function(item) {
var key = $(item).attr("id");
var value = this.getItemValue(key);