1 /*globals Editor render_template*/
2 var View = Editor.Object.extend({
7 overlayClass: 'view-overlay',
10 init: function(element, model, template)
12 console.log("init for view");
13 this.element = $(element);
15 this.template = template || this.template;
17 if (this.template) this.render();
19 this._resizeHandler = this.resized.bind(this);
20 $(window).bind('resize', this._resizeHandler);
21 $(this.element).bind('resize', this._resizeHandler);
25 console.log('rendering:', this._className);
26 this.element.html(render_template(this.template, this));
30 return !!this.overlay;
33 freeze: function(message) {
34 this.overlay = this.overlay
35 || $('<div><div>' + message + '</div></div>')
36 .addClass(this.overlayClass)
39 width: this.element.width(),
40 height: this.element.height(),
41 top: this.element.position().top,
42 left: this.element.position().left,
43 'user-select': 'none',
44 '-webkit-user-select': 'none',
45 '-khtml-user-select': 'none',
46 '-moz-user-select': 'none',
49 .attr('unselectable', 'on')
50 .appendTo(this.element.parent());
52 this.overlay.children('div').css({
54 top: this.overlay.height() / 2 - 20
58 unfreeze: function() {
60 this.overlay.remove();
65 resized: function(event) {
69 width: this.element.width(),
70 height: this.element.height(),
71 top: this.element.position().top,
72 left: this.element.position().left
73 }).children('div').css({
75 top: this.overlay.height() / 2 - 20
81 $(window).unbind('resize', this._resizeHandler);
82 $(this.element).unbind('resize', this._resizeHandler);
84 this.element.contents().remove();