<?xml version="1.0" encoding="utf-8"?>
<components:ExtendedTitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:components="components.*" xmlns:navigator="components.navigator.*">
	
	<mx:Script>
		<![CDATA[
			import data.DataSource;
			import mx.managers.PopUpManager;
			import mx.controls.listClasses.ListItemRenderer;
			
			[Bindable]
			public var items:XMLList;
			
			[Bindable]
			public var parentNode:XML;
			
			[Bindable]
			public var dataSource:DataSource;
			
			[Bindable]
			public var elementName:Object;
		
			private function ok():void {
				dataSource.addRef(XML(comboBox.selectedItem), parentNode);			
				PopUpManager.removePopUp(this);
			}
			
			[Bindable(name="propertyChange")]
			private function get comboBox() : ComboBox {
				for each(var child:Object in chooseNavigator.currentContainer.getChildren()) {
					if(child is ComboBox) {
						return child as ComboBox;
					}
				}
				
				return null;
			}
			
			[Bindable(name="propertyChange")]
			private function get listState() : String {
				return items.length() > 0 ? 'choose' : 'close';
			}
		]]>
	</mx:Script>
	
	<mx:Component id="itemRenderer">
		<mx:VBox paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0"
			verticalGap="-5" toolTip="{resourceManager.getString('language', 'Lbl_ExistingTitle') + ' ' + itemTitle}">
			<mx:Script>
				<![CDATA[
					[Bindable]
					private var serverTitle:String;
					
					[Bindable]
					private var itemTitle:String;
					
					override public function set data(value:Object):void {
						super.data = value;
						if(data.Server.length() > 0) {
							serverTitle = outerDocument.dataSource.getProps(data.Server[0])[0].Title;
						} else {
							serverTitle = null;
						}
						itemTitle = data.Titles.Title.(Language == String(resourceManager.localeChain[0]).substr(0, 2)).Title; 
					} 
				]]>
			</mx:Script>
		
			<mx:Label text="{data.Name}"/>
			<mx:Label fontStyle="italic" text="{serverTitle != null ? 
				(resourceManager.getString('language', 'Lbl_ExistingServer') + ' ' + serverTitle) 
				: resourceManager.getString('language', 'Lbl_ExistingNoServer') + ' '}"/>
		</mx:VBox>
	</mx:Component>
	
	<components:states>
		<mx:State name="choose">
			<mx:AddChild relativeTo="{box}">
				<components:Navigator id="chooseNavigator" elementName="{elementName}" resizeToMaxWidth="false"
					containerSwitch="{title = chooseNavigator.title}">
					<components:containers>
						<navigator:Element element="Map" direction="horizontal"
							title="{resourceManager.getString('language', 'Etl_Map')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingMap')}"/>
							<mx:ComboBox dataProvider="{items}" labelField="Name" itemRenderer="{itemRenderer}"
								width="200"/>
						</navigator:Element>
						<navigator:Element element="QueryAspect" direction="horizontal"
							title="{resourceManager.getString('language', 'Etl_QueryAspect')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingQueryAspect')}"/>
							<mx:ComboBox dataProvider="{items}" labelField="Name" itemRenderer="{itemRenderer}"
								width="200"/>
						</navigator:Element>
						<navigator:Element element="Layer" direction="horizontal" 
							title="{resourceManager.getString('language', 'Etl_Layer')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingLayer')}"/>
							<mx:ComboBox dataProvider="{items}" labelField="Name" itemRenderer="{itemRenderer}"
								width="200"/>
						</navigator:Element>
					</components:containers>
				</components:Navigator>
			</mx:AddChild>
			
			<mx:AddChild relativeTo="{bar}">
				<mx:Button label="{resourceManager.getString('language', 'Btn_OK')}"
					click="{ok()}"/>
			</mx:AddChild>			
			<mx:AddChild relativeTo="{bar}">
				<mx:Button label="{resourceManager.getString('language', 'Btn_Cancel')}" 
					click="{PopUpManager.removePopUp(this)}"/>
			</mx:AddChild>
		</mx:State>
		<mx:State name="close">
			<mx:AddChild relativeTo="{box}">
				<components:Navigator id="closeNavigator" elementName="{elementName}" resizeToMaxWidth="false"
					containerSwitch="{title = closeNavigator.title}">
					<components:containers>
						<navigator:Element element="Layer"
							title="{resourceManager.getString('language', 'Etl_Layer')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingNoUnusedLayer')}"/>
						</navigator:Element>
						<navigator:Element element="QueryAspect"
							title="{resourceManager.getString('language', 'Etl_QueryAspect')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingNoUnusedQueryAspect')}"/>
						</navigator:Element>
						<navigator:Element element="Map"
							title="{resourceManager.getString('language', 'Etl_Map')}">
							<mx:Label text="{resourceManager.getString('language', 'Lbl_ExistingNoUnusedMap')}"/>
						</navigator:Element>
					</components:containers>
				</components:Navigator>
			</mx:AddChild>
		
			<mx:AddChild relativeTo="{bar}">
				<mx:Button label="{resourceManager.getString('language', 'Btn_Close')}" 
					click="{PopUpManager.removePopUp(this)}"/>
			</mx:AddChild>
		</mx:State>
	</components:states>
	
	<components:currentState>{listState}</components:currentState>
	
	<mx:HBox id="box"/>

	<mx:ControlBar>
		<mx:HBox width="100%">
			<mx:HBox width="100%"/>
			<mx:HBox id="bar"/>
		</mx:HBox>
	</mx:ControlBar>
</components:ExtendedTitleWindow>