X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/6319abb90c8c46ec4223817f53b5cb1f357ada05..b6f093b37e3b4d72890f028f1d0d4285958c045e:/modules/documentCanvas/canvas/wlxmlManagers.js diff --git a/modules/documentCanvas/canvas/wlxmlManagers.js b/modules/documentCanvas/canvas/wlxmlManagers.js index 0a48fdc..0aa9575 100644 --- a/modules/documentCanvas/canvas/wlxmlManagers.js +++ b/modules/documentCanvas/canvas/wlxmlManagers.js @@ -8,6 +8,8 @@ define([ var DocumentElementWrapper = function(documentElement) { + this.documentElement = documentElement; + this.addWidget = function(widget) { documentElement.dom().find('.canvas-widgets').append(widget); }; @@ -17,8 +19,8 @@ var DocumentElementWrapper = function(documentElement) { } 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() { @@ -32,6 +34,13 @@ var DocumentElementWrapper = function(documentElement) { this.toggle = function(toggle) { documentElement._container().toggle(toggle); } + + var eventBus = documentElement.bound() ? documentElement.canvas.eventBus : + {trigger: function() {}}; + this.trigger = function() { + eventBus.trigger.apply(eventBus, arguments); + } + } var getDisplayStyle = function(tag, klass) { @@ -39,6 +48,8 @@ var getDisplayStyle = function(tag, klass) { return 'none'; if(tag === 'span') return 'inline'; + if(klass === 'item') + return null; return 'block'; } @@ -94,19 +105,37 @@ $.extend(FootnoteManager.prototype, { 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);