var panel_hooks;
+// prevent a console.log from blowing things up if we are on a browser that
+// does not support it
+if (typeof console === 'undefined') {
+ window.console = {} ;
+ console.log = console.info = console.warn = console.error = function(){};
+}
+
+
(function(){
// Classes
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
this.render_template = function render_template(str, data){
// Figure out if we're getting a template, or if we need to
- // load the template - and be sure to cache the result.
+ // load the template - and be sure to cache the result.
var fn = !/^[\d\s-_]/.test(str) ?
cache[str] = cache[str] ||
render_template(document.getElementById(str).innerHTML) :
// Generate a reusable function that will serve as a template
// generator (and which will be cached).
+
new Function("obj",
"var p=[],print=function(){p.push.apply(p,arguments);};" +
// Introduce the data as local variables using with(){}
"with(obj){p.push('" +
- // Convert the template into pure JavaScript
+ // Convert the template into pure JavaScript
str
.replace(/[\r\t\n]/g, " ")
.split("<%").join("\t")
// 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;
},
this.removeObserver(observer, property)
}
} else {
+ // console.log('Remove observer', observer.description(), 'from', this.description(), '[', property, ']');
delete this._observers[property][observer.guid()];
}
return this;
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;
},
Editor.Object._lastGuid = 0;
-
var panels = [];