this.documentElement = documentElement;
this.addWidget = function(widget) {
- documentElement.dom().children('.canvas-widgets').append(widget);
+ documentElement.dom().children('.canvas-widgets').append(widget.DOM ? widget.DOM : widget);
};
this.clearWidgets = function() {
documentElement.dom().children('.canvas-widgets').empty();
- }
+ };
this.setDisplayStyle = function(displayStyle) {
documentElement.dom().css('display', displayStyle || '');
this.toggle = function(toggle) {
documentElement._container().toggle(toggle);
- }
+ };
var eventBus = documentElement.canvas ? documentElement.canvas.eventBus :
{trigger: function() {}};
this.trigger = function() {
eventBus.trigger.apply(eventBus, arguments);
- }
+ };
+
+ this.node = documentElement.data('wlxmlNode');
-}
+};
var getDisplayStyle = function(tag, klass) {
- if(tag === 'metadata')
+ if(tag === 'metadata') {
return 'none';
- if(tag === 'span')
+ }
+ if(tag === 'span') {
return 'inline';
- if(klass === 'item')
+ }
+ if(klass && klass.substr(0, 4) === 'item') {
return null;
+ }
return 'block';
-}
+};
var GenericManager = function(wlxmlElement) {
this.el = wlxmlElement;
this.el.toggle(toggle);
}
-})
+});
var managers = {
_m: {},
set: function(tag, klass, manager) {
- if(!this._m[tag])
+ if(!this._m[tag]) {
this._m[tag] = {};
+ }
this._m[tag][klass] = manager;
},
get: function(tag,klass) {
- if(this._m[tag] && this._m[tag][klass])
+ if(this._m[tag] && this._m[tag][klass]) {
return this._m[tag][klass];
+ }
return GenericManager;
}
-}
+};
var FootnoteManager = function(wlxmlElement) {
this.el = wlxmlElement;
this.el.setDisplayStyle(toggle ? 'block' : 'inline');
this.el.toggle(toggle);
- if(!options.silent)
+ if(!options.silent) {
this.el.trigger('elementToggled', toggle, this.el.documentElement);
+ }
}
-})
+});
managers.set('aside', 'footnote', FootnoteManager);
});
managers.set('div', 'item', ListItemManager);
+
+var CommentManager = function(wlxmlElement) {
+ this.el = wlxmlElement;
+};
+
+$.extend(CommentManager.prototype, {
+ setup: function() {
+ this.el.clearWidgets();
+ this.el.addWidget(widgets.labelWidget(this.el.tag(), this.el.klass()));
+
+ this.widget = widgets.commentAdnotation(this.el.node);
+ this.el.addWidget(this.widget);
+ this.widget.DOM.show();
+ },
+ updateMetadata: function() {
+ // var parts = [];
+ // this.el.node.getMetadata().forEach(function(row) {
+ // parts.push(row.getValue());
+ // }, 'creator');
+ // this.widget.text(parts.join(', '));
+ this.widget.update(this.el.node);
+ }
+});
+managers.set('aside', 'comment', CommentManager);
+
return {
getFor: function(documentElement) {
var wlxmlElement = new DocumentElementWrapper(documentElement);