📄 results.js
字号:
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 + -