|
|
- var util = require('../../util');
- var Group = require('./Group');
-
- /**
- * @constructor BackgroundGroup
- * @param {Number | String} groupId
- * @param {Object} data
- * @param {ItemSet} itemSet
- */
- function BackgroundGroup (groupId, data, itemSet) {
- Group.call(this, groupId, data, itemSet);
-
- this.width = 0;
- this.height = 0;
- this.top = 0;
- this.left = 0;
- }
-
- BackgroundGroup.prototype = Object.create(Group.prototype);
-
- /**
- * Repaint this group
- * @param {{start: number, end: number}} range
- * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin
- * @param {boolean} [restack=false] Force restacking of all items
- * @return {boolean} Returns true if the group is resized
- */
- BackgroundGroup.prototype.redraw = function(range, margin, restack) {
- var resized = false;
-
- this.visibleItems = this._updateItemsInRange(this.orderedItems, this.visibleItems, range);
-
- // calculate actual size
- this.width = this.dom.background.offsetWidth;
-
- // apply new height (just always zero for BackgroundGroup
- this.dom.background.style.height = '0';
-
- // update vertical position of items after they are re-stacked and the height of the group is calculated
- for (var i = 0, ii = this.visibleItems.length; i < ii; i++) {
- var item = this.visibleItems[i];
- item.repositionY(margin);
- }
-
- return resized;
- };
-
- /**
- * Show this group: attach to the DOM
- */
- BackgroundGroup.prototype.show = function() {
- if (!this.dom.background.parentNode) {
- this.itemSet.dom.background.appendChild(this.dom.background);
- }
- };
-
- module.exports = BackgroundGroup;
|