How to display popup on layer 'selection-complete' event

2941
2
08-23-2015 06:40 PM
AndrewTerwiel
Occasional Contributor II

I'm trying to get a popup to display on a selection-complete event of a feature layer. I'm having a problem where at the line to show the window I get a "Cannot read property 'toScreen' of undefined" error in the console. Does anyone know of a better way of showing a popup from a 'selection-complete' event? Thanks.

featureLayer.on("selection-complete", showInfo);

function showInfo (event) {

            map.infoWindow.setFeatures(event.features);

            map.infoWindow.show(map.extent.getCenter());

}

Message was edited by: Andrew Terwiel

I have it working now. Code snippets below.

postCreate: function () {

            this.inherited(arguments);

            this._config = this.config;

            this.map = this.map;

            this.map.infoWindow = this._customPopup;

            this.map.on("click", this._showRoadInfo);

        },

deferred = widget._roadFeatureLayer.selectFeatures(layerQuery,

            FeatureLayer.SELECTION_NEW, function (selected) {

            widget._roadFeatureLayer.setSelectionSymbol(widget._slsRoad);

            widget._parcelFeatureLayer.clearSelection();

            widget._zoomToRoad(selected, widget);

            var mpPt = selected[0].geometry.getExtent().getCenter();//new Point(-122, 45.6); 

            var scrPt = widget.map.toScreen(mpPt);                            

widget.map.emit("click", { selected: selected, map: widget, bubbles: true, cancelable: true, screenPoint: scrPt, mapPoint: mpPt });

  });

_showRoadInfo: function (event) {

            var that = this._mapParams.infoWindow;

            that.setFeatures(event.selected);

            that.show(event.mapPoint, event.screenPoint);

        },

0 Kudos
2 Replies
TracySchloss
Frequent Contributor

How are you selecting the featureLayer? Have you tried putting in a error handler to get a little more information?

0 Kudos
KenBuja
MVP Esteemed Contributor

Try passing the event into the function

featureLayer.on("selection-complete", showInfo(event));