Merge branch 'zuber-view-refactor'
[redakcja.git] / project / static / js / app.js
index 7bf026b..e8875c9 100644 (file)
@@ -104,13 +104,24 @@ var Editor = Editor || {};
 
 // Obiekt implementujÄ…cy wzorzec KVC/KVO
 Editor.Object = Class.extend({
+  _className: 'Editor.Object',
   _observers: {},
+  _guid: null,
+  
+  init: function() {
+    this._observers = {};
+  },
+  
+  description: function() {
+    return this._className + '(guid = ' + this.guid() + ')';
+  },
   
   addObserver: function(observer, property, callback) {
+    // console.log('Add observer', observer.description(), 'to', this.description(), '[', property, ']');
     if (!this._observers[property]) {
       this._observers[property] = {}
     }
-    this._observers[property][this.guid()] = callback;
+    this._observers[property][observer.guid()] = callback;
     return this;
   },
   
@@ -120,6 +131,7 @@ Editor.Object = Class.extend({
         this.removeObserver(observer, property)
       }
     } else {
+      // console.log('Remove observer', observer.description(), 'from', this.description(), '[', property, ']');
       delete this._observers[property][observer.guid()];
     }
     return this;
@@ -128,7 +140,9 @@ Editor.Object = Class.extend({
   notifyObservers: function(property) {
     var currentValue = this[property];
     for (var guid in this._observers[property]) {
-      this._observers[property][guid](property, currentValue);
+      // console.log(this._observers[property][guid]);
+      // console.log('Notifying', guid, 'of', this.description(), '[', property, ']');
+      this._observers[property][guid](property, currentValue, this);
     }
     return this;
   },