X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/0214643f72c6aaa8e85eaba2ad27f2ca03ca6401..9aa850ad8fb519b03bb854f3b731af32e42c54fa:/fnpjs/layout.js

diff --git a/fnpjs/layout.js b/fnpjs/layout.js
index a7c27fe..05252fb 100644
--- a/fnpjs/layout.js
+++ b/fnpjs/layout.js
@@ -1,18 +1,37 @@
-define(['libs/jquery-1.9.1.min', 'libs/underscore-min'], function($ ,_) {
-    'use strict';
-      
-    var Layout = function(template) {
-        this.dom = $(_.template(template)());
-        
-    };
-    
-    Layout.prototype.setView = function(place, view) {
-        this.dom.find('[fnpjs-place=' + place + ']').append(view);
-    };
-    
-    Layout.prototype.getAsView = function() {
-        return this.dom
-    };
-    
-    return {Layout: Layout};
+define(['libs/jquery-1.9.1.min', 'libs/underscore-min'], function($ ,_) {
+    'use strict';
+      
+    var Layout = function(template) {
+        var layout = this;
+        this.dom = $(_.template(template)());
+        this.views = {};
+        
+        this.dom.onShow = function() {
+            _.values(layout.views).forEach(function(view) {
+                if(view.onShow)
+                    view.onShow();
+            });
+        };
+        this.dom.onHide = function() {
+            _.values(layout.views).forEach(function(view) {
+                if(view.onHide)
+                    view.onHide();
+            });
+        };
+        
+    };
+    
+    Layout.prototype.setView = function(place, view) {
+        this.dom.find('[fnpjs-place=' + place + ']').append(view);
+        this.views[place] = view;
+        if(this.dom.is(':visible') && view.onShow) {
+            view.onShow();
+        }
+    };
+    
+    Layout.prototype.getAsView = function() {
+        return this.dom;
+    };
+    
+    return {Layout: Layout};
 });
\ No newline at end of file