<?xml version="1.0" encoding="utf-8"?>
<AppPanel xmlns="bizLibrary.sharedComponent.*" 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	xmlns:model="cls.com.ils.biz.model.*" 	
	xmlns:ns1="commonLibrary.sharedComponent.*"
	title="Myメニュー設定"
	backgroundAlpha="1.0" 
	creationComplete="onCreationComplete();" 
	width="658" height="402" 
	>
    <!-- データモデルの定義 -->
	<model:SharedDataModel id="dataModel"/>

    <!-- コントロール → データモデルのバインド処理 -->
	<mx:Binding source="cmbSokuho.dataValue" destination="dataModel.resXml.data.sokuho" />

	<mx:Script>
		<![CDATA[
			import mx.managers.PopUpManager;
			import cls.com.ils.biz.ctrl.TsSharedSearch;
			import cls.com.ils.biz.utility.logging.AppLoggingTool;
			import cls.com.ils.biz.ctrl.TsSharedRegist;
			import cls.com.ils.biz.model.enum.ScreenItemName;
			import mx.events.DragEvent;

			[Bindable]
			private var _dataModel:XML =
		<menu>
			<mainMenu>
				<pg label="原因追求売上実績（得意先管理）" lastused="2008/04/04 12:00" kaisu="3" setumei="得意先ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
				<pg label="原因追求売上実績（商品管理）" lastused="2008/04/04 12:00" kaisu="3" setumei="商品ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
				<pg label="原因追求売上実績（メーカ管理）" lastused="2008/04/04 12:00" kaisu="3" setumei="部門、担当者ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
				<pg label="担当者別売上分析" lastused="2008/04/04 12:00" kaisu="3" setumei="部門、担当者ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
				<pg label="業種別売上実績" lastused="2008/04/04 12:00" kaisu="3" setumei="部門、担当者ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
				<pg label="営業所別売上実績" lastused="2008/04/04 12:00" kaisu="3" setumei="部門、担当者ごとのドリルダウン型売上分析が行えます。" dspObj="TS1010050" kidoKbn="1" kidoParm="A03"/>
			</mainMenu>
			<myMenu>
				<pg label="原因追求売上実績（組織管理）" lastused="2008/04/04 12:00" kaisu="3" setumei="部門、担当者ごとのドリルダウン型売上分析が行えます。" patternId="A03" sokuho=""/>
			</myMenu>
			<sokuho>A003</sokuho>
		</menu>
		;

			/**
			 * 共通初期化処理
			 * 
			 */		
			override public function onCreationComplete():void{
												
				// 初期にフォーカスを当てるオブジェクトを指定する
				srchFcsObject = this.dgMain;
				
				// データ取得
				dataModel.addParam("");									//検索区分
				var dataCtrl:TsSharedSearch = new TsSharedSearch("BV0030S",this);		
				dataCtrl.setOkFunction(setMenu);
				dataCtrl.searchCtrl(dataModel);
				
			}

			// 閉じる処理
			override public function close():void{			
			
				parentDisplay.enabled = true;				

				parentDisplay.focusManager.activate();
				this.focusManager.deactivate();
				PopUpManager.removePopUp(this);			
	
			}

			private function setMenu():void{
				dgMain.dataProvider = dataModel.resXml.data.mainMenu.pg;
				dgMyMenu.dataProvider = dataModel.resXml.data.myMenu.pg;
				changSeq();
				if(dataModel.resXml.data.sokuho == ""){
					//初期値
					cmbSokuho.text = cmbSokuho.selectedLabel;
				}
			}

	        public function selMenuOnClick():void {
				var sel:int = dgMain.selectedIndex;
				if(sel>=0){
	                dgMyMenu.dataProvider.addItem(dgMain.selectedItem);
		        	dgMain.dataProvider.removeItemAt(sel);
					if(sel>0){
						//フォーカスを移す
						dgMain.selectedIndex = sel - 1;
					}		
	                changSeq();
				}
	        }

	        public function delMenuOnClick():void {
				var sel:int = dgMyMenu.selectedIndex;
				if(sel>=0){
	                dgMain.dataProvider.addItem(dgMyMenu.selectedItem);
		        	dgMyMenu.dataProvider.removeItemAt(sel);
					if(sel>0){					
						//フォーカスを移す
						dgMyMenu.selectedIndex = sel - 1;
					}
	                changSeq();
				}
	        }

			// ドラッグ＆ドロップ後の処理
			private function onDragComplete():void{
				callLater(changSeq);
			}
			
			private function changSeq():void{
				// 優先順を付け直す
				var loopIndex:int;
//				AppLoggingTool.logger.debug("length:" + dgMyMenu.dataProvider.length)
				for(loopIndex=0;loopIndex < dgMyMenu.dataProvider.length;loopIndex++){
					dgMyMenu.dataProvider[loopIndex].@seq = loopIndex + 1;
				}
			}

			/**
			 * 共通ボタン初期化処理用メソッド
			 * 
			 */		
			override public function btnInit(value:Boolean):void{
				btnRegi.enabled = value;
				btnClose.enabled = value;
			} 

			// 登録処理
			private function regist():void{							
				btnInit(false);	
				if (this.validate() == true){
					dataModel.resXml.data.myMenu.pg = dgMyMenu.dataProvider.source;
					var regCtrl:TsSharedRegist = new TsSharedRegist("BV0030U",this);
					regCtrl.registCtrl(dataModel);
				}else{
					btnInit(true);	
				}
			}
			
			/**
			 * 成功時に行う処理の実態
			 * 
			 */
			override public function regiProcAfterProcCore():void{
		
				parentDisplay.init();
				super.regiProcAfterProcCore();

			}

		]]>
	</mx:Script>
	<mx:HBox left="10" right="10" top="10" bottom="40">
		<ns1:TsDataGrid id="dgMain"
			sortableColumns="false"
			dropEnabled="true"
			dragEnabled="true"
			dragMoveEnabled="true"
        	dragComplete="onDragComplete()"		
			height="100%" 
			width="100%">
			<ns1:columns>
			<mx:DataGridColumn dataField="@label" headerText="標準メニュー"/>
			</ns1:columns>
		</ns1:TsDataGrid>
		<mx:VBox height="100%">
			<mx:Spacer height="100%"/>
		    <mx:Button label="&gt;&gt;" id="btnSelMenu" click="selMenuOnClick()"/>
		    <mx:Button label="&lt;&lt;" id="btnDelMenu" click="delMenuOnClick()"/>
			<mx:Spacer height="100%"/>
		</mx:VBox>
		<ns1:TsDataGrid id="dgMyMenu"
			sortableColumns="false"
			dropEnabled="true"
			dragEnabled="true"
			dragMoveEnabled="true"
        	dragComplete="onDragComplete()"		
			height="100%" 
			width="100%">
			<ns1:columns>
			<mx:DataGridColumn dataField="@seq" headerText="表示順" width="45"/>
			<mx:DataGridColumn dataField="@label" headerText="Myメニュー"/>
			</ns1:columns>
		</ns1:TsDataGrid>
	</mx:HBox>
	<ns1:TsFormItem x="10" label="速報" labelWidth="30" bottom="10">
		<ns1:TsComboBox width="235" id="cmbSokuho" dataValue="{dataModel.resXml.data.sokuho}" dataProvider="{dataModel.resXml.data.menuList.item}"/>
	</ns1:TsFormItem>
	<mx:ControlBar>
		<mx:Spacer width="100%"/>
		<ns1:Button label="{ScreenItemName.BTN_REGI_NAME}" id="btnRegi" click="regist()"/>
		<ns1:CloseButton id="btnClose"/>
	</mx:ControlBar>	
</AppPanel>
