esri|PopUpRenderer { skinClass:ClassReference('com.esri.viewer.skins.PopUpRendererSkin'); }
override protected function commitProperties():void { super.commitProperties(); var featureLayer:FeatureLayer = hostComponent.featureLayer; var formattedAttributes:Object = hostComponent.formattedAttributes; var graphic:Graphic = hostComponent.graphic; var map:Map = hostComponent.map; var popUpInfo:PopUpInfo = hostComponent.popUpInfo; var validMediaInfos:Array = hostComponent.validPopUpMediaInfos; var geometry:Geometry = graphic ? graphic.geometry : null; var layerDetails:LayerDetails = featureLayer ? featureLayer.layerDetails : null; vGroup.removeAllElements(); if (popUpInfo) { if (popUpInfo.title) { titleText.text = StringUtil.substitute(popUpInfo.title, formattedAttributes); if (titleText.text) { vGroup.addElement(titleText); vGroup.addElement(titleLine); } } var htmlText:String; if (popUpInfo.description) { htmlText = StringUtil.substitute(popUpInfo.description, formattedAttributes); if (htmlText) { var descriptionText:Text = new PopUpText(); descriptionText.percentWidth = 100; descriptionText.styleSheet = textStyleSheet; cleanAndSetHtmlText(descriptionText, htmlText); vGroup.addElement(descriptionText); } } else { var descriptionForm:Form; var item:Text=new PopUpText(); for each (var fieldInfo:PopUpFieldInfo in popUpInfo.popUpFieldInfos) { if (fieldInfo.visible) { var formItem:FormItem = new FormItem(); formItem.label = fieldInfo.label || fieldInfo.fieldName; var label:Label; htmlText = formattedAttributes[fieldInfo.fieldName]; if (htmlText) { // convert attribute field values that just contain URLs into links var match:Array = htmlText.match(/^\s*((https?|ftp):\/\/\S+)\s*$/i); if (match && match.length > 0) { label = new Label(); htmlText = '<a href="' + match[1] + '" target="_blank">' + match[1] + "</a>"; } else { label = new PopUpText(); } cleanAndSetHtmlText(label, htmlText); label.selectable = true; label.styleSheet = this.textStyleSheet; label.width = 150; if(label.htmlText.length>1){ item.text=item.text+fieldInfo.label+" "+ label.htmlText.toString()+"\n"; } //formItem.styleName = "formItemStyle"; //formItem.addChild(label); } if (!descriptionForm) { descriptionForm = new Form(); descriptionForm.percentWidth = 100; descriptionForm.horizontalScrollPolicy = ScrollPolicy.OFF; descriptionForm.verticalScrollPolicy = ScrollPolicy.OFF; descriptionForm.styleName = "formStyle"; } //descriptionForm.addChild(formItem); } } vGroup.addElement(item); if (descriptionForm) { vGroup.addElement(descriptionForm); } } if (validMediaInfos && validMediaInfos.length > 0) { vGroup.addElement(mediaBrowser); mediaBrowser.attributes = graphic.attributes; mediaBrowser.formattedAttributes = formattedAttributes; mediaBrowser.popUpFieldInfos = popUpInfo.popUpFieldInfos; mediaBrowser.popUpMediaInfos = validMediaInfos; } if (popUpInfo.showAttachments && graphic && featureLayer && layerDetails && layerDetails.hasAttachments && layerDetails.objectIdField) { vGroup.addElement(attachmentInspector); attachmentInspector.showAttachments(graphic, featureLayer); } if (map && geometry) { //vGroup.addElement(zoomToButton); } } } private function cleanAndSetHtmlText(labelCntrl:Label, htmlText:String):void { if (labelCntrl && htmlText != null) { htmlText = htmlText.replace(/<div/gi, "<br /><div"); // divs are ignored so put br's in front of them htmlText = htmlText.replace(/<div><br ?\/><\/div>/gi, ""); // remove existing <div><br /></div>'s so we don't have too many new lines // add target="_blank" to all anchor tags htmlText = htmlText.replace(/<a.*?href\s*=\s*["']([^"']*).*?>(.*?)<\/a\s*>/gi, '<a href="$1" target="_blank">$2</a>'); labelCntrl.htmlText = htmlText; } } private function zoomToButton_clickHandler(event:MouseEvent):void { var graphic:Graphic = hostComponent.graphic; var map:Map = hostComponent.map; var geometry:Geometry = graphic.geometry; var extent:Extent = geometry.extent; // returns null for MapPoint or Multipoint's with only one point if (extent) { map.extent = extent; // make sure the whole extent is visible if (!map.extent.contains(extent)) { map.level--; } } else { // code here } } ]]> </fx:Script> <fx:Declarations> <!--- @private --> <mx:Text id="titleText" width="100%" fontSize="18" fontWeight="bold"/> <!--- @private --> <s:Line id="titleLine" width="100%"> <s:stroke> <s:SolidColorStroke id="titleLineSymbol" color="black" weight="1"/> </s:stroke> </s:Line> <!--- @private --> <supportClasses:PopUpMediaBrowser id="mediaBrowser" width="100%" skinClass="com.esri.ags.skins.supportClasses.PopUpMediaBrowserSkin"/> <!--- @private --> <esri:AttachmentInspector id="attachmentInspector" width="100%" addEnabled="false" deleteEnabled="false"/> <!--- @private --> <!-- <mx:LinkButton id="zoomToButton" click="zoomToButton_clickHandler(event)" fontWeight="bold" label="{resourceManager.getString('ESRIMessages', 'zoomLabel')}"/>--> </fx:Declarations> <s:Scroller width="100%" height="100%"> <!--- @private --> <s:VGroup id="vGroup" fontFamily="arial" fontSize="10" fontStyle="normal" fontWeight="normal" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0" gap="0" verticalAlign="top"> <!-- elements are added in commitProperties() --> </s:VGroup> </s:Scroller> </s:SparkSkin>
I had the same problem but corrected it by modifying the popUpRendererSkin. If you look at the skin you will see it uses forms and formItem, which i think have some kind of default spacing.
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.