a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
142 lines
5.2 KiB
JavaScript
142 lines
5.2 KiB
JavaScript
//-----------------------------------------------------------------------
|
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------
|
|
// MicrosoftAjaxTimer.js
|
|
// Sys.UI._Timer component
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
Sys.UI._Timer = function Sys$UI$_Timer(element) {
|
|
Sys.UI._Timer.initializeBase(this,[element]);
|
|
this._interval = 60000;
|
|
this._enabled = true;
|
|
this._postbackPending = false;
|
|
this._raiseTickDelegate = null;
|
|
this._endRequestHandlerDelegate = null;
|
|
this._timer = null;
|
|
this._pageRequestManager = null;
|
|
this._uniqueID = null;
|
|
}
|
|
|
|
function Sys$UI$_Timer$get_enabled() {
|
|
/// <value type="Boolean"></value>
|
|
if (arguments.length !== 0) throw Error.parameterCount();
|
|
return this._enabled;
|
|
}
|
|
function Sys$UI$_Timer$set_enabled(value) {
|
|
var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
|
|
if (e) throw e;
|
|
|
|
this._enabled = value;
|
|
}
|
|
function Sys$UI$_Timer$get_interval() {
|
|
/// <value type="Number"></value>
|
|
if (arguments.length !== 0) throw Error.parameterCount();
|
|
return this._interval;
|
|
}
|
|
function Sys$UI$_Timer$set_interval(value) {
|
|
var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
|
|
if (e) throw e;
|
|
|
|
this._interval = value;
|
|
}
|
|
function Sys$UI$_Timer$get_uniqueID(){
|
|
/// <value type="String"></value>
|
|
if (arguments.length !== 0) throw Error.parameterCount();
|
|
return this._uniqueID;
|
|
}
|
|
function Sys$UI$_Timer$set_uniqueID(value){
|
|
var e = Function._validateParams(arguments, [{name: "value", type: String}]);
|
|
if (e) throw e;
|
|
|
|
this._uniqueID = value;
|
|
}
|
|
function Sys$UI$_Timer$dispose(){
|
|
this._stopTimer();
|
|
if(this._pageRequestManager !== null){
|
|
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);
|
|
}
|
|
Sys.UI._Timer.callBaseMethod(this,"dispose");
|
|
}
|
|
function Sys$UI$_Timer$_doPostback(){
|
|
__doPostBack(this.get_uniqueID(),'');
|
|
}
|
|
function Sys$UI$_Timer$_handleEndRequest(sender, arg){
|
|
var dataItem = arg.get_dataItems()[this.get_id()];
|
|
if (dataItem){
|
|
this._update(dataItem[0],dataItem[1]);
|
|
}
|
|
|
|
if ((this._postbackPending === true) && (this._pageRequestManager !== null)&&(this._pageRequestManager.get_isInAsyncPostBack() === false)){
|
|
this._postbackPending = false;
|
|
this._doPostback();
|
|
}
|
|
|
|
}
|
|
function Sys$UI$_Timer$initialize(){
|
|
Sys.UI._Timer.callBaseMethod(this, 'initialize');
|
|
this._raiseTickDelegate = Function.createDelegate(this,this._raiseTick);
|
|
this._endRequestHandlerDelegate = Function.createDelegate(this,this._handleEndRequest);
|
|
if (Sys.WebForms && Sys.WebForms.PageRequestManager){
|
|
this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
|
|
}
|
|
if (this._pageRequestManager !== null ){
|
|
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);
|
|
}
|
|
if(this.get_enabled()) {
|
|
this._startTimer();
|
|
}
|
|
}
|
|
function Sys$UI$_Timer$_raiseTick() {
|
|
this._startTimer();
|
|
if ((this._pageRequestManager === null) || (!this._pageRequestManager.get_isInAsyncPostBack())){
|
|
this._doPostback();
|
|
this._postbackPending = false;
|
|
}
|
|
else {
|
|
this._postbackPending = true;
|
|
}
|
|
}
|
|
function Sys$UI$_Timer$_startTimer(){
|
|
this._timer = window.setTimeout(Function.createDelegate(this,this._raiseTick),this.get_interval());
|
|
}
|
|
function Sys$UI$_Timer$_stopTimer(){
|
|
if (this._timer !== null){
|
|
window.clearTimeout(this._timer);
|
|
this._timer = null;
|
|
}
|
|
}
|
|
function Sys$UI$_Timer$_update(enabled,interval) {
|
|
var stopped = !this.get_enabled();
|
|
var intervalChanged= (this.get_interval() !== interval);
|
|
if ((!stopped) && ((!enabled)||(intervalChanged))){
|
|
this._stopTimer();
|
|
stopped = true;
|
|
}
|
|
this.set_enabled(enabled);
|
|
this.set_interval(interval);
|
|
if ((this.get_enabled()) && (stopped)){
|
|
this._startTimer();
|
|
}
|
|
}
|
|
Sys.UI._Timer.prototype = {
|
|
get_enabled: Sys$UI$_Timer$get_enabled,
|
|
set_enabled: Sys$UI$_Timer$set_enabled,
|
|
get_interval: Sys$UI$_Timer$get_interval,
|
|
set_interval: Sys$UI$_Timer$set_interval,
|
|
get_uniqueID: Sys$UI$_Timer$get_uniqueID,
|
|
set_uniqueID: Sys$UI$_Timer$set_uniqueID,
|
|
dispose: Sys$UI$_Timer$dispose,
|
|
_doPostback: Sys$UI$_Timer$_doPostback,
|
|
_handleEndRequest: Sys$UI$_Timer$_handleEndRequest,
|
|
initialize: Sys$UI$_Timer$initialize,
|
|
_raiseTick: Sys$UI$_Timer$_raiseTick,
|
|
_startTimer: Sys$UI$_Timer$_startTimer,
|
|
_stopTimer: Sys$UI$_Timer$_stopTimer,
|
|
_update: Sys$UI$_Timer$_update
|
|
}
|
|
Sys.UI._Timer.registerClass('Sys.UI._Timer', Sys.UI.Control);
|
|
|
|
|
|
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
|