📄 esri_edit.js
字号:
/*
COPYRIGHT 1995-2007 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
*/
/* mapcontrol */
var mapId ="map1";
var formId = "mapForm";
/* edit window */
var editDivId = "esri_editDiv";
var selectEditLayerId = "selectEditLayerId";
var editorWindowsRefreshId = "editorWindowsRefreshId";
/* edit version window */
var editVersionDivId = "esri_editVersionDiv";
var selectEditVersionId = formId+":editVersionSubview:selectEditVersionId";
/* settings window */
var settingsDivId = "esri_editSettingsDiv";
var editSnappingRulesDiv = "editSnappingRulesDiv";
var snapTolId = "editconfig_snapTolerance";
var snapEnabledId = "editconfig_snapEnabled";
var snapColorId = "editconfig_snapTipsColor";
/* xy window */
var xyDivId = "esri_editXYDiv";
/* windows */
var editorWin;
var editorVersionWin;
var editorSettingsWin;
var editorXYWin;
var editorWindowClosed = false;
var snapWidth = 8;
var editorWindowTitle = "Editing";
var editorNullFeatureMessage = "No features selected";
/* init editor */
function initEditor() {
//create windows if needed.
createVersionWindow(formId,editVersionDivId);
createEditWindow(formId,editDivId);
createSettingsWindow(formId,settingsDivId);
createXYWindow(formId,xyDivId);
//register postback tag handler
EsriControls.addPostBackTagHandler("EditBean", editBeanHandler);
// start editing
initEditorRequest();
}
/* init editor */
function showEditorWindow() {
initEditorRequest("showWindow");
}
/* init editor request */
function initEditorRequest(action) {
var map = EsriControls.maps[mapId];
//Get server URL
var url = EsriUtils.getServerUrl(map.formId);
//Set request parameters
var params = "EditBean=EditBean&ajaxServerAction=init";
if(action){
params = params + "&action="+action;
}
//Send AJAX request and set response processing function
EsriUtils.sendAjaxRequest(url, params, false, function(xmlHttp) { updateEditorResponse(xmlHttp, null , action); });
}
/* create a new Settings Window*/
function createSettingsWindow(formId,settingsDivId) {
if(settingsDivId && formId){
var settingsDiv = document.getElementById(settingsDivId);
//settings window
if(settingsDiv){
var pe = new EsriPageElement("pe");
pe.divObject = settingsDiv;
pe.divId = settingsDivId;
var form = document.getElementById(formId);
editorSettingsWin = new EsriWindow("editorSettingsWin", "Settings", pe, form);
editorSettingsWin.fit();
editorSettingsWin.hide();
}
}
}
/* create a new XY Enter Window*/
function createXYWindow(formId,xyDivId) {
if(xyDivId && formId){
var xyDiv = document.getElementById(xyDivId);
//enter XY window
if(xyDiv){
var pe = new EsriPageElement("pe");
pe.divObject = xyDiv;
pe.divId = xyDiv;
var form = document.getElementById(formId);
editorXYWin = new EsriWindow("editorXYWin", "Enter XY Value(s)", pe, form);
editorXYWin.fit();
editorXYWin.hide();
}
}
}
/* create a new Editor Window*/
function createVersionWindow(formId,editVersionDivId) {
if(editVersionDivId && formId){
var editVersionDiv = document.getElementById(editVersionDivId);
//editing version window
if(editVersionDiv){
var pe = new EsriPageElement("pe");
pe.divObject = editVersionDiv;
pe.divId = editVersionDivId;
var form = document.getElementById(formId);
editorVersionWin = new EsriWindow("editorVersionWin", editorWindowTitle, pe, form);
editorVersionWin.fit();
editorVersionWin.hide();
}
}
}
/* create a new Editor Window*/
function createEditWindow(formId,editDivId) {
if(editDivId && formId){
var editDiv = document.getElementById(editDivId);
//editing window
if(editDiv){
var pe = new EsriPageElement("pe");
pe.divObject = editDiv;
pe.divId = editDivId;
var form = document.getElementById(formId);
editorWin = new EsriWindow("editorWin", editorWindowTitle, pe, form);
editorWin.fit();
editorWin.hide();
editorWindowClosed = editorWin.closed;
editorWin.addUpdateListener("EditorWinListener", closeEditorWindowHandler);
}
}
}
/* show editor window*/
function editorShowWindowHandler(xml, eventsource, action) {
if(!xml){
return;
}
if(action == "showWindow" || xml.getAttribute("windowOpened") == "true"){
if(xml.getAttribute("window") == "version"){
if(editorVersionWin){
editorVersionWin.setTitle(xml.getAttribute("title"));
editorVersionWin.show();
}
if(editorWin){
editorWin.hide();
}
}else if(xml.getAttribute("window") == "edit"){
if(editorWin){
editorWin.setTitle(xml.getAttribute("title"));
editorWin.show();
}
if(editorVersionWin){
editorVersionWin.hide();
}
}
}
if(eventsource){
EsriControls.maps[mapId].createCurrentToolItem(eventsource, eventsource, "EsriMapServerAction", true, true, null, null, "esriToolDefault", "esriToolHover", "esriToolSelected", "esriToolDisabled");
}
}
/* closing editor window */
function closeEditorWindowHandler(win) {
if(!editorWindowClosed){
if(editorWin.closed){
closeEditorWindowRequest("request");
editorWindowClosed = true;
return false;
}
}else if (! editorWin.closed){
editorWindowClosed = false;
}
}
/* close editor request */
function closeEditorWindowRequest(action) {
var map = EsriControls.maps[mapId];
//Get server URL
var url = EsriUtils.getServerUrl(map.formId);
//Set request parameters
var params = "EditBean=EditBean&ajaxServerAction=closeEditor&action="+action;
//Send AJAX request and set response processing function
EsriUtils.sendAjaxRequest(url, params, false, function(xmlHttp) { updateEditorResponse(xmlHttp, null , action); });
}
/* close editor window*/
function editorExitWindowHandler(xml, action) {
if(!xml){
return false;
}
if(editorSettingsWin){
editorSettingsWin.hide();
}
if(editorXYWin){
editorXYWin.hide();
}
var refreshButton =document.getElementById(editorWindowsRefreshId);
EsriControls.maps[mapId].clearCurrentToolItem();
if(xml.getAttribute("confirm") == "false"){
if(refreshButton){
refreshButton.onclick();
}
return;
}
if (confirm(xml.getAttribute("message"))) {
if(editorSettingsWin){
editorSettingsWin.hide();
}
if(editorXYWin){
editorXYWin.hide();
}
closeEditorWindowRequest("confirm");
if(action == "confirm"){
if(refreshButton){
refreshButton.onclick();
}
return;
}
}else{
editorWin.show();
}
}
/* show the enter xy window */
function showEnterXYWindow(){
var cTool = EsriControls.maps[mapId].currentTool;
if(!cTool){
return false;
}
var editingCurrentTaskName = cTool.name;
if(editingCurrentTaskName){
var editaction = EsriControls.maps[mapId].currentTool.action;
if(!editaction){
return false;
}
var editactionName = EsriControls.maps[mapId].currentTool.action.name;
if(!editactionName){
return false;
}
newXYWindowRequest(editactionName,editingCurrentTaskName);
editorXYWin.show();
return false;
}
}
/* init xy window request */
function newXYWindowRequest(clientaction, serveraction) {
var map = EsriControls.maps[mapId];
//Get server URL
var url = EsriUtils.getServerUrl(map.formId);
//Set request parameters
var params = "EditBean=EditBean&ajaxServerAction=enterXY&action=start&clientAction=" + clientaction+"&serverAction="+serveraction;
//Send AJAX request and set response processing function
EsriUtils.sendAjaxRequest(url, params, false, updateEditorResponse);
}
/* enter xy values */
function enterXYRequest(eventsource,xID, yID) {
var map = EsriControls.maps[mapId];
//Get server URL
var url = EsriUtils.getServerUrl(map.formId);
//Set request parameters
var params = "EditBean=EditBean&ajaxServerAction=enterXY&action=" + eventsource + "&x=" + document.getElementById(xID).value+"&y=" + document.getElementById(yID).value;
//Send AJAX request and set response processing function
EsriUtils.sendAjaxRequest(url, params, false, function(xmlHttp) { updateEditorResponse(xmlHttp, eventsource); });
}
/* Process postback xml response and update content */
function editorEnterXYWindowHandler(xml, eventsource) {
if(!xml){
return false;
}
if(xml.getAttribute("continue") == "false" && xml.getAttribute("final") == "false"){
editorXYWin.hide();
}
var continueXY = document.getElementById("continueEnterXY");
var finalXY = document.getElementById("enterFinalXY");
var styleClass = (document.all ? "className" : "class");
if(xml.getAttribute("continue") == "true"){
if(continueXY){
continueXY.removeAttribute(styleClass);
continueXY.removeAttribute("disabled");
}
}else{
if(continueXY){
continueXY.setAttribute(styleClass, "hiddenButton");
continueXY.setAttribute("disabled", true);
}
}
if(xml.getAttribute("final") == "true"){
if(finalXY){
finalXY.removeAttribute(styleClass);
finalXY.removeAttribute("disabled");
}
}else{
if(finalXY){
finalXY.setAttribute(styleClass, "hiddenButton");
finalXY.setAttribute("disabled", true);
}
}
var type_XYWIN = document.getElementById("type_XYWIN");
if(type_XYWIN){
type_XYWIN.innerHTML = xml.getAttribute("type");
}
var lastPoint_XYWIN = document.getElementById("lastPoint_XYWIN");
if(lastPoint_XYWIN){
var lastPointString = xml.getAttribute("lastPoint");
lastPoint_XYWIN.innerHTML = lastPointString;
var label_XYWIN = document.getElementById("lastPoint_label_XYWIN");
if(label_XYWIN && lastPointString){
label_XYWIN.innerHTML = "Entered:";
}else{
label_XYWIN.innerHTML = "";
}
}
if(eventsource){
EsriControls.maps[mapId].createCurrentToolItem(eventsource, eventsource, 'EsriMapServerAction', true, true, null, null, 'esriToolDefault', 'esriToolHover', 'esriToolSelected', 'esriToolDisabled');
}
}
/* Process postback xml response and update content */
function editBeanHandler(xml) {
if(!xml){
return false;
}
var attsDiv = document.getElementById("attsDiv");
var message = document.getElementById("editMessageBar");
var styleClass = (document.all ? "className" : "class");
var ids =new Array();
ids[0] = "clearSelect";
ids[1] = "showVertices";
ids[2] = "delete";
ids[3] = "move";
ids[4] = "splitPolygon";
ids[5] = "mergePolygon";
ids[6] = "mergePolyline";
ids[7] = "splitLine";
ids[8] = "copyPoint";
ids[9] = "copyPolygon";
ids[10] = "copyPolyline";
var shapeTypes =new Array();
shapeTypes[0] = "";
shapeTypes[1] = "";
shapeTypes[2] = "";
shapeTypes[3] = "";
shapeTypes[4] = "POLYGON";
shapeTypes[5] = "POLYGON";
shapeTypes[6] = "LINE";
shapeTypes[7] = "LINE";
shapeTypes[8] = "POINT";
shapeTypes[9] = "POLYGON";
shapeTypes[10] = "LINE";
var hiddenOnlyIds =new Array();
hiddenOnlyIds[0] = "firstOID";
hiddenOnlyIds[1] = "preOID";
hiddenOnlyIds[2] = "nextOID";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -