summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/prado
diff options
context:
space:
mode:
authorwei <>2006-06-17 10:28:26 +0000
committerwei <>2006-06-17 10:28:26 +0000
commit3a30ede1c03fdd097398b14734822f7ce8e46b6b (patch)
tree516537f9872da97f25a2187cf1880df65804014c /framework/Web/Javascripts/prado
parent649082a9eb89991189fafce8432c4fd266fac027 (diff)
Update TAutoComplete, OnSuggest event for getting suggestions.
Diffstat (limited to 'framework/Web/Javascripts/prado')
-rw-r--r--framework/Web/Javascripts/prado/activecontrols3.js65
-rw-r--r--framework/Web/Javascripts/prado/controls.js4
2 files changed, 48 insertions, 21 deletions
diff --git a/framework/Web/Javascripts/prado/activecontrols3.js b/framework/Web/Javascripts/prado/activecontrols3.js
index 6fbde405..c0964dcb 100644
--- a/framework/Web/Javascripts/prado/activecontrols3.js
+++ b/framework/Web/Javascripts/prado/activecontrols3.js
@@ -16,9 +16,29 @@ Prado.WebUI.CallbackControl = Class.extend(Prado.WebUI.PostBackControl,
Prado.WebUI.TActiveButton = Class.extend(Prado.WebUI.CallbackControl);
/**
+ * TActiveTextBox control, handles onchange event.
+ */
+Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,
+{
+ onInit : function(options)
+ {
+ if(options['TextMode'] != 'MultiLine')
+ Event.observe(this.element, "keydown", this.handleReturnKey.bind(this));
+ Event.observe(this.element, "change", this.doCallback.bindEvent(this,options));
+ },
+
+ doCallback : function(event, options)
+ {
+ new Prado.CallbackRequest(options.EventTarget, options);
+ Event.stop(event);
+ }
+});
+
+/**
* TAutoComplete control.
*/
-Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base,
+Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base, Prado.WebUI.TActiveTextBox.prototype);
+Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete,
{
initialize : function(options)
{
@@ -28,11 +48,34 @@ Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base,
{
onSuccess : this.onComplete.bind(this)
});
+
+ if(options.AutoPostBack)
+ this.onInit(options);
+ },
+
+ doCallback : function(event, options)
+ {
+ if(!this.active)
+ {
+ new Prado.CallbackRequest(options.EventTarget, options);
+ Event.stop(event);
+ }
+ },
+
+ //Overrides parent implementation, fires onchange event.
+ onClick: function(event)
+ {
+ var element = Event.findElement(event, 'LI');
+ this.index = element.autocompleteIndex;
+ this.selectEntry();
+ this.hide();
+ Event.fireEvent(this.element, "change");
},
getUpdatedChoices : function()
{
- Prado.Callback(this.options.EventTarget, this.getToken(), null, this.options);
+ options = new Array(this.getToken(),"__TAutComplete_onSuggest__");
+ Prado.Callback(this.options.EventTarget, options, null, this.options);
},
onComplete : function(request, boundary)
@@ -41,20 +84,4 @@ Prado.WebUI.TAutoComplete = Class.extend(Autocompleter.Base,
if(typeof(result) == "string" && result.length > 0)
this.updateChoices(result);
}
-});
-
-Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,
-{
- onInit : function(options)
- {
- if(options['TextMode'] != 'MultiLine')
- Event.observe(this.element, "keydown", this.handleReturnKey.bind(this));
- Event.observe(this.element, "change", this.doCallback.bindEvent(this,options));
- },
-
- doCallback : function(event, options)
- {
- new Prado.CallbackRequest(options.EventTarget, options);
- Event.stop(event);
- }
-});
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/prado/controls.js b/framework/Web/Javascripts/prado/controls.js
index 2497c586..285374a3 100644
--- a/framework/Web/Javascripts/prado/controls.js
+++ b/framework/Web/Javascripts/prado/controls.js
@@ -53,10 +53,10 @@ Prado.WebUI.PostBackControl.prototype =
this._elementOnClick = this.element.onclick;
this.element.onclick = null;
}
- Event.observe(this.element, "click", this.onClick.bindEvent(this,options));
+ Event.observe(this.element, "click", this.elementClicked.bindEvent(this,options));
},
- onClick : function(event, options)
+ elementClicked : function(event, options)
{
var src = Event.element(event);
var doPostBack = true;