﻿
Ext.ux.SearchField=Ext.extend(Ext.form.TwinTriggerField,{initComponent:function(){Ext.ux.SearchField.superclass.initComponent.call(this);this.on('specialkey',function(f,e){if(e.getKey()==e.ENTER){e.preventDefault();this.onTrigger2Click();}
if(e.getKey()==e.ESC){e.preventDefault();this.onTrigger1Click();}},this);this.addEvents('search','clear');},validationEvent:false,validateOnBlur:false,trigger1Class:'x-form-clear-trigger',trigger2Class:'x-form-search-trigger',hideTrigger1:true,width:180,hasSearch:false,clearEmptySearch:true,afterRender:function(){Ext.ux.SearchField.superclass.afterRender.call(this);if(this.value&&this.value!=""){this.triggers[0].show.defer(10,this.triggers[0],[],false);this.triggers[0].show.defer(50,this.triggers[0],[],false);this.hasSearch=true;}else{this.triggers[1].show.defer(10,this.triggers[1],[],false);this.triggers[1].show.defer(50,this.triggers[1],[],false);}},onTrigger1Click:function(){if(this.hasSearch){this.el.dom.value='';this.fireEvent('clear',this);this.triggers[0].hide();this.hasSearch=false;if(this.emptyText){this.applyEmptyText.defer(150,this);}}},onTrigger2Click:function(){var v=this.getRawValue();if(this.clearEmptySearch&&v.length<1){this.onTrigger1Click();return;}
this.hasSearch=true;this.fireEvent('search',this,v);this.triggers[0].show();},setFilterValue:function(v){this.setRawValue(v)
this.hasSearch=true;this.triggers[0].show();},setValue:function(v){this.setFilterValue(v);}});Ext.reg('searchfield',Ext.ux.SearchField);