hedera-web/js/sql/list.js

70 lines
1013 B
JavaScript
Raw Normal View History

2016-09-26 09:28:47 +00:00
2022-05-30 01:30:33 +00:00
var Object = require ('./object');
2016-09-26 09:28:47 +00:00
/**
* List of Sql.Object
2022-05-26 06:08:31 +00:00
*/
2022-05-30 01:30:33 +00:00
module.exports = new Class
({
2016-09-26 09:28:47 +00:00
Extends: Object
,objects: []
2022-05-30 01:30:33 +00:00
,add: function (object)
{
this.objects.push (object.ref ());
object.on ('changed', this._onObjectChange, this);
this._onObjectChange ();
}
2022-05-30 01:30:33 +00:00
,get: function (i)
{
return objects[i];
}
2022-05-30 01:30:33 +00:00
,getArray: function ()
{
return this.objects;
}
2022-05-30 01:30:33 +00:00
,remove: function (i)
{
this._unrefObject (this.objects.splice (i, 1));
this._onObjectChange ();
}
2022-05-30 01:30:33 +00:00
,_onObjectChange: function ()
{
this.emit ('changed');
}
2022-05-30 01:30:33 +00:00
,isReady: function ()
{
var o = this.objects;
if (o.length == 0)
return false;
for (var i = 0; i < o.length; i++)
2022-05-30 01:30:33 +00:00
if (!o[i].isReady ())
return false;
return true;
}
2022-05-30 01:30:33 +00:00
,_unrefObject: function (object)
{
object.disconnect ('changed', this._onObjectChange, this);
object.unref ();
}
2022-05-30 01:30:33 +00:00
,_destroy: function ()
{
for (var i = 0; i < this.objects.length; i++)
2022-05-30 01:30:33 +00:00
this._unrefObject (this.objects[i]);
2022-05-30 01:30:33 +00:00
this.parent ();
}
});