⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 results.js

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JS
📖 第 1 页 / 共 2 页
字号:
      EsriUtils.setElementStyle(wrapEl, "height: 0px; width: 100%;");
      tbody.appendChild(wrapEl);
    }
    var divEl = document.createElement("div");
    
    if(node.label.indexOf("contentType=") == 0) {
      node.contentType = node.label.substring("contentType=".length, node.label.indexOf(";"));
      node.label = node.label.substring(node.label.indexOf(";") + 1, node.label.length);
    }
    
    if(node.label.indexOf("resultIds=") == 0) {
      node.resultIds = node.label.substring("resultIds=".length, node.label.indexOf(";"));
      node.label = node.label.substring(node.label.indexOf(";") + 1, node.label.length);
    }
    
    if(node.label.indexOf("resultId=") == 0) {
      divEl.id = node.resultId = node.label.substring("resultId=".length, node.label.indexOf(";"));
      node.label = node.label.substring(node.label.indexOf(";") + 1, node.label.length);
    }
    
    if (node.contentType) {
      var ct = node.contentType;
      if(ct == "LAYER") { 
        divEl.className = "layer";
        if(node.label.indexOf(";resultTemplate")!=-1) {
          resultTemplate = decodeURIComponent(node.label.substring(node.label.indexOf(";resultTemplate=")+";resultTemplate=".length,node.label.lastIndexOf(";")));
          resultTemplate = resultTemplate.trim();
          node.label = node.label.substring(0,node.label.indexOf(";resultTemplate="));
        }
        
      }
      else if(ct == "RESULT") { // needs highlighting

        divEl.className = "result";
        divEl.onmouseover = function(e){ highlightResultNode(divEl.id) };
        divEl.onmouseout = function(e){ unHighlightResultNode(divEl.id) };
        lastResultId = divEl.id;
      }
      else if(ct == "DETAIL") {
        divEl.className = "detail";
      }
      else {
        divEl.className = "root";
      }
    }

    if(node.isShowExpanded) {
      var toggle = document.createElement("div");
      toggle.id = self.toc.id + "_" + node.key + "_exp";
      toggle.className = node.isExpanded ? "expanded" : "collapsed";
      toggle.onclick = function() {
        isExpandCollapse=true;
        self.toc.nodeOperation(node.key, "expandCollapse");
        return false; 
      };

      divEl.appendChild(toggle);
    }
    else {
      var pad = document.createElement("div");
      pad.className = "togglepad"
      divEl.appendChild(pad);
    }    

    if(node.contentType && node.level == 3) {
      divEl.id = lastResultId + "_details";
      divEl.setAttribute("resultId", lastResultId);
      var details = document.createElement("div");
      details.setAttribute("resultId", lastResultId);      
      var pairs = node.label.split(";");
      var argList = [];
      for(var i = 0; i < pairs.length; i++) {
        var kv = pairs[i].split("|");
        argList[kv[0]]=kv[1];
      }
      if(resultTemplate!=null) {
        var detailsbody = document.createElement("div");
        detailsbody.setAttribute("resultId", lastResultId);
        details.appendChild(detailsbody);
        var template = {templateString:resultTemplate,startToken:"\\${",endToken:"}"};
        if(resultTemplate=="default") template=template.templateString;
        var resultDetail = map.mapTip.transform(argList,template);
        resultDetail.content = resultDetail.content.replace("/ /","");
        detailsbody.innerHTML = resultDetail.content;
      }
      
      divEl.onmouseover = function(e) {
        var src = EsriUtils.getEventSource(e);
        highlightResultNode(src.getAttribute("resultId"));
      }
     
      divEl.onmouseout = function(e) {
        var src = EsriUtils.getEventSource(e);
        unHighlightResultNode(src.getAttribute("resultId"));
      }
      divEl.appendChild(details);
    }
    else {
      if(node.isShowChecked) {
        var cb;
        cb = document.createElement("input");
        cb.id = "EsriTocNodeCheckbox_" + self.toc.id + "_" + node.key;
        cb.type = "checkbox";
        if(EsriUtils.isIE) cb.defaultChecked = cb.checked = setState(cb);
        else cb.checked = setState(cb);
        cb.className = "check";
        cb.disabled = node.isDisabled ? true: false;
        
        if(node.resultIds)
          cb.setAttribute("resultIds", node.resultIds);
        else
          cb.setAttribute("resultIds", divEl.id);
        cb.onclick = function(e) {
          //No need to send the server the request at all state maintained at the client for check Node operation
          var src = EsriUtils.getEventSource(e);
          //update the state in the array
          updateState(src);
          if(map.mapTip) {
            if(src.getAttribute("resultIds")){
              map.mapTip.toggleFeaturesByLevel(src.getAttribute("resultIds").split("|"), src.checked,getLevel(src.id));
            }
          }
        };
        divEl.appendChild(cb);
      }
      
      if(node.imgUrl) {
        var img = document.createElement("img");
        img.src = node.imageUrl;
        img.className = "image";
        img.onclick = function() { 
          self.toc.nodeOperation(node.key, "click");
          return false;
        };
        
        divEl.appendChild(img);
      }
      
      var label = document.createElement("div");
      var txtSpanEl = handleLabel(node.label, node.key, false, 0); //(node.level * this.indentWidth) + 5 + 9 + 4 + ((EsriUtils.isIE) ? 0 : 4));
      label.className = "label";
      if(txtSpanEl)
        label.appendChild(txtSpanEl);
      else
        label.appendChild(document.createTextNode(node.label.trim() == "" ? "" : node.label));
      divEl.appendChild(label);
      if(node.isUrl) {
        label.onclick = function() {
          self.toc.nodeOperation(node.key, 1); 
          return false; 
        };
      }

      if (node.contextMenuItems) {
        tocContextMenuItems[node.key] = node.contextMenuItems;
        divEl.oncontextmenu = function(e) {
          showContextMenu(e, node.key);
          EsriUtils.stopEvent(e);
          return false;
        }
      }
      else {
        divEl.oncontextmenu = function(e) {
          EsriUtils.stopEvent(e); return false;
        };
      }
    }
    
    EsriUtils.setElementStyle(divEl, "padding-left: " + (node.level * padFactor) + padUnits + ";");
    tbody.appendChild(divEl);
    
  }
  
  function getLevel(id) {
    var levelstring = id.substring(id.indexOf("EsriTocNodeCheckbox_results_")+"EsriTocNodeCheckbox_results_".length);
    var level = levelstring.split("_").length;
    return level-1;
  }
  
  function setState(cb) {
    var index = getCheckBoxIndex(cb.id);
    if(index==-1) {
      checkBoxElements[checkBoxElements.length]=cb;
      return true;
    }
    return checkBoxElements[index].checked; 
  }
   
  function getCheckBoxIndex(id) {
    for(var i = 0; i < checkBoxElements.length; i++) {
      if(checkBoxElements[i].id==id)
        return i;
    }
    return -1;
  }
  
  function updateState(src) {
    var index=-1;
    for(var i = 0; i < checkBoxElements.length; i++) {
      if(checkBoxElements[i].id==src.id)
      index=i;
    }
    if(index!=-1) checkBoxElements[index].checked=src.checked;
  }
  
  function highlightResultNode(resultId, skipMapTip) {
    if(!skipMapTip && map.mapTip)
      map.mapTip.highlightFeaturesById(resultId);
    var resNode = document.getElementById(resultId);
    if(resNode)
      resNode.className = "resultHighlight";
    var det = document.getElementById(resultId + "_details");
    if(det)
      det.className = "detailHighlight";    
  }

  function unHighlightResultNode(resultId, skipMapTip) {
    if(!skipMapTip && map.mapTip)
      map.mapTip.unHighlightFeaturesById(resultId);
    var resNode = document.getElementById(resultId);
    if(resNode)
      resNode.className = "result";      
    var det = document.getElementById(resultId + "_details");
    if(det)
      det.className = "detail";
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -