Comparing versions 3 and 4.

TabularListingInfotron

The TabularListing blueprint creates a table DOM element under the node of the infotron instance, and creates rows from the provided array on the "collection_in" input terminal. Whenever a row is clicked, the row is posted on the output terminal "clicked_row_out"

Demos that use it

  • map.html
  • multi_map.html


BLUEPRINT(
"~011DB4973313E34549A9FCE7499BBB6F81",
[
 ["collection_in", "onCollection", 10]
],
[
 "clicked_row_out"
],
function (Class)
{
  Class.prototype._onInit = function(props)
  {
    var self = this;

    function _onClick(e)
    {
      var t;
      e = e || __w.event;
      t = e.srcElement || e.target;
      self.postMessage("clicked_row_out", [t.cellIndex + 1, t.parentNode.eform]);
    }
    
    this._tbody = this.dom_node.getElementsByTagName("TBODY")[0];
    this._n_rows = this._tbody.getElementsByTagName("TR").length;
    this._n_cols = this._tbody.getElementsByTagName("TR")[0].getElementsByTagName("TD").length;
    
    this.dom_node.onclick = _onClick;
  };


    Class.prototype.onCollection = function(msg)
    {
        var i, n, row, col, ef;
        var thead = this.dom_node.getElementsByTagName("THEAD")[0];
        var keys = [];

        n = thead.getElementsByTagName("TH").length;

        for (i = 0; i < n; i ++) {
            keys[i] = thead.getElementsByTagName("TH")[i].getAttribute("key");
        }
    
    n = Math.max(msg.length, this._n_rows);
    

        for (i = 0; i < n; i ++) {
            row = this._tbody.getElementsByTagName("TR")[i];
        if (row) {
          ef = msg[i];
          
          if (ef) {
        if (row.eform) {
          for (key in ef) {
            row.eform[key] = ef[key];
          }
        } else {
          row.eform = ef;
        }
          }
          
          for (j = 0; j < this._n_cols; j ++) {
                col = row.getElementsByTagName("TD")[j];               
        
                if (ef && keys[j] && ef[keys[j]]) {
          col.innerHTML = ef[keys[j]];
                } else { // clone
          col.innerHTML = "";
                }
          }
        }
       }
    }

}, "Tabular View");

History Key

  • New content
  • Removed content

Recent Versions

Choose two versions to compare, or click the link to view it.

  1. 4. about 1 year by slim
  2. 3. about 1 year by slim
  3. 2. about 1 year by xexamedes
  4. 1. about 1 year by xexamedes