<?xml version="1.0" encoding="utf-8"?>
<IlsDateField xmlns="cls.com.ils.common.component.*" xmlns:mx="http://www.adobe.com/2006/mxml"
	editable="true"
	formatString="YYYY/MM/DD"
	parseFunction="{dateDisplay.parseDate}"					
	xmlns:fmt="commonLibrary.sharedFormatters.*"
	focusIn="IME.enabled = false" focusOut="IME.enabled = true"
	creationComplete="init()"
	>
	<fmt:TsDateFormatter id="dateDisplay" formatString="YYYY/MM/DD"/>
	<mx:Script>
		<![CDATA[
			import cls.com.ils.biz.model.enum.ActionMode;
			import mx.validators.Validator;
			import cls.com.ils.biz.model.enum.ActionMode;
			import commonLibrary.sharedValidators.DateValidator;
			import mx.events.FlexEvent;
			import mx.controls.dataGridClasses.DataGridListData;

			 [Bindable("dataChange")]
			// DataGridのデータプロパイダ
		    private var _ownerData:Object;

			private var _validator:DateValidator = new DateValidator();
		
			private function init():void
			{
				
				if (parentDocument.actionMode == ActionMode.DEL){
					// 削除の場合
					enabled=false;
				}
				else{
					//その他の場合
					enabled=true;
				}
				
		    	_validator.source = this;
				_validator.trigger = this;
		    	_validator.property = "text";
				_validator.triggerEvent="dataChange"
				
			}

			// データプロパイダのゲッター
		    override public function get data():Object
		    {
				
		       	// _ownerDataにデータプロパイダ設定前にdataを取得する場合がある。
		       	// この場合dataの初期値を返すため、nullチェックを行う。
		       	if(_ownerData != null){
					var col:DataGridListData = DataGridListData(listData);
					_ownerData[col.dataField] = this.text;			
		       	}
		        
		        return _ownerData;
		    }
		    
			// データプロパイダのセッター
		    override public function set data(pValue:Object):void
		    {
		        _ownerData = pValue;
				
		        if(_ownerData){
		            var col:DataGridListData = DataGridListData(listData);
		            this.text = _ownerData[col.dataField];
		        }
		        
		        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
		    }

			public function set validRequired(value:Boolean):void{
				_validator.required = value;
			}

			public function getValidator():Validator{
				return _validator;
			}

		]]>
	</mx:Script>
	
</IlsDateField>
