X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/84196c824e6a337a58b9c0a00c124c5e629d02b4..b1de2ef622519ea790e89bc690f2c4d84e93adec:/modules/documentCanvas/canvas/wlxmlManagers.js diff --git a/modules/documentCanvas/canvas/wlxmlManagers.js b/modules/documentCanvas/canvas/wlxmlManagers.js index 75d8c67..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'; } @@ -53,7 +64,11 @@ $.extend(GenericManager.prototype, { this.el.clearWidgets(); this.el.addWidget(widgets.labelWidget(this.el.tag(), this.el.klass())); + }, + toggle: function(toggle) { + this.el.toggle(toggle); } + }) var managers = { @@ -78,31 +93,49 @@ $.extend(FootnoteManager.prototype, { this.el.clearWidgets(); var clickHandler = function() { - this._toggleFootnote(true); + this.toggle(true); }.bind(this); this.footnoteHandler = widgets.footnoteHandler(clickHandler); this.el.addWidget(this.footnoteHandler); var closeHandler = function() { - this._toggleFootnote(false); + this.toggle(false); }.bind(this); this.hideButton = widgets.hideButton(closeHandler); this.el.addWidget(this.hideButton); - this._toggleFootnote(false); + this.toggle(false, {silent: true}); }, - _toggleFootnote: 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);