tinymce-editor/copy_this/modules/hdi/hdi-tinymce/tinymce/classes/ui/Layout.js
2013-07-25 23:50:43 +02:00

114 lignes
2.6 KiB
JavaScript
Fichiers exécutables

/**
* Layout.js
*
* Copyright, Moxiecode Systems AB
* Released under LGPL License.
*
* License: http://www.tinymce.com/license
* Contributing: http://www.tinymce.com/contributing
*/
/**
* Base layout manager class.
*
* @class tinymce.ui.Layout
*/
define("tinymce/ui/Layout", [
"tinymce/util/Class",
"tinymce/util/Tools"
], function(Class, Tools) {
"use strict";
return Class.extend({
Defaults: {
firstControlClass: 'first',
lastControlClass: 'last'
},
/**
* Constructs a layout instance with the specified settings.
*
* @constructor
* @param {Object} settings Name/value object with settings.
*/
init: function(settings) {
this.settings = Tools.extend({}, this.Defaults, settings);
},
/**
* This method gets invoked before the layout renders the controls.
*
* @method preRender
* @param {tinymce.ui.Container} container Container instance to preRender.
*/
preRender: function(container) {
container.addClass(this.settings.containerClass, 'body');
},
/**
* Applies layout classes to the container.
*
* @private
*/
applyClasses: function(container) {
var self = this, settings = self.settings, items, firstClass, lastClass;
items = container.items().filter(':visible');
firstClass = settings.firstControlClass;
lastClass = settings.lastControlClass;
items.each(function(item) {
item.removeClass(firstClass).removeClass(lastClass);
if (settings.controlClass) {
item.addClass(settings.controlClass);
}
});
items.eq(0).addClass(firstClass);
items.eq(-1).addClass(lastClass);
},
/**
* Renders the specified container and any layout specific HTML.
*
* @method renderHtml
* @param {tinymce.ui.Container} container Container to render HTML for.
*/
renderHtml: function(container) {
var self = this, settings = self.settings, items, html = '';
items = container.items();
items.eq(0).addClass(settings.firstControlClass);
items.eq(-1).addClass(settings.lastControlClass);
items.each(function(item) {
if (settings.controlClass) {
item.addClass(settings.controlClass);
}
html += item.renderHtml();
});
return html;
},
/**
* Recalculates the positions of the controls in the specified container.
*
* @method recalc
* @param {tinymce.ui.Container} container Container instance to recalc.
*/
recalc: function() {
},
/**
* This method gets invoked after the layout renders the controls.
*
* @method postRender
* @param {tinymce.ui.Container} container Container instance to postRender.
*/
postRender: function() {
}
});
});