<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Batch Attribute Editor: Almost! in Web AppBuilder Custom Widgets Questions</title>
    <link>https://community.esri.com/t5/web-appbuilder-custom-widgets-questions/batch-attribute-editor-almost/m-p/845697#M10314</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In a feeble attempt to implement the desired behavior of updating/inserting into related tables, I took a look a the regular "Edit Widget" (since this does exactly that).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I&amp;nbsp;added the "RelatedRecordsEditor.js" from the Edit Widget and then tried to implement the corresponding code from its "Widget.js" directly into a copied version of the Batch Attribute Edit widget.&amp;nbsp; When launching the widget I get the error: "Create Widget error: widgets/BatchAttributeEditor2/Widget" and it fails to load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again, I simply copied the original, renamed the folder and added the RelatedRecordsEditor.js file:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/263993_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did update the manifest.json file's "name" attribute to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"name": "BatchAttributeEditor2"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally, I attempted to implement the corresponding JavaScript out of the Edit widget's Widget.js file and into the BatchAttributeEditor2's Widget.js file:&lt;/P&gt;&lt;P&gt;Adding to the onOpen():&lt;/P&gt;&lt;P&gt;//prepare tableInfosParam data for relatedRecordsEditor&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._getTableInfosParam().then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfosParam) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParam = tableInfosParam;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParamClone = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._cloneLayerOrTableInfosParam(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParam);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._tableInfoParamDef.resolve();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adding to the define():&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'./RelatedRecordsEditor'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;And the following methods towards the end of the Widget.js file:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/******************************************&lt;/P&gt;&lt;P&gt;* Methods for prepare edit related records&lt;/P&gt;&lt;P&gt;******************************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _createRelatedRecordsEditor: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(feature) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!feature) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// prepare loading shelter&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; loadingDomNode = html.create(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'div'&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, {style:&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"position: relative"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;});&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; html.place(loadingDomNode, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.domNode, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"after"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; loading = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; LoadingShelter({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}).placeAt(loadingDomNode);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// get tableInfosParam&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._tableInfoParamDef.then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;try&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor.destroy();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// create relatedRecordsEditor&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; RelatedRecordsEditor({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;originalFeature: feature,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; editorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfosParam: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.layerInfosParamClone.concat(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParamClone),&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; nls: lang.mixin(lang.clone(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.nls), window.jimuNls.common)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;});&lt;/P&gt;&lt;P&gt;loading.destroy();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;catch&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(err) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;console.warn(err.message);&lt;/P&gt;&lt;P&gt;loading.destroy();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _disableToAnswerEventForEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// disable to answer onSelctionChange for editor ATI.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange = lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){});&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _enableToAnswerEventForEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// enable to answer onSelctionChange for editor ATI.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _getTableInfosParam: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; defs = [];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resultTableInfosParam = [];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// configured in setting page and no layers checked.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfos = [];&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos.length &amp;gt; 0) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// configured and has been checked.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._converConfiguredLayerInfos(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// has not been configured.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._getDefaultTableInfos();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; array.forEach(tableInfos, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; jimuTableInfo = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._jimuLayerInfos.getTableInfoById(tableInfo.featureLayer.id);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(jimuTableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfo.jimuTableInfo = jimuTableInfo;&lt;/P&gt;&lt;P&gt;defs.push(jimuTableInfo.getLayerObject());&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; }, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; all(defs).then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; array.forEach(tableInfos, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!tableInfo.jimuTableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableObject = tableInfo.jimuTableInfo.layerObject;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; capabilities = tableInfo.jimuTableInfo.getCapabilitiesOfWebMap();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(capabilities &amp;amp;&amp;amp; capabilities.toLowerCase().indexOf(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'editing'&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;) === -1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableObject &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableObject.visible &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//??************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableObject.isEditable &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;tableObject.isEditable() &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap) {&lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//todo ......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfo.featureLayer = tableInfo.jimuTableInfo.layerObject;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;delete&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfo.jimuTableInfo;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;resultTableInfosParam.push(tableInfo);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; }, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resultTableInfosParam;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;/*************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;* Methods for change UI&lt;/P&gt;&lt;P&gt;************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _updateDeleteBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._canDeleteSelectionFeatures()) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableDeleBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._disableDeleteBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _disableDeleteBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; query(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"[class~=deleteFeatureIcon]"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.domNode).style(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"display"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"none"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _enableDeleBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; query(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"[class~=deleteFeatureIcon]"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.domNode).style(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"display"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"inline-block"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;/*************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;* Response events&lt;/P&gt;&lt;P&gt;************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _update: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.templatePicker.update(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onClose: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.destroy();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// close method will call onDeActive automaticlly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// so do not need to call onDeActive();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._worksAfterClose();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onNormalize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; setTimeout(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update), 100);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onMinimize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onMaximize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; setTimeout(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update), 100);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; reClickMap: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(clickEvt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createOverDef.then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.map.onClick(clickEvt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicMoveStart: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._recordsSelectedFeatureInfoWhenMoveStart(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicMoveStop: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._recordsSelectedFeatureInfoWhenMoveStop(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._autoApplyEditWhenGeometryIsModified(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicChangeStop: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._autoApplyEditWhenGeometryIsModified(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _beforeMapClick: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.autoApplyEditWhenGeometryIsMoved) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._checkStickyMoveTolerance();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onEditorPopupShow: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// disable event for editorATI&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; currentFeature = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector._currentFeature;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//var currentLayer = currentFeature.getLayer();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._disableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createRelatedRecordsEditor(currentFeature);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onEditorPopupHide: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// enable event for editorATI&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onNextOfEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createRelatedRecordsEditor(evt.feature);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onLayerSelectionChange: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._updateDeleteBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Nov 2016 16:21:33 GMT</pubDate>
    <dc:creator>JamesCrandall</dc:creator>
    <dc:date>2016-11-15T16:21:33Z</dc:date>
    <item>
      <title>Batch Attribute Editor: Almost!</title>
      <link>https://community.esri.com/t5/web-appbuilder-custom-widgets-questions/batch-attribute-editor-almost/m-p/845696#M10313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Has anyone had success modifying the Batch Attribute Editor Widget to update GDB tables that participate in a relationship class (1-to-many)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Edit Widget does this flawlessly.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 14:10:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/web-appbuilder-custom-widgets-questions/batch-attribute-editor-almost/m-p/845696#M10313</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2016-11-15T14:10:33Z</dc:date>
    </item>
    <item>
      <title>Re: Batch Attribute Editor: Almost!</title>
      <link>https://community.esri.com/t5/web-appbuilder-custom-widgets-questions/batch-attribute-editor-almost/m-p/845697#M10314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In a feeble attempt to implement the desired behavior of updating/inserting into related tables, I took a look a the regular "Edit Widget" (since this does exactly that).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I&amp;nbsp;added the "RelatedRecordsEditor.js" from the Edit Widget and then tried to implement the corresponding code from its "Widget.js" directly into a copied version of the Batch Attribute Edit widget.&amp;nbsp; When launching the widget I get the error: "Create Widget error: widgets/BatchAttributeEditor2/Widget" and it fails to load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again, I simply copied the original, renamed the folder and added the RelatedRecordsEditor.js file:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/263993_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did update the manifest.json file's "name" attribute to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"name": "BatchAttributeEditor2"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally, I attempted to implement the corresponding JavaScript out of the Edit widget's Widget.js file and into the BatchAttributeEditor2's Widget.js file:&lt;/P&gt;&lt;P&gt;Adding to the onOpen():&lt;/P&gt;&lt;P&gt;//prepare tableInfosParam data for relatedRecordsEditor&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._getTableInfosParam().then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfosParam) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParam = tableInfosParam;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParamClone = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._cloneLayerOrTableInfosParam(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParam);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._tableInfoParamDef.resolve();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adding to the define():&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'./RelatedRecordsEditor'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;And the following methods towards the end of the Widget.js file:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/******************************************&lt;/P&gt;&lt;P&gt;* Methods for prepare edit related records&lt;/P&gt;&lt;P&gt;******************************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _createRelatedRecordsEditor: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(feature) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!feature) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// prepare loading shelter&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; loadingDomNode = html.create(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'div'&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, {style:&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"position: relative"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;});&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; html.place(loadingDomNode, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.domNode, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"after"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; loading = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; LoadingShelter({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}).placeAt(loadingDomNode);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// get tableInfosParam&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._tableInfoParamDef.then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;try&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor.destroy();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// create relatedRecordsEditor&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._relatedRecordsEditor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; RelatedRecordsEditor({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;originalFeature: feature,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; editorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfosParam: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.layerInfosParamClone.concat(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.tableInfosParamClone),&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; nls: lang.mixin(lang.clone(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.nls), window.jimuNls.common)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;});&lt;/P&gt;&lt;P&gt;loading.destroy();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;catch&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(err) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;console.warn(err.message);&lt;/P&gt;&lt;P&gt;loading.destroy();&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _disableToAnswerEventForEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// disable to answer onSelctionChange for editor ATI.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange = lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){});&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _enableToAnswerEventForEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// enable to answer onSelctionChange for editor ATI.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector.onLayerSelectionChange =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._mapInfoStorage.editorATIonLayerSelectionChange = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _getTableInfosParam: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; defs = [];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resultTableInfosParam = [];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// configured in setting page and no layers checked.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfos = [];&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos.length &amp;gt; 0) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// configured and has been checked.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._converConfiguredLayerInfos(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.tableInfos);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// has not been configured.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfos = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._getDefaultTableInfos();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; array.forEach(tableInfos, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; jimuTableInfo = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._jimuLayerInfos.getTableInfoById(tableInfo.featureLayer.id);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(jimuTableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfo.jimuTableInfo = jimuTableInfo;&lt;/P&gt;&lt;P&gt;defs.push(jimuTableInfo.getLayerObject());&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; }, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; all(defs).then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; array.forEach(tableInfos, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!tableInfo.jimuTableInfo) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableObject = tableInfo.jimuTableInfo.layerObject;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; capabilities = tableInfo.jimuTableInfo.getCapabilitiesOfWebMap();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(capabilities &amp;amp;&amp;amp; capabilities.toLowerCase().indexOf(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;'editing'&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;) === -1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(tableObject &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableObject.visible &amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//??************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableObject.isEditable &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;tableObject.isEditable() &amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; isEditableInWebMap) {&lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//todo ......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;tableInfo.featureLayer = tableInfo.jimuTableInfo.layerObject;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;delete&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; tableInfo.jimuTableInfo;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;resultTableInfosParam.push(tableInfo);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; }, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resultTableInfosParam;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;/*************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;* Methods for change UI&lt;/P&gt;&lt;P&gt;************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _updateDeleteBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._canDeleteSelectionFeatures()) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableDeleBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; } &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._disableDeleteBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _disableDeleteBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; query(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"[class~=deleteFeatureIcon]"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.domNode).style(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"display"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"none"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _enableDeleBtnInToolbar: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; query(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"[class~=deleteFeatureIcon]"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.domNode).style(&lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"display"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #800000; font-size: small; font-family: Consolas;"&gt;"inline-block"&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;/*************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;* Response events&lt;/P&gt;&lt;P&gt;************************/&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _update: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.templatePicker.update(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; resize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onClose: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.destroy();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// close method will call onDeActive automaticlly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// so do not need to call onDeActive();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._worksAfterClose();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onNormalize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; setTimeout(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update), 100);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onMinimize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; onMaximize: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; setTimeout(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._update), 100);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; reClickMap: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(clickEvt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createOverDef.then(lang.hitch(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.map.onClick(clickEvt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}));&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicMoveStart: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._recordsSelectedFeatureInfoWhenMoveStart(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicMoveStop: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._recordsSelectedFeatureInfoWhenMoveStop(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._autoApplyEditWhenGeometryIsModified(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onGraphicChangeStop: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._autoApplyEditWhenGeometryIsModified(evt);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _beforeMapClick: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(!&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.autoApplyEditWhenGeometryIsMoved) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._checkStickyMoveTolerance();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onEditorPopupShow: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// disable event for editorATI&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; currentFeature = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;.editor.attributeInspector._currentFeature;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;//var currentLayer = currentFeature.getLayer();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._disableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createRelatedRecordsEditor(currentFeature);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onEditorPopupHide: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #006400; font-size: small; font-family: Consolas;"&gt;// enable event for editorATI&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._enableToAnswerEventForEditorATI();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onNextOfEditorATI: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(evt) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._createRelatedRecordsEditor(evt.feature);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;},&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; _onLayerSelectionChange: &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;function&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._configEditor.toolbarVisible) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: small; font-family: Consolas;"&gt;this&lt;/SPAN&gt;&lt;SPAN style="font-size: small; font-family: Consolas;"&gt;._updateDeleteBtnInToolbar();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 16:21:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/web-appbuilder-custom-widgets-questions/batch-attribute-editor-almost/m-p/845697#M10314</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2016-11-15T16:21:33Z</dc:date>
    </item>
  </channel>
</rss>

