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

📄 esri_edit.js

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JS
📖 第 1 页 / 共 4 页
字号:
/*
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 + -