var DocumentElementWrapper = function(documentElement) {
+ this.documentElement = documentElement;
+
this.addWidget = function(widget) {
- documentElement.dom().find('.canvas-widgets').append(widget);
+ documentElement.dom().children('.canvas-widgets').append(widget);
};
this.clearWidgets = function() {
- documentElement.dom().find('.canvas-widgets').empty();
+ documentElement.dom().children('.canvas-widgets').empty();
}
this.setDisplayStyle = function(displayStyle) {
- documentElement.dom().css('display', displayStyle);
- documentElement._container().css('display', displayStyle);
+ documentElement.dom().css('display', displayStyle || '');
+ documentElement._container().css('display', displayStyle || '');
};
this.tag = function() {
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);
+ }
+
}
var getDisplayStyle = function(tag, klass) {
return 'none';
if(tag === 'span')
return 'inline';
+ if(klass === 'item')
+ return null;
return 'block';
}
this.hideButton = widgets.hideButton(closeHandler);
this.el.addWidget(this.hideButton);
- this.toggle(false);
+ this.toggle(false, {silent: true});
},
- toggle: function(toggle) {
+ toggle: function(toggle, options) {
+ options = options || {};
this.hideButton.toggle(toggle);
this.footnoteHandler.toggle(!toggle);
this.el.setDisplayStyle(toggle ? 'block' : 'inline');
this.el.toggle(toggle);
+ if(!options.silent)
+ this.el.trigger('elementToggled', toggle, this.el.documentElement);
}
})
managers.set('aside', 'footnote', FootnoteManager);
+var ListItemManager = function(wlxmlElement) {
+ this.el = wlxmlElement;
+};
+$.extend(ListItemManager.prototype, {
+ setup: function() {
+ this.el.clearWidgets();
+ this.el.addWidget(widgets.labelWidget(this.el.tag(), this.el.klass()));
+ this.el.documentElement._container().css({display: 'list-item'});
+ },
+ toggleBullet: function(toggle) {
+ this.el.documentElement._container().css({display : toggle ? 'list-item' : 'block'});
+ }
+});
+managers.set('div', 'item', ListItemManager);
+
return {
getFor: function(documentElement) {
var wlxmlElement = new DocumentElementWrapper(documentElement);