otsdaq_utilities  v2_05_02_indev
footer_manager.js
1 var FooterManager = function(table){
2  this.table = table;
3  this.active = false;
4  this.element = this.createElement(); //containing element
5  this.external = false;
6  this.links = [];
7 
8  this._initialize();
9 };
10 
11 FooterManager.prototype.createElement = function (){
12  var el = document.createElement("div");
13 
14  el.classList.add("tabulator-footer");
15 
16  return el;
17 };
18 
19 FooterManager.prototype._initialize = function(element){
20  if(this.table.options.footerElement){
21 
22  switch(typeof this.table.options.footerElement){
23  case "string":
24 
25  if(this.table.options.footerElement[0] === "<"){
26  this.element.innerHTML = this.table.options.footerElement;
27  }else{
28  this.external = true;
29  this.element = document.querySelector(this.table.options.footerElement);
30  }
31  break;
32  default:
33  this.element = this.table.options.footerElement;
34  break;
35  }
36 
37  }
38 };
39 
40 FooterManager.prototype.getElement = function(){
41  return this.element;
42 };
43 
44 
45 FooterManager.prototype.append = function(element, parent){
46  this.activate(parent);
47 
48  this.element.appendChild(element);
49  this.table.rowManager.adjustTableSize();
50 };
51 
52 FooterManager.prototype.prepend = function(element, parent){
53  this.activate(parent);
54 
55  this.element.insertBefore(element, this.element.firstChild);
56  this.table.rowManager.adjustTableSize();
57 };
58 
59 FooterManager.prototype.remove = function(element){
60  element.parentNode.removeChild(element);
61  this.deactivate();
62 };
63 
64 FooterManager.prototype.deactivate = function(force){
65  if(!this.element.firstChild || force){
66  if(!this.external){
67  this.element.parentNode.removeChild(this.element);
68  }
69  this.active = false;
70  }
71 
72  // this.table.rowManager.adjustTableSize();
73 };
74 
75 FooterManager.prototype.activate = function(parent){
76  if(!this.active){
77  this.active = true;
78  if(!this.external){
79  this.table.element.appendChild(this.getElement());
80  this.table.element.style.display = '';
81  }
82  }
83 
84  if(parent){
85  this.links.push(parent);
86  }
87 };
88 
89 FooterManager.prototype.redraw = function(){
90  this.links.forEach(function(link){
91  link.footerRedraw();
92  });
93 };