Select to view content in your preferred language

Delete Feature in Attribute Table Firing Event to  Delete Feature in Feature Layer

793
0
02-06-2014 06:37 AM
ionarawilson1
Deactivated User
I have a web app with an editor and an attribute table. I would like the users  o have an alert before deleting features in the table an also clicking the delete button in the attribute inspector. However, when the user click on "yes" to delete features in the table the alert box from the map the feature event to delete features gets fired off and the alert box from the map features also appears. Is there a way to prevent that from happening? I tried to remove the event listener when the table event fires off, but it does not work. Thanks!

protected function StewardshipAreas_editsStartingHandler(event:FeatureLayerEvent):void
 {
 
 if(event.deletes && event.deletes.length > 0)
  {
    if(confirmDeletes)
    {
    // Clone this event, then cancel it so we can get user
    // confirmation and apply edits later
     const eventClone:FeatureLayerEvent = event.clone() as FeatureLayerEvent;
   // Cancel event
   event.preventDefault();
   // Confirm deletes
   const msg:String = "Are you sure you want to delete this feature or features?\n";
   const title:String = (event.deletes.length > 1) ? "Confirm Deletes" : "Confirm Delete";
   Alert.show(msg, title, 3, null, confirmHandler);
      
   function confirmHandler(closeEvent:CloseEvent):void
   {
    if (closeEvent.detail == Alert.YES)
    {
     // Apply edits without confirmation
     confirmDeletes = false;
           eventClone.featureLayer.applyEdits(null, null, eventClone.deletes);
    }
    else
    {
     eventClone.featureLayer.applyEdits(null, null, null);
       }
      }
     }
  else
   {
    // Reset confirmation flag
    confirmDeletes = true;
      
     }
    }    
   }

 protected function fdg_deleteFeaturesHandler(event:AttributeTableEvent):void
   {
    myFeatureLayerstewardship.removeEventListener(FeatureLayerEvent.EDITS_STARTING, StewardshipAreas_editsStartingHandler)
    const eventClone:AttributeTableEvent = event.clone() as AttributeTableEvent;
    const deletes:Array = event.features;
    const msg:String = "Are you sure you want to delete this feature or features?";
       
   Alert.show(msg, "Delete", 3, null, confirmHandler);
   
   function confirmHandler(closeEvent:CloseEvent):void
   {
   if(closeEvent.detail == Alert.YES)
   {
      
   eventClone.featureLayer.applyEdits(null, null, deletes, false,
  new AsyncResponder(featureLayer_editsCompleteHandler, featureLayer_faultHandler));
    
     }
   if (closeEvent.detail == Alert.NO)
     {
      
      Alert.show("Feature was not deleted")
      
      myAttributeTablespatial.refresh()
     }
   else 
    {
           
   eventClone.featureLayer.applyEdits(null, null, null, false,
        new AsyncResponder(featureLayer_editsCompleteHandler, featureLayer_faultHandler));
      }
          
    }
    
   }



 <esri:FeatureLayer id="myFeatureLayerstewardship" editsStarting="StewardshipAreas_editsStartingHandler(event)"    selectionComplete="myFeatureLayer_selectionCompleteHandler(event)" visible="false"   graphicAdd="onGraphicAdd(event)"  updateEnd="onLayerUpdateEnd(event)" mode="onDemand" outFields="*" url="http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES_ALL/FeatureServer/3"/>    
       
     <esri:AttributeTable 
      
      id="myAttributeTablespatial"
      width="100%"  
      height="300"
      visible="false"
      deleteFeatures="fdg_deleteFeaturesHandler(event)"
      showTitle="false"
      
      featureLayer= "{myFeatureLayerstewardship}"
      updateFeature="fdg_updateFeatureHandler2(event)">   
      
      <esri:FieldInspector editor="com.esri.ags.samples.components.MyCalendarEditor"
            
          
     fieldName="DateStart"/>
    
      
     </esri:AttributeTable> 



Tags (2)
0 Kudos
0 Replies