AnsweredAssumed Answered

Reconnecting an event handler

Question asked by steven_3535 on Sep 22, 2014
Latest reply on Sep 22, 2014 by steven_3535

I created a handler using dojo.on for my executeIdentifyTask(), successfully disabled it, but now I'm having trouble getting it to reconnect after i execute a buffer.  I'm trying to follow the esri events guide here but I don't see where they reconnect using dojo/on.  My handler variable is global.  Any help is much appreciated.  Thanks!

 

map.on("onload", handler);


handler = map.on("click", executeIdentifyTask);


function executeIdentifyTask (event) {
//code here
}


function initToolbar(evtObj) { 
handler.remove(); 
app.tb = new Draw(evtObj.map);
app.tb.on("draw-end", doBuffer); }


function doBuffer(evtObj) {

  var geometry = evtObj.geometry,
  map = app.map,
  gsvc = app.gsvc;
  switch (geometry.type) {
 case "point":
   var symbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_SQUARE, 10, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255,0,0]), 1), new Color([0,255,0,0.25]));
   break;
 case "polyline":
   var symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new Color([255,0,0]), 1);
   break;
 case "polygon":
   var symbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NONE, new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASHDOT, new Color([255,0,0]), 2), new Color([255,255,0,0.25]));
   break;
  }




      var graphic = new Graphic(geometry, symbol);
      map.graphics.add(graphic);




      //setup the buffer parameters
      var params = new BufferParameters();
      params.distances = [ dom.byId("distance").value ];
      params.bufferSpatialReference = new esri.SpatialReference({wkid: dom.byId("bufferSpatialReference").value});
      params.outSpatialReference = map.spatialReference;
      params.unit = GeometryService[dom.byId("unit").value];




      if (geometry.type === "polygon") {
        //if geometry is a polygon then simplify polygon.  This will make the user drawn polygon topologically correct.
        gsvc.simplify([geometry], function(geometries) {
          params.geometries = geometries;
          gsvc.buffer(params, showBuffer);
        });
      } else {
        params.geometries = [geometry];
        gsvc.buffer(params, showBuffer);
      }
    }




    function showBuffer(bufferedGeometries) {
      var symbol = new SimpleFillSymbol(
        SimpleFillSymbol.STYLE_SOLID,
        new SimpleLineSymbol(
          SimpleLineSymbol.STYLE_SOLID,
          new Color([255,0,0,0.65]), 2
        ),
        new Color([255,0,0,0.35])
      );




      array.forEach(bufferedGeometries, function(geometry) {
        var graphic = new Graphic(geometry, symbol);
        app.map.graphics.add(graphic);
      });
      app.tb.deactivate();
      app.map.showZoomSlider();
    }

Outcomes