📄 esri_task.js
字号:
/*
COPYRIGHT 1995-2005 ESRI
TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
Unpublished material - all rights reserved under the
Copyright Laws of the United States.
For additional information, contact:
Environmental Systems Research Institute, Inc.
Attn: Contracts Dept
380 New York Street
Redlands, California, USA 92373
email: contracts@esri.com
*/
function EsriTask(id, mapId) {
this.inheritsFrom(new EsriControl(id, "Task", 0, 0, 0, 0));
this.mapId = mapId;
var self = this;
this.updateAsync = function(xml, eventSources) {
var idTag = xml.getElementsByTagName("id").item(0);
var id = idTag.firstChild.nodeValue;
if (id == self.id) {
var contentTags = xml.getElementsByTagName("content");
var content;
if (EsriUtils.isIE) content = contentTags.item(0).firstChild.nodeValue;
else {
content = new XMLSerializer().serializeToString(contentTags.item(0));
content = content.substring("<content>".length, content.indexOf("</content>"));
content = content.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g, "\"");
}
var div = document.createElement("div");
EsriUtils.setElementStyle(div, "display:none;");
div.innerHTML = content;
var newTaskCell = null;
var taskCells = [];
var taskCellIds = [];
var tags = ["div"];
for (var t=0;t<tags.length;t++) {
var elems = div.getElementsByTagName(tags[t]);
for (var i=0;i<elems.length;i++) {
var elem = elems.item(i);
if (elem.id.indexOf("EsriTaskCell_") == 0) {
taskCellIds.push(elem.id);
taskCells[elem.id] = elem;
}
}
for (var n=0;n<taskCellIds.length;n++) {
var oldTaskCell = document.getElementById(taskCellIds[n]);
EsriUtils.hideElement(oldTaskCell);
var newTaskCell = taskCells[taskCellIds[n]];
EsriUtils.hideElement(newTaskCell);
var rect = EsriUtils.getElementBounds(newTaskCell);
EsriUtils.cloneElementStyle(oldTaskCell, newTaskCell);
oldTaskCell.parentNode.replaceChild(newTaskCell, oldTaskCell);
if ("taskWindowManager" in window) {
for (var w=0;w<taskWindowManager.windowIds.length;w++) {
if (taskWindowManager.windows[taskWindowManager.windowIds[w]].pageElement.divId == taskCellIds[n]) {
var win = taskWindowManager.windows[taskWindowManager.windowIds[w]];
win.pageElement.divObject = newTaskCell;
if (! win.fittable) {
if (rect.width && rect.height) {
var dx = win.bounds.width - win.pageElement.bounds.width;
var dy = win.bounds.height - win.pageElement.bounds.height;
win.bounds.width = rect.width + dx;
win.bounds.height = rect.height + dy;
}
}
taskWindowManager.loadProperties("win_" + self.id, true);
win.update();
win.fit();
break;
}
}
}
EsriUtils.setElementStyle(newTaskCell, "display:block;");
}
}
var formId = EsriControls.maps[mapId].formId;
if (eventSources.indexOf(self.id) != -1) {
var formElements = document.forms[formId].elements;
for (var i=0;i<formElements.length;i++) {
var elementId = formElements[i].id;
if ((elementId.indexOf(self.id + "_action_") != -1 || elementId.indexOf(self.id + "_tool_") != -1) && elementId.indexOf("button") == -1) {
EsriUtils.removeFormElement(formId, elementId);
EsriUtils.removeFormElement(formId, elementId + "_value");
}
}
}
var activeToolTags = xml.getElementsByTagName("active-tool");
if (activeToolTags.length > 0) {
var activeTool = activeToolTags.item(0).firstChild.nodeValue;
EsriUtils.removeFormElement(formId, activeTool);
EsriUtils.removeFormElement(formId, activeTool + "_value");
EsriUtils.removeFormElement(formId, self.mapId);
EsriUtils.removeFormElement(formId, self.mapId + "_mode");
EsriUtils.removeFormElement(formId, self.mapId + "_minx");
EsriUtils.removeFormElement(formId, self.mapId + "_miny");
EsriUtils.removeFormElement(formId, self.mapId + "_maxx");
EsriUtils.removeFormElement(formId, self.mapId + "_maxy");
EsriUtils.removeFormElement(formId, self.mapId + "_coords");
EsriUtils.removeFormElement(formId, self.mapId + "_value");
EsriControls.maps[self.mapId].reactivateCurrentToolItem();
}
for (var i=0;i<self.updateListenerNames.length;i++) self.updateListeners[self.updateListenerNames[i]](self);
}
}
EsriControls.tasks[id] = this;
EsriControls.taskIds.push(id);
EsriControls.addPostBackTagHandler("task", EsriControls.tasks[self.id].updateAsync);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -