📄 jitk_information.js
字号:
var jitkTaskScaleInfoArray = new Array();
var jitkTaskProjInfoArray = new Array();
var jitkTaskProjInfoDetailArray = new Array();
function JitkToken(name, value, indent){
this.name = name;
this.value = value;
this.indent = indent;
var self = this;
}
function JitkInfoProcessor(msg){
this.stoken = '[';
this.etoken = ']';
this.ptoken = ',';
this.indentWidth = 8;
this.msg = msg;
this.tokenArray = new Array();
this.getStartPos = function(c){
return c.lastIndexOf(this.stoken);
}
this.getEndPos = function(c, startpos){
return c.indexOf(this.etoken, startpos + 1);
}
this.getHTML = function(){
var html = '<table border="0" cellpadding="0" cellspacing="0">';
for (var i = this.tokenArray.length - 1; i >= 0; i--){
html += '<tr><td><table border="0" cellpadding="0" cellspacing="0"><tr>';
for (var j = 0; j < this.tokenArray[i].indent; j++){
html += '<td width="' + this.indentWidth + '"></td>';
}
var param = this.tokenArray[i].value;
param = param.replace(/_/g, " ");
param = param.replace(/\"/g, "");
html += '<td>' + this.tokenArray[i].name + '</td>';
html += '<td width="' + this.indentWidth + '"></td>';
html += '<td>' + param + '</td></tr>';
html += '</tr></table>';
}
html + '</table>';
return html;
}
this.parseToken = function(){
var c = this.msg;
var startpos = this.getStartPos(c);
while (startpos >= 0){
var endpos = this.getEndPos(c, startpos);
var pre = c.substring(0, startpos);
var post = c.substring(endpos + 1, c.length);
var ppos = pre.lastIndexOf(this.ptoken);
var name = pre.substring(ppos + 1, pre.length);
pre = pre.substring(0, ppos);
var indent = post.split(this.etoken);
var token = new JitkToken(name, c.substring(startpos + 1, endpos), indent.length - 1);
this.tokenArray[this.tokenArray.length] = token;
var c = pre + post;
startpos = this.getStartPos(c);
}
}
var self = this;
}
var JitkInfoUtil = new function() {
var pe, win, listener;
this.showWindow = function(title, defs) {
if (win) destroyWindow()
var time = new Date().getTime();
pe = new EsriPageElement("jitk-info-pe-" + time);
pe.divObject = document.body.appendChild(document.createElement("div"));
var proc = new JitkInfoProcessor(defs);
proc.parseToken();
var html = proc.getHTML();
html = '<table border="0">' + html + '</table>';
pe.divObject.innerHTML = html;
pe.divId = pe.divObject.id = "jitk-info-iframe-" + time;
EsriUtils.setElementStyle(pe.divObject, "border:0px NONE;");
win = new EsriWindow("jitk-info-win-" + time, title, pe);
win.init();
win.resize(350,280);
win.center();
win.toFront();
}
this.closeWindow = function() { destroyWindow(); }
function winListener(win) { if (win.closed) listener = null; }
function destroyWindow() {
win.hide();
pe = pe.divObject = pe.divId = win = win.divObject = win.divId = null;
}
}
function jitkTaskInformation_addTagHandler(){
if (jitkTaskScaleInfoArray.length == 0 && jitkTaskProjInfoArray.length == 0){
EsriControls.addPostBackTagHandler('jitk-map-information', jitkTaskInformation_TagHandler);
}
}
function jitkTaskInformation_showDetail(idx){
JitkInfoUtil.showWindow('', jitkTaskProjInfoDetailArray[idx]);
}
function jitkTaskInformation_TagHandler(xml, eventSources) {
var idTag = xml.getElementsByTagName("map-id").item(0);
if (!idTag) return;
var mapId = idTag.firstChild.nodeValue;
var mapScaleTag = xml.getElementsByTagName("map-scale").item(0);
if (!mapScaleTag) return;
var mapScale = mapScaleTag.firstChild.nodeValue;
var mapProjTag = xml.getElementsByTagName("map-projection").item(0);
if (!mapProjTag) return;
var mapProj = mapProjTag.firstChild.nodeValue;
var mapProjNameTag = xml.getElementsByTagName("map-projection-name").item(0);
if (!mapProjNameTag) return;
var mapProjName = mapProjNameTag.firstChild.nodeValue;
for (var i = 0; i < jitkTaskScaleInfoArray.length; i++){
var mapScaleArr =mapScale.split(":");
setZoomToScale(mapScaleArr[1]);
var disp1 = mapScale;
var el = jitkTaskScaleInfoArray[i].replace(/:/g,"\\:");
$("#"+el).text(disp1);
}
jitkTaskProjInfo = mapProj;
for (var i = 0; i < jitkTaskProjInfoArray.length; i++) {
var chkCrtl = jitkTaskProjInfoArray[i].split(":");
var chkMap = mapId.split(":");
if (chkCrtl[0] == chkMap[0]){
jitkTaskProjInfoDetailArray[i] = mapProj;
var disp1 = mapProjName;
var el = jitkTaskProjInfoArray[i].replace(/:/g,"\\:");
$("#"+el).text(disp1);
}
}
}
function setZoomToScale(mScale) {
//Populate zoomToScale Task with current scale
if (document.getElementById('scaleTask_param_mapScaleTxt')) {
document.getElementById('scaleTask_param_mapScaleTxt').value = mScale;
}
//Reset the scale drop down to "Select.."
if (document.getElementById('scaleTask_param_mapScales')) {
document.getElementById('scaleTask_param_mapScales').selectedIndex = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -