0) { getFeatureTypes().addEventListener(CollectionEvent.COLLECTION_CHANGE, updateFeatureServer); } updateServer(); updateFeatureServer(); this.serverID.addEventListener(ListEvent.CHANGE, function():void { layerNode.Server.@id = serverID.selectedItem.@id; if(serverID.selectedItem.attribute("clientId").length() > 0) { layerNode.Server.@clientId = serverID.selectedItem.@clientId; } layerNode.Server.@status = serverID.selectedItem.@status; updateServer(); }); //End server + serverlayer events this.featureServer.addEventListener(ListEvent.CHANGE, function():void { layerNode.Featureserver.@id = featureServer.selectedItem.@id; if(featureServer.selectedItem.attribute("clientId").length() > 0) { layerNode.Featureserver.@clientId = featureServer.selectedItem.@clientId; } updateFeatureServer(); }); if(this.newElement) { serverID.selectedIndex = -1; } this.addRequiredValidator(uniqueName); var ftGrid_Renderer:ClassFactory = new ClassFactory(TextInput); ftGrid_Renderer.properties = {toolTip:resourceManager.getString('language', 'Tlt_ftName')}; ftGrid_Name.itemEditor = ftGrid_Renderer; ftGrid_Renderer = new ClassFactory(TextInput); ftGrid_Renderer.properties = {toolTip:resourceManager.getString('language', 'Tlt_ftValuesName')}; ftGrid_Values_ftname.itemEditor = ftGrid_Renderer; ftGrid_Renderer = new ClassFactory(TextInput); ftGrid_Renderer.properties = {toolTip:resourceManager.getString('language', 'Tlt_ftValuesLabel')}; ftGrid_Values_label.itemEditor = ftGrid_Renderer; ftGrid_Renderer = new ClassFactory(TextInput); ftGrid_Renderer.properties = {toolTip:resourceManager.getString('language', 'Tlt_ftValuesData')}; ftGrid_Values_data.itemEditor = ftGrid_Renderer; ftGrid_Renderer = new ClassFactory(TextInput); ftGrid_Renderer.properties = {toolTip:resourceManager.getString('language', 'Tlt_ftNameSpace')}; ftGrid.addEventListener(FlexEvent.UPDATE_COMPLETE, function():void { if(ftGrid.selectedIndex != -1 && ftGrid.selectedItem == hyperlink.selectedItem) { layerNode.FTproperties.HyperlinkProperty = hyperlink.selectedItem.Name.toString(); } if(ftGrid.selectedIndex != -1 && ftGrid.selectedItem == objectOwner.selectedItem) { layerNode.FTproperties.ObjectOwnerProperty = objectOwner.selectedItem.Name.toString(); } if(ftGrid.selectedIndex != -1 && ftGrid.selectedItem == annotation.selectedItem) { layerNode.FTproperties.AnnotationProperty = annotation.selectedItem.Name.toString(); } }); BindingUtils.bindSetter(function():void { if(layerNode != null) { hyperlink.selectedItem = layerNode.FTproperties.FTproperty.(Name == layerNode.HyperlinkProperty.toString())[0]; objectOwner.selectedItem = layerNode.FTproperties.FTproperty.(Name == layerNode.ObjectOwnerProperty.toString())[0]; annotation.selectedItem = layerNode.FTproperties.FTproperty.(Name == layerNode.AnnotationProperty.toString())[0]; formEnabled = dataSource.isOwner(layerNode); } }, this, "layerNode"); formEnabled = dataSource.isOwner(layerNode); dataSource.addEventListener("serverCacheDropped", function():void { dispatchEvent(new Event('layerNodeChanged')); }); } [Bindable(event="featureTypeChange")] public function getFeatureTypes():XMLListCollection { if(layerNode.child("Featureserver").length() == 0) { return null; } var props:XML = dataSource.getProps(layerNode.Featureserver[0])[0]; if(props == null) { return null; } return dataSource.getFeatureTypes(props); } private function updateFeatureServer(item:Object = null):void { if(layerNode != null && layerNode.Type != 'Group') { if(layerNode.child('Featureserver').length() > 0) { featureServer.selectedItem = dataSource.getProps(layerNode.Featureserver[0]); } else { featureServer.selectedIndex = -1; } if(featureServer.selectedItem != null) { if(layerNode.child('Featureserver').length() > 0) { getFeatureTypes().removeEventListener(CollectionEvent.COLLECTION_CHANGE, updateFeatureTypeName); } if(layerNode.child("Featureserver").length() == 0) { layerNode.appendChild(); } if(layerNode.Featureserver.@id != featureServer.selectedItem.@id) { layerNode.Featureserver.@id = featureServer.selectedItem.@id; } if(layerNode.Featureserver.@clientId != featureServer.selectedItem.@clientId) { layerNode.Featureserver.@clientId = featureServer.selectedItem.@clientId; } getFeatureTypes().addEventListener(CollectionEvent.COLLECTION_CHANGE, updateFeatureTypeName); } updateFeatureTypeName(); } } private function updateFeatureTypeName(item:Object = null):void { dispatchEvent(new Event("featureTypeChange")); if(layerNode != null && layerNode.Type != 'Group' && layerNode.child('Featureserver').length() > 0) { for each(var column:Object in ftGrid.columns) { column; } featureTypeName.dataProvider = getFeatureTypes(); featureType = getFeatureTypes().source.(Name == layerNode.FeatureTypeName.toString())[0]; featureTypeName.selectedItem = featureType; } else { featureTypeName.dataProvider = null; featureType = null; featureTypeName.selectedIndex = -1; } } private function updateServer(item:Object = null):void { if(layerNode != null && layerNode.Type != 'Group') { serverID.selectedItem = dataSource.getProps(layerNode.Server[0]); dataSource.getServerLayers(layerNode.Server[0]).removeEventListener(CollectionEvent.COLLECTION_CHANGE, updateServerLayerName); if(serverID.selectedItem != null) { if(layerNode.Server.@id != serverID.selectedItem.@id) { layerNode.Server.@id = serverID.selectedItem.@id; } if(layerNode.Server.@clientId != serverID.selectedItem.@clientId) { layerNode.Server.@clientId = serverID.selectedItem.@clientId; } dataSource.getServerLayers(layerNode.Server[0]).addEventListener(CollectionEvent.COLLECTION_CHANGE, updateServerLayerName); updateServerLayerName(); } } } private function updateServerLayerName(item:Object = null):void { if(layerNode != null && layerNode.Type != 'Group') { this.serverLayerName.dataProvider = dataSource.getServerLayers(layerNode.Server[0]); this.serverLayerName.selectedItem = dataSource.getServerLayers(layerNode.Server[0]).source .(Name.toString() == layerNode.Serverlayername) } } private function addFTProperty():void { layerNode.FTproperties.FTproperty += <Language>en</Language> <Title> <Language>nl</Language> <Title> <Language>de</Language> <Title> ; } private function removeFTProperty():void { delete layerNode.FTproperties.FTproperty[ftGrid.selectedIndex]; ftGrid.invalidateList(); } private function editableChanged():void { layerNode.Editable = editable.selected.toString() if(editable.selected) { layerNode.Selectable = "true"; selectable.selected = true; selectable.enabled = false; } else { selectable.enabled = true; } } public function featureTypeAttributeLabel(item:Object):String { return item.parent().@prefix + ":" + item.@name; } public function featureTypeAttributeCompare(item1:Object, item2:Object):Boolean { var name:String = item2.toString(); var index:Number = name.indexOf(":"); if(index != -1) { name = name.split(":")[1]; } return name == item1; } public function dataFeatureType(item:Object, featureTypeComboBox:FeatureTypeComboBox):void { if(item.Values_ftname.toString().length > 0) { var featureTypes:XMLListCollection = getFeatureTypes(); if(featureTypes.length > 0) { use namespace wfs; var featureType:XML = featureTypes.source.(Name.toString() == item.Values_ftname.toString())[0]; if(featureType != null) { featureTypeComboBox.elements = dataSource.getFeatureTypeAttributes(XML(featureServer.selectedItem), featureType); } } else { var setElements:Function = function():void { var featureType:XML = featureTypes.source.(Name.toString() == item.Values_ftname.toString())[0]; if(featureType != null) { featureTypeComboBox.elements = dataSource.getFeatureTypeAttributes(XML(featureServer.selectedItem), featureType); featureTypes.removeEventListener(CollectionEvent.COLLECTION_CHANGE, setElements); } }; featureTypes.addEventListener(CollectionEvent.COLLECTION_CHANGE, setElements); } } else { featureTypeComboBox.elements = null; } } ]]>