1 _kiwi
.model
.PluginManager
= Backbone
.Model
.extend({
2 initialize: function () {
3 this.$plugin_holder
= $('<div id="kiwi_plugins" style="display:none;"></div>')
4 .appendTo(_kiwi
.app
.view
.$el
);
6 this.loading_plugins
= 0;
7 this.loaded_plugins
= {};
10 // Load an applet within this panel
11 load: function (url
) {
14 if (this.loaded_plugins
[url
]) {
18 this.loading_plugins
++;
20 this.loaded_plugins
[url
] = $('<div></div>');
21 this.loaded_plugins
[url
].appendTo(this.$plugin_holder
)
22 .load(url
, _
.bind(that
.pluginLoaded
, that
));
26 unload: function (url
) {
27 if (!this.loaded_plugins
[url
]) {
31 this.loaded_plugins
[url
].remove();
32 delete this.loaded_plugins
[url
];
36 // Called after each plugin is loaded
37 pluginLoaded: function() {
38 this.loading_plugins
--;
40 if (this.loading_plugins
=== 0) {
41 this.trigger('loaded');