Browse Source

Add Frames class

pull/3563/head
Artur Arseniev 5 years ago
parent
commit
d7ed23c640
  1. 20
      src/canvas/model/Frames.js

20
src/canvas/model/Frames.js

@ -2,24 +2,22 @@ import { bindAll } from 'underscore';
import { Collection } from 'backbone';
import model from './Frame';
export default Collection.extend({
model,
export default class Frames extends Collection {
initialize(models, config = {}) {
bindAll(this, 'itemLoaded');
this.config = config;
this.on('reset', this.onReset);
this.on('remove', this.onRemove);
},
}
onReset(m, opts = {}) {
const prev = opts.previousModels || [];
prev.map(p => this.onRemove(p));
},
}
onRemove(removed) {
removed && removed.onRemove();
},
}
itemLoaded() {
this.loadedItems++;
@ -28,20 +26,22 @@ export default Collection.extend({
this.trigger('loaded:all');
this.listenToLoadItems(0);
}
},
}
listenToLoad() {
this.loadedItems = 0;
this.itemsToLoad = this.length;
this.listenToLoadItems(1);
},
}
listenToLoadItems(on) {
this.forEach(item => item[on ? 'on' : 'off']('loaded', this.itemLoaded));
},
}
add(m, o = {}) {
const { config } = this;
return Collection.prototype.add.call(this, m, { ...o, config });
}
});
}
Frames.prototype.model = model;

Loading…
Cancel
Save