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 +=
en
nl
de
;
}
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;
}
}
]]>