<?xml version="1.0" encoding="utf-8"?> <s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009" alpha.disabled=".5"> <fx:Metadata>[HostComponent("com.esri.ags.components.supportClasses.CodedValueDomainField")]</fx:Metadata> <!-- host component --> <fx:Script fb:purpose="styling"> <![CDATA[ /* Define the content fill items that should be colored by the "contentBackgroundColor" style. */ static private const contentFill:Array = ["bgFill"]; /** * @private */ override public function get contentItems():Array {return contentFill}; /** * @private */ override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { if (getStyle("borderVisible") == false) { if (border) border.visible = false; if (background) { background.left = background.top = background.right = background.bottom = 0; } if (scroller) scroller.minViewportInset = 0; } else { if (border) border.visible = true; if (background) { background.left = background.top = background.right = background.bottom = 1; } if (scroller) scroller.minViewportInset = 1; } if (dropShadow) dropShadow.visible = getStyle("dropShadowVisible"); openButton.setStyle("cornerRadius", getStyle("cornerRadius")); if (borderStroke) { borderStroke.color = getStyle("borderColor"); borderStroke.alpha = getStyle("borderAlpha"); } super.updateDisplayList(unscaledWidth, unscaledHeight); } ]]> </fx:Script> <s:states> <s:State name="normal" /> <s:State name="open" /> <s:State name="disabled" /> </s:states> <s:PopUpAnchor id="popUp" displayPopUp.normal="false" displayPopUp.open="true" includeIn="open" left="0" right="0" top="0" bottom="0" itemDestructionPolicy="auto" popUpPosition="below" popUpWidthMatchesAnchorWidth="false"> <s:Group id="dropDown" maxHeight="134" minHeight="22" > <!--- @private --> <s:RectangularDropShadow id="dropShadow" blurX="20" blurY="20" alpha="0.45" distance="7" angle="90" color="#000000" left="0" top="0" right="0" bottom="0"/> <!--- @private --> <s:Rect id="border" left="0" right="0" top="0" bottom="0"> <s:stroke> <!--- border stroke @private --> <s:SolidColorStroke id="borderStroke" weight="1"/> </s:stroke> </s:Rect> <!-- fill --> <!--- Defines the appearance of drop-down list's background fill. --> <s:Rect id="background" left="1" right="1" top="1" bottom="1" > <s:fill> <s:SolidColor id="bgFill" color="0xFFFFFF" /> </s:fill> </s:Rect> <!--- @private --> <s:Scroller id="scroller" left="0" top="0" width="300" bottom="0" hasFocusableChildren="false" minViewportInset="1"> <!--- @copy spark.components.SkinnableDataContainer#dataGroup--> <s:DataGroup id="dataGroup" itemRenderer="spark.skins.spark.DefaultItemRenderer"> <s:layout> <s:VerticalLayout gap="0" horizontalAlign="contentJustify"/> </s:layout> </s:DataGroup> </s:Scroller> </s:Group> </s:PopUpAnchor> <s:Button id="openButton" left="0" width="250" top="0" bottom="0" focusEnabled="false" skinClass="spark.skins.spark.DropDownListButtonSkin" /> <s:Label id="labelDisplay" verticalAlign="middle" maxDisplayedLines="1" mouseEnabled="false" mouseChildren="false" left="7" right="30" top="2" bottom="2" width="75" verticalCenter="1" /> </s:SparkSkin>
// This adds the event listener to update the editor skins on the form. I've added it to the WidgetConfigLoaded function // Add a listener to update the styles on the edit boxes when the records are shown. editor.attributeInspector.addEventListener(AttributeInspectorEvent.SHOW_FEATURE, setFieldInspectorSkins); // Applies the Field Editor skins to the edit objects. Looks directly at the form in the attribute inspector // then looks at each for the formitems and check the component type e.g. TextField, StringField, CodedValueDomainField. // Finally applies a custom skin to each component based on the type. private function setFieldInspectorSkins(event:AttributeInspectorEvent):void { // Get the number of formitems in the form var numRecs:int = editor.attributeInspector.form.numChildren; var disp:DisplayObject; var chld:DisplayObject; for (var i:int = 0; i < numRecs; i++) { disp = editor.attributeInspector.form.getChildAt(i); if (disp is FormItem) { var itm:FormItem = disp as FormItem; for (var j:int = 0; j < itm.numChildren; j++) { chld = itm.getChildAt(j); if (chld is StringField) { var sFld:StringField = chld as StringField; sFld.setStyle("skinClass",widgets.EditEnhanced.EditWidgetStringFieldSkin); break; } if (chld is com.esri.ags.components.supportClasses.TextField) { var tFld:com.esri.ags.components.supportClasses.TextField = chld as com.esri.ags.components.supportClasses.TextField; tFld.setStyle("skinClass",widgets.EditEnhanced.EditWidgetTextFieldSkin); break; } if (chld is com.esri.ags.components.supportClasses.CodedValueDomainField) { var cFld:CodedValueDomainField = chld as CodedValueDomainField; cFld.setStyle("skinClass",widgets.EditEnhanced.EditWidgetCodedValueDomainFieldSkin); break; } if (chld is com.esri.ags.components.supportClasses.RangeDomainField) { var rFld:RangeDomainField = chld as RangeDomainField; rFld.setStyle("skinClass",widgets.EditEnhanced.EditWidgetRangeDomainFieldSkin); break; } } } } }
try setting the typicalItem property on your custom drop down list.
var details:LayerDetails = resourceStatusFI.featureLayer.layerDetails; var resourceSatusField:Field; for each (var field:Field in details.fields) { if (field.name == "RESOURCESTATUS") { resourceSatusField = field; break; } } var resourceStatusDomain:CodedValueDomain = resourceSatusField.domain as CodedValueDomain; var resourceStatusDataProvider:ArrayCollection = new ArrayCollection(resourceStatusDomain.codedValues);
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.