summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/source/prado/controls/controls.js
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Web/Javascripts/source/prado/controls/controls.js')
-rw-r--r--framework/Web/Javascripts/source/prado/controls/controls.js106
1 files changed, 55 insertions, 51 deletions
diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js
index 8ea6afe3..d2e796e1 100644
--- a/framework/Web/Javascripts/source/prado/controls/controls.js
+++ b/framework/Web/Javascripts/source/prado/controls/controls.js
@@ -1,21 +1,21 @@
-Prado.WebUI = Class.create();
+Prado.WebUI = jQuery.klass();
-Prado.WebUI.Control = Class.create({
+Prado.WebUI.Control = jQuery.klass({
initialize : function(options)
{
this.registered = false;
this.ID = options.ID;
- this.element = $(this.ID);
+ this.element = jQuery("#" + this.ID).get(0);
this.observers = new Array();
this.intervals = new Array();
var e;
- if (e = Prado.Registry.get(this.ID))
- this.replace(e, options);
- else
+ if (jQuery.inArray(this.ID, Prado.Registry) == -1)
this.register(options);
+ else
+ this.replace(Prado.Registry[this.ID], options);
- if (this === Prado.Registry.get(this.ID))
+ if (this === Prado.Registry[this.ID])
{
this.registered = true;
if(this.onInit)
@@ -29,7 +29,7 @@ Prado.WebUI.Control = Class.create({
*/
register : function(options)
{
- return Prado.Registry.set(options.ID, this);
+ return Prado.Registry[options.ID] = this;
},
/**
@@ -38,8 +38,12 @@ Prado.WebUI.Control = Class.create({
deregister : function()
{
// extra check so we don't ever deregister another wrapper
- if (Prado.Registry.get(this.ID)===this)
- return Prado.Registry.unset(this.ID);
+ var value = Prado.Registry[this.ID];
+ if (value===this)
+ {
+ delete Prado.Registry[this.ID];
+ return value;
+ }
else
debugger; // invoke debugger - this should never happen
},
@@ -76,11 +80,11 @@ Prado.WebUI.Control = Class.create({
* @param string event name to observe
* @param handler event handler function
*/
- observe: function(element, eventName, handler)
+ observe: function(element, eventName, handler, options)
{
var e = { _element: element, _eventName: eventName, _handler: handler };
this.observers.push(e);
- return Event.observe(e._element,e._eventName,e._handler);
+ return jQuery(e._element).bind(e._eventName, options, e._handler);
},
/**
@@ -121,7 +125,7 @@ Prado.WebUI.Control = Class.create({
else
debugger; // shouldn't happen
- return Event.stopObserving(element,eventName,handler);
+ return jQuery(element).unbind(eventName, handler);
},
/**
@@ -133,7 +137,7 @@ Prado.WebUI.Control = Class.create({
*/
setTimeout: function(func, delay)
{
- if (!Object.isFunction(func))
+ if (!jQuery.isFunction(func))
{
var expr = func;
func = function() { return eval(expr); }
@@ -164,7 +168,7 @@ Prado.WebUI.Control = Class.create({
*/
setInterval: function(func, delay)
{
- if (!Object.isFunction(func)) func = function() { eval(func); };
+ if (!jQuery.isFunction(func)) func = function() { eval(func); };
var obj = this;
var h = window.setInterval(function() {
if (!obj.isLingering())
@@ -212,7 +216,7 @@ Prado.WebUI.Control = Class.create({
while (this.observers.length>0)
{
var e = this.observers.pop();
- Event.stopObserving(e._element,e._eventName,e._handler);
+ jQuery(e._element).unbind(e._eventName, e._handler);
}
}
else
@@ -225,7 +229,7 @@ Prado.WebUI.Control = Class.create({
});
-Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
+Prado.WebUI.PostBackControl = jQuery.klass(Prado.WebUI.Control, {
onInit : function(options)
{
@@ -241,13 +245,13 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
this._elementOnClick = this.element.onclick.bind(this.element);
this.element.onclick = null;
}
- this.observe(this.element, "click", this.elementClicked.bindEvent(this,options));
+ this.observe(this.element, "click", jQuery.proxy(this.elementClicked,this,options));
}
},
- elementClicked : function(event, options)
+ elementClicked : function(options, event)
{
- var src = Event.element(event);
+ var src = event.target;
var doPostBack = true;
var onclicked = null;
@@ -258,29 +262,29 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
doPostBack = onclicked;
}
if(doPostBack && !Prado.Element.isDisabled(src))
- this.onPostBack(event,options);
+ this.onPostBack(options,event);
if(typeof(onclicked) == "boolean" && !onclicked)
- Event.stop(event);
+ event.stopPropagation();
},
- onPostBack : function(event, options)
+ onPostBack : function(options, event)
{
- Prado.PostBack(event,options);
+ Prado.PostBack(options, event);
}
});
-Prado.WebUI.TButton = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TLinkButton = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TCheckBox = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TBulletedList = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TImageMap = Class.create(Prado.WebUI.PostBackControl);
+Prado.WebUI.TButton = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TLinkButton = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TCheckBox = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TBulletedList = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TImageMap = jQuery.klass(Prado.WebUI.PostBackControl);
/**
* TImageButton client-side behaviour. With validation, Firefox needs
* to capture the x,y point of the clicked image in hidden form fields.
*/
-Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
/**
* Override parent onPostBack function, tried to add hidden forms
@@ -346,11 +350,11 @@ Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,
/**
* Radio button, only initialize if not already checked.
*/
-Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TRadioButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
initialize : function($super, options)
{
- this.element = $(options['ID']);
+ this.element = $("#" + options['ID']).get(0);
if(this.element)
{
if(!this.element.checked)
@@ -360,7 +364,7 @@ Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl,
});
-Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TTextBox = jQuery.klass(Prado.WebUI.PostBackControl,
{
onInit : function(options)
{
@@ -368,27 +372,27 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
if(this.options['TextMode'] != 'MultiLine')
this.observe(this.element, "keydown", this.handleReturnKey.bind(this));
if(this.options['AutoPostBack']==true)
- this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options));
+ this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));
},
handleReturnKey : function(e)
{
- if(Event.keyCode(e) == Event.KEY_RETURN)
+ if(e.keyCode == 13) // KEY_RETURN
{
- var target = Event.element(e);
+ var target = e.target;
if(target)
{
if(this.options['AutoPostBack']==true)
{
- Event.fireEvent(target, "change");
- Event.stop(e);
+ $(target).trigger( "change" );
+ e.stopPropagation();
}
else
{
if(this.options['CausesValidation'] && typeof(Prado.Validation) != "undefined")
{
if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], $(this.options['ID'])))
- return Event.stop(e);
+ return e.stopPropagation();
}
}
}
@@ -396,23 +400,23 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
}
});
-Prado.WebUI.TListControl = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TListControl = jQuery.klass(Prado.WebUI.PostBackControl,
{
onInit : function(options)
{
- this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options));
+ this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));
}
});
-Prado.WebUI.TListBox = Class.create(Prado.WebUI.TListControl);
-Prado.WebUI.TDropDownList = Class.create(Prado.WebUI.TListControl);
+Prado.WebUI.TListBox = jQuery.klass(Prado.WebUI.TListControl);
+Prado.WebUI.TDropDownList = jQuery.klass(Prado.WebUI.TListControl);
-Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control,
+Prado.WebUI.DefaultButton = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
this.options = options;
- this.observe(options['Panel'], 'keydown', this.triggerEvent.bindEvent(this));
+ this.observe(options['Panel'], "keydown", jQuery.proxy(this.triggerEvent,this));
},
triggerEvent : function(ev, target)
@@ -435,7 +439,7 @@ Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control,
}
});
-Prado.WebUI.TTextHighlighter = Class.create();
+Prado.WebUI.TTextHighlighter = jQuery.klass();
Prado.WebUI.TTextHighlighter.prototype =
{
initialize:function(id)
@@ -453,7 +457,7 @@ Prado.WebUI.TTextHighlighter.prototype =
}
};
-Object.extend(Prado.WebUI.TTextHighlighter,
+jQuery.klass(Prado.WebUI.TTextHighlighter,
{
copy : function(obj)
{
@@ -483,14 +487,14 @@ Object.extend(Prado.WebUI.TTextHighlighter,
});
-Prado.WebUI.TCheckBoxList = Base.extend(
+Prado.WebUI.TCheckBoxList = jQuery.klass(Prado.WebUI.Control,
{
constructor : function(options)
{
Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var checkBoxOptions = Object.extend(
+ var checkBoxOptions = jQuery.extend(
{
ID : options.ListID+"_c"+i,
EventTarget : options.ListName+"$c"+i
@@ -500,14 +504,14 @@ Prado.WebUI.TCheckBoxList = Base.extend(
}
});
-Prado.WebUI.TRadioButtonList = Base.extend(
+Prado.WebUI.TRadioButtonList = jQuery.klass(Prado.WebUI.Control,
{
constructor : function(options)
{
Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var radioButtonOptions = Object.extend(
+ var radioButtonOptions = jQuery.extend(
{
ID : options.ListID+"_c"+i,
EventTarget : options.ListName+"$c"+i