diff options
Diffstat (limited to 'install/ui/ipa.js')
-rw-r--r-- | install/ui/ipa.js | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js index 8f11b92d..13c894fa 100644 --- a/install/ui/ipa.js +++ b/install/ui/ipa.js @@ -131,31 +131,28 @@ var IPA = ( function () { }; that.get_entity = function(name) { - return that.entities.get(name); - }; - - that.add_entity = function(entity) { - that.entities.put(entity.name, entity); - }; - - that.remove_entity = function(name) { - that.entities.remove(name); - }; - - that.start_entities = function() { - var factory; - var name; - for (name in that.entity_factories) { - factory = that.entity_factories[name]; + var entity = that.entities.get(name); + if (!entity){ + var factory = that.entity_factories[name]; try { - var entity = factory(); + entity = factory(); that.add_entity(entity); entity.init(); } catch (e) { /*exceptions thrown by builder just mean that entities are not to be registered. */ + return null; } } + return entity; + }; + + that.add_entity = function(entity) { + that.entities.put(entity.name, entity); + }; + + that.remove_entity = function(name) { + that.entities.remove(name); }; that.test_dirty = function(){ |