- Replaced color picker form control with a more robust version.
This commit is contained in:
parent
6fe068e42d
commit
6e0470771e
1193 changed files with 342 additions and 223 deletions
94
www/extras/extjs/source/util/TaskMgr.js
vendored
Normal file
94
www/extras/extjs/source/util/TaskMgr.js
vendored
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* Ext JS Library 1.0.1
|
||||
* Copyright(c) 2006-2007, Ext JS, LLC.
|
||||
* licensing@extjs.com
|
||||
*
|
||||
* http://www.extjs.com/license
|
||||
*/
|
||||
|
||||
Ext.util.TaskRunner = function(interval){
|
||||
interval = interval || 10;
|
||||
var tasks = [], removeQueue = [];
|
||||
var id = 0;
|
||||
var running = false;
|
||||
|
||||
var stopThread = function(){
|
||||
running = false;
|
||||
clearInterval(id);
|
||||
id = 0;
|
||||
};
|
||||
|
||||
var startThread = function(){
|
||||
if(!running){
|
||||
running = true;
|
||||
id = setInterval(runTasks, interval);
|
||||
}
|
||||
};
|
||||
|
||||
var removeTask = function(task){
|
||||
removeQueue.push(task);
|
||||
if(task.onStop){
|
||||
task.onStop();
|
||||
}
|
||||
};
|
||||
|
||||
var runTasks = function(){
|
||||
if(removeQueue.length > 0){
|
||||
for(var i = 0, len = removeQueue.length; i < len; i++){
|
||||
tasks.remove(removeQueue[i]);
|
||||
}
|
||||
removeQueue = [];
|
||||
if(tasks.length < 1){
|
||||
stopThread();
|
||||
return;
|
||||
}
|
||||
}
|
||||
var now = new Date().getTime();
|
||||
for(var i = 0, len = tasks.length; i < len; ++i){
|
||||
var t = tasks[i];
|
||||
var itime = now - t.taskRunTime;
|
||||
if(t.interval <= itime){
|
||||
var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
|
||||
t.taskRunTime = now;
|
||||
if(rt === false || t.taskRunCount === t.repeat){
|
||||
removeTask(t);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(t.duration && t.duration <= (now - t.taskStartTime)){
|
||||
removeTask(t);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Queues a new task.
|
||||
* @param {Object} task
|
||||
*/
|
||||
this.start = function(task){
|
||||
tasks.push(task);
|
||||
task.taskStartTime = new Date().getTime();
|
||||
task.taskRunTime = 0;
|
||||
task.taskRunCount = 0;
|
||||
startThread();
|
||||
return task;
|
||||
};
|
||||
|
||||
this.stop = function(task){
|
||||
removeTask(task);
|
||||
return task;
|
||||
};
|
||||
|
||||
this.stopAll = function(){
|
||||
stopThread();
|
||||
for(var i = 0, len = tasks.length; i < len; i++){
|
||||
if(tasks[i].onStop){
|
||||
tasks[i].onStop();
|
||||
}
|
||||
}
|
||||
tasks = [];
|
||||
removeQueue = [];
|
||||
};
|
||||
};
|
||||
|
||||
Ext.TaskMgr = new Ext.util.TaskRunner();
|
||||
Loading…
Add table
Add a link
Reference in a new issue