docs: function (idMap) {
                  if (this.idMap == idMap) {
                      // already the same id map (especially useful if both are null)
                      return;
                  }
                  // set child idMap to its parent value
                  this.idMap = idMap;
                  var id = this.id;
                  if (id && idMap) {
                      if (idMap[id]) {
                          this.$logError(this.SECTION_ALREADY_EXISTS, [this.tplCtxt.tplClasspath, id]);
                      } else {
                          idMap[id] = this;
                      }
                  }
                  var content = this._content;
                  var contentSize = content.length;
                  // add the ids found in this section to the parent map:
                  // and recursively call __updateIdMap
                  for (var i = 0; i < contentSize; i++) {
                      var elt = content[i];
                      if (elt._type == TYPE_SECTION) {
                          elt.__updateIdMap(idMap);
                      } else {
                          id = elt.id;
                          if (id && idMap) {
                              if (idMap[id]) {
                                  this.$logError(this.WIDGET_ID_NOT_UNIQUE, [this.tplCtxt.tplClasspath, id,
                                          elt.behavior.$class]);
                              } else {
                                  idMap[id] = elt;
                              }
                          }
                      }
                  }
              }