Quantcast
Channel: Forums - ArcGIS Viewer for Flex
Viewing all articles
Browse latest Browse all 2097

Enable default popups for user added layer

$
0
0
Using version 2.5, I have a widget that allows users to add their own dynamic services to the TOC by entering the service URL and selecting a layer. I'm trying to enable the default identify tool to work for user layers the same way it works when using the "popupconfig" option in the XML config file for a layer. I can use my widget to add a new layer to the TOC and display it, but nothing happens when I click on a feature. The popup works if I define the same layer in my XML config file with the popupconfig option. Has anyone else tried this? I want to be able to use popups for user added layers without needing a precreated popup XML file or using the IdentifyWidget.

Code:


private function createPopUp(url:String,layer:ArcGISDynamicMapServiceLayer,layerId:int):void

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest(url+"/"+layerId+"?f=json"));

function completeHandler(event:Event):void {
        var loader:URLLoader = URLLoader(event.target);
        var svc:Object = JSON.decode(loader.data);
        var popupFields:Array = [];
        var firstfield:String =null;
        for each(var field:Object in svc.fields)
        {
                if(field.name=="OBJECTID"||field.name=="Shape_Length"||field.name=="Shape_Area" || field.name=="Shape")continue;
                var popupFieldInfo:PopUpFieldInfo = new PopUpFieldInfo();
                if(!firstfield)firstfield=field.name;
                popupFieldInfo.fieldName = field.name;
                popupFieldInfo.label = field.alias;
                popupFieldInfo.visible = true;
                popupFieldInfo.format = new PopUpFieldFormat();
                popupFields.push(popupFieldInfo);
        }
        var popUpInfo:PopUpInfo = new PopUpInfo();
        // Tell the pop-up info about the field name template
        popUpInfo.title = "{"+firstfield+"}";
        popUpInfo.popUpFieldInfos = popupFields;
       
        // Create the class factory
        var popUpRenderer:ClassFactory = new ClassFactory(PopUpRenderer);
        // Set the "popUpInfo" key
        popUpRenderer.properties = { "popUpInfo": popUpInfo };
        var layerInfoWindowRenderer:LayerInfoWindowRenderer = new LayerInfoWindowRenderer();
        layerInfoWindowRenderer.layerId = Number(layerId);
        var infoWindowRenderer:ClassFactory = new ClassFactory(PopUpRenderer);
        infoWindowRenderer.properties = { popUpInfo: popUpInfo };       
        var arrLayerInfoWindowRenderer:Array = [];
        arrLayerInfoWindowRenderer.push(popUpRenderer);
        layer.layerInfoWindowRenderers=arrLayerInfoWindowRenderer;
}
}


Viewing all articles
Browse latest Browse all 2097

Trending Articles