/* * gxui Library 1.1 beta (Build 1105) * Copyright (c) 2009, Artech * All rights reserved. * * gxui Library is freely distributable under the terms of the BSD license. * */ Ext.form.ColorField=function(config){Ext.form.ColorField.superclass.constructor.call(this,config);};Ext.extend(Ext.form.ColorField,Ext.form.TriggerField,{invalidText:"{0} is not a valid color - it must be in a the hex format {1}",triggerClass:'x-form-color-trigger',defaultAutoCreate:{tag:"input",type:"text",size:"10",maxlength:"7",autocomplete:"off"},maskRe:/[a-f0-9]/i,regex:/[a-f0-9]/i,validateValue:function(value){if(!Ext.form.ColorField.superclass.validateValue.call(this,value)){return false;} if(value.length<1){return true;} var parseOK=this.parseColor(value);if(!value||(parseOK==false)){this.markInvalid(String.format(this.invalidText,value,'#AABBCC'));return false;} return true;},validateBlur:function(){return!this.menu||!this.menu.isVisible();},getValue:function(){return Ext.form.ColorField.superclass.getValue.call(this)||"";},setValue:function(color){Ext.form.ColorField.superclass.setValue.call(this,this.formatColor(color));},parseColor:function(value){return(!value||(value.substring(0,1)!='#'))?false:true;},formatColor:function(value){if(value&&(this.parseColor(value)==false)){value='#'+value;} return value;},menuListeners:{select:function(e,c){this.setValue(c);},show:function(){this.onFocus();},hide:function(){this.focus();var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this);}},onTriggerClick:function(){if(this.disabled){return;} if(this.menu==null){this.menu=new Ext.menu.ColorMenu();} this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.show(this.el,"tl-bl?");}});Ext.ComponentMgr.registerType('colorfield',Ext.form.ColorField); Ext.ux.NestedViewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.ux.NestedViewport.superclass.initComponent.call(this);document.getElementsByTagName('html')[0].className+=' x-viewport';this.renderTo=Ext.get(this.renderTo);this.renderTo.addClass("x-nested");this.el=this.renderTo;this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll='no';this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);},fireResize:function(w,h){this.fireEvent('resize',this,w,h,w,h);}});Ext.reg('xnestedviewport',Ext.ux.NestedViewport); Ext.menu.EditableItem=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-item",hideOnClick:false,initComponent:function(){Ext.menu.EditableItem.superclass.initComponent.call(this);this.addEvents('keyup');this.editor=this.editor||new Ext.form.TextField();if(this.text){this.editor.setValue(this.text);}},onRender:function(container){var s=container.createChild({cls:this.itemCls,html:String.format('',this.icon||Ext.BLANK_IMAGE_URL,this.iconCls||'')});Ext.apply(this.config,{width:125});this.editor.render(s);this.el=s;this.relayEvents(this.editor.el,["keyup"]);if(Ext.isGecko){s.setStyle('overflow','auto');} Ext.menu.EditableItem.superclass.onRender.call(this,container);},getValue:function(){return this.editor.getValue();},setValue:function(value){this.editor.setValue(value);},isValid:function(preventMark){return this.editor.isValid(preventMark);}}); Ext.menu.RangeMenu=function(config){Ext.menu.RangeMenu.superclass.constructor.call(this,config);this.updateTask=new Ext.util.DelayedTask(this.fireUpdate,this);var cfg=this.fieldCfg;var cls=this.fieldCls;var fields=this.fields=Ext.applyIf(this.fields||{},{'gt':new Ext.menu.EditableItem({iconCls:'x-filter-icon-gt',editor:new cls(typeof cfg=="object"?cfg.gt||'':cfg)}),'lt':new Ext.menu.EditableItem({iconCls:'x-filter-icon-lt',editor:new cls(typeof cfg=="object"?cfg.lt||'':cfg)}),'eq':new Ext.menu.EditableItem({iconCls:'x-filter-icon-eq',editor:new cls(typeof cfg=="object"?cfg.gt||'':cfg)})});this.add(fields.gt,fields.lt,'-',fields.eq);for(var key in fields){fields[key].on('keyup',this.onKeyUp.createDelegate(this,[fields[key]],true),this);} this.addEvents('update');};Ext.extend(Ext.menu.RangeMenu,Ext.menu.Menu,{fieldCls:Ext.form.NumberField,fieldCfg:'',updateBuffer:500,fireUpdate:function(){this.fireEvent("update",this);},setValue:function(data){for(var key in this.fields){this.fields[key].setValue(data[key]!==undefined?data[key]:'');} this.fireEvent("update",this);},getValue:function(){var result={};for(var key in this.fields){var field=this.fields[key];if(field.isValid()&&String(field.getValue()).length>0){result[key]=field.getValue();}} return result;},onKeyUp:function(event,input,notSure,field){if(event.getKey()==event.ENTER&&field.isValid()){this.hide(true);return;} if(field==this.fields.eq){this.fields.gt.setValue(null);this.fields.lt.setValue(null);}else{this.fields.eq.setValue(null);} this.updateTask.delay(this.updateBuffer);}}); Ext.grid.GridFilters=function(config){this.filters=new Ext.util.MixedCollection();this.filters.getKey=function(o){return o?o.dataIndex:null};for(var i=0,len=config.filters.length;i=0){if(format.decimalSeparator!=='.'){value=value.slice(0,i)+format.decimalSeparator+value.slice(i+1);}}else{i=value.length;} if(format.groupingSeparator){while(i>format.groupingSize){i-=format.groupingSize;value=value.slice(0,i)+format.groupingSeparator+value.slice(i);}} if(format.currencySymbol){value=format.currencySymbol+value;} if(neg){value='-'+value;} return value;}}); Ext.ns("Ext.grid.filter");Ext.grid.filter.Filter=function(config){Ext.apply(this,config);this.events={'activate':true,'deactivate':true,'update':true,'serialize':true};Ext.grid.filter.Filter.superclass.constructor.call(this);this.menu=new Ext.menu.Menu();this.init();if(config&&config.value){this.setValue(config.value);this.setActive(config.active!==false,true);delete config.value;}};Ext.extend(Ext.grid.filter.Filter,Ext.util.Observable,{active:false,dataIndex:null,menu:null,init:Ext.emptyFn,fireUpdate:function(){this.value=this.item.getValue();if(this.active){this.fireEvent("update",this);} this.setActive(this.value.length>0);},isActivatable:function(){return true;},setActive:function(active,suppressEvent){if(this.active!=active){this.active=active;if(suppressEvent!==true){this.fireEvent(active?'activate':'deactivate',this);}}},getValue:Ext.emptyFn,setValue:Ext.emptyFn,serialize:Ext.emptyFn,validateRecord:function(){return true;}}); Ext.grid.filter.StringFilter=Ext.extend(Ext.grid.filter.Filter,{updateBuffer:500,init:function(){var value=this.value=new Ext.menu.EditableItem({iconCls:'x-filter-icon-find'});value.on('keyup',this.onKeyUp,this);this.menu.add(value);this.updateTask=new Ext.util.DelayedTask(this.fireUpdate,this);},onKeyUp:function(event){if(event.getKey()==event.ENTER){this.menu.hide(true);return;} this.updateTask.delay(this.updateBuffer);},isActivatable:function(){return this.value.getValue().length>0;},fireUpdate:function(){if(this.active){this.fireEvent("update",this);} this.setActive(this.isActivatable());},setValue:function(value){this.value.setValue(value);this.fireEvent("update",this);},getValue:function(){return this.value.getValue();},serialize:function(){var args={type:'string',value:this.getValue()};this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){var val=record.get(this.dataIndex);if(typeof val!="string"){return this.getValue().length==0;} return val.toLowerCase().indexOf(this.getValue().toLowerCase())>-1;}}); Ext.grid.filter.DateFilter=Ext.extend(Ext.grid.filter.Filter,{dateFormat:'m/d/Y',pickerOpts:{},beforeText:"Before",afterText:"After",onText:"On",init:function(){var opts=Ext.apply(this.pickerOpts,{minDate:this.minDate,maxDate:this.maxDate,format:this.dateFormat});var dates=this.dates={'before':new Ext.menu.CheckItem({text:this.beforeText,menu:new Ext.menu.DateMenu(opts)}),'after':new Ext.menu.CheckItem({text:this.afterText,menu:new Ext.menu.DateMenu(opts)}),'on':new Ext.menu.CheckItem({text:this.onText,menu:new Ext.menu.DateMenu(opts)})};this.menu.add(dates.before,dates.after,"-",dates.on);for(var key in dates){var date=dates[key];date.menu.on('select',this.onSelect.createDelegate(this,[date]),this);date.on('checkchange',function(){this.setActive(this.isActivatable());},this);};},onSelect:function(date,menuItem,value,picker){date.setChecked(true);var dates=this.dates;if(date==dates.on){dates.before.setChecked(false,true);dates.after.setChecked(false,true);}else{dates.on.setChecked(false,true);if(date==dates.after&&dates.before.menu.picker.valuevalue){dates.after.setChecked(false,true);}} this.fireEvent("update",this);},getFieldValue:function(field){return this.dates[field].menu.picker.getValue();},getPicker:function(field){return this.dates[field].menu.picker;},isActivatable:function(){return this.dates.on.checked||this.dates.after.checked||this.dates.before.checked;},setValue:function(value){for(var key in this.dates){if(value[key]){this.dates[key].menu.picker.setValue(value[key]);this.dates[key].setChecked(true);}else{this.dates[key].setChecked(false);}}},getValue:function(){var result={};for(var key in this.dates){if(this.dates[key].checked){result[key]=this.dates[key].menu.picker.getValue();}} return result;},serialize:function(){var args=[];if(this.dates.before.checked){args=[{type:'date',comparison:'lt',value:this.getFieldValue('before').format(this.dateFormat)}];} if(this.dates.after.checked){args.push({type:'date',comparison:'gt',value:this.getFieldValue('after').format(this.dateFormat)});} if(this.dates.on.checked){args={type:'date',comparison:'eq',value:this.getFieldValue('on').format(this.dateFormat)};} this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){var val=record.get(this.dataIndex).clearTime(true).getTime();if(this.dates.on.checked&&val!=this.getFieldValue('on').clearTime(true).getTime()){return false;} if(this.dates.before.checked&&val>=this.getFieldValue('before').clearTime(true).getTime()){return false;} if(this.dates.after.checked&&val<=this.getFieldValue('after').clearTime(true).getTime()){return false;} return true;}}); Ext.grid.filter.ListFilter=Ext.extend(Ext.grid.filter.Filter,{labelField:'text',loadingText:'Loading...',loadOnShow:true,value:[],loaded:false,phpMode:false,init:function(){this.menu.add(''+this.loadingText+'');if(this.store&&this.loadOnShow){this.menu.on('show',this.onMenuLoad,this);}else if(this.options){var options=[];for(var i=0,len=this.options.length;i-1,hideOnClick:false});item.itemId=records[i].id;item.on('checkchange',this.checkChange,this);this.menu.add(item);} this.setActive(this.isActivatable());this.loaded=true;if(visible){this.menu.show();}},checkChange:function(item,checked){var value=[];this.menu.items.each(function(item){if(item.checked){value.push(item.itemId);}},this);this.value=value;this.setActive(this.isActivatable());this.fireEvent("update",this);},isActivatable:function(){return this.value.length>0;},setValue:function(value){var value=this.value=[].concat(value);if(this.loaded){this.menu.items.each(function(item){item.setChecked(false,true);for(var i=0,len=value.length;i-1;}}); Ext.grid.filter.NumericFilter=Ext.extend(Ext.grid.filter.Filter,{init:function(){this.menu=new Ext.menu.RangeMenu();this.menu.on("update",this.fireUpdate,this);},fireUpdate:function(){this.setActive(this.isActivatable());this.fireEvent("update",this);},isActivatable:function(){var value=this.menu.getValue();return value.eq!==undefined||value.gt!==undefined||value.lt!==undefined;},setValue:function(value){this.menu.setValue(value);},getValue:function(){return this.menu.getValue();},serialize:function(){var args=[];var values=this.menu.getValue();for(var key in values){args.push({type:'numeric',comparison:key,value:values[key]});} this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){var val=record.get(this.dataIndex),values=this.menu.getValue();if(values.eq!=undefined&&val!=values.eq){return false;} if(values.lt!=undefined&&val>=values.lt){return false;} if(values.gt!=undefined&&val<=values.gt){return false;} return true;}}); Ext.grid.filter.BooleanFilter=Ext.extend(Ext.grid.filter.Filter,{defaultValue:false,yesText:"Yes",noText:"No",init:function(){var gId=Ext.id();this.options=[new Ext.menu.CheckItem({text:this.yesText,group:gId,checked:this.defaultValue===true}),new Ext.menu.CheckItem({text:this.noText,group:gId,checked:this.defaultValue===false})];this.menu.add(this.options[0],this.options[1]);for(var i=0;i ',width:20,sortable:false,email:false,excel:true,alwaysSelectOnCheck:false,menuDisabled:true,fixed:true,id:'checker',dataIndex:'',initEvents:function(){Ext.grid.SmartCheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on('render',function(){var view=this.grid.getView();view.on('columnmove',this.onColumnMove,this);view.mainBody.on('mousedown',this.onMouseDown,this);Ext.fly(view.innerHd).on('mousedown',this.onHdMouseDown,this);},this);this.rowNav.disable();this.rowNav2=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(e){if(!e.shiftKey){if(!this.email){this.selectPreviousChecked(e.shiftKey);} if(this.email){this.selectPrevious(e.shiftKey);}} else if(this.last!==false&&this.lastActive!==false){var last=this.last;if(!this.email){this.selectRangeChecked(this.last,this.lastActive-1);} if(this.email){this.selectRange(this.last,this.lastActive-1);} this.grid.getView().focusRow(this.lastActive);if(last!==false){this.last=last;}} else{this.selectFirstRow();if(!this.email){this.toggleChecked(0,true);}}},"down":function(e){if(!e.shiftKey){if(!this.email){this.selectNextChecked(e.shiftKey);} if(this.email){this.selectNext(e.shiftKey);}} else if(this.last!==false&&this.lastActive!==false){var last=this.last;if(!this.email){this.selectRangeChecked(this.last,this.lastActive+1);} if(this.email){this.selectRange(this.last,this.lastActive+1);} this.grid.getView().focusRow(this.lastActive,true);if(last!==false){this.last=last;}} else{this.selectFirstRow();if(!this.email){this.toggleChecked(0,true);}}},scope:this});this.grid.on('columnmove',function(p){var t=Ext.get('x-grid3-hd-checker');if(t!=null){if(t.dom.className!='x-grid3-hd-checker'){Ext.fly(t.dom.parentNode).removeClass('x-grid3-hd-checker');}}});if(this.grid.store){this.grid.store.on('load',function(p){var t=Ext.get('x-grid3-hd-checker');if(t!=null){if(t.dom.className=='x-grid3-hd-checker'&&Ext.state.Manager.loaded){var hd=Ext.fly(t.dom.parentNode);var isChecked=hd.hasClass('x-grid3-hd-checker-on');if(isChecked){hd.addClass('x-grid3-hd-checker-on');if(!this.email){this.selectAll();} this.selectAllChecked(true);}} else{Ext.fly(t.dom.parentNode).removeClass('x-grid3-hd-checker');}} var dataIndex=this.grid.getSelectionModel().dataIndex;var count=this.grid.store.getCount();for(var i=0,len=count;i=endRow;i--){if(this.grid.store.getAt(i)){this.toggleChecked(i,true);if(!this.email||this.alwaysSelectOnCheck){this.selectRow(i,true);}}}}},selectPreviousChecked:function(keepExisting){if(this.hasPrevious()){this.selectRow(this.last-1,keepExisting);this.grid.getView().focusRow(this.last);if(!this.email){this.toggleChecked(this.last,true);this.selectAllChecked(false,this.last);} return true;} return false;},selectNextChecked:function(keepExisting){if(this.hasNext()){if(!this.email){this.selectRow(this.last+1,keepExisting);} this.grid.getView().focusRow(this.last);if(!this.email){this.toggleChecked(this.last,true);this.selectAllChecked(false,this.last);} return true;} return false;},handleMouseDown:function(g,rowIndex,e){var t=e.getTarget('.ux-row-action-item');if(!t){if(e.button!==0||this.isLocked()){return;};var view=this.grid.getView();var record=this.grid.store.getAt(rowIndex);if(e.shiftKey&&this.last!==false){var last=this.last;this.selectRange(last,rowIndex,e.ctrlKey);if(!this.email){this.selectRangeChecked(last,rowIndex,e.ctrlKey);} this.last=last;view.focusRow(rowIndex);}else{var isChecked=record.data[this.dataIndex];var isSelected=this.isSelected(rowIndex);if(isSelected){this.deselectRow(rowIndex);if(!this.email){this.toggleChecked(rowIndex,false);}}else{if(!this.excel){this.selectRow(rowIndex,true);if(!this.email){this.toggleChecked(rowIndex,true);}} else{this.selectRow(rowIndex,e.ctrlKey);if(!this.email){this.selectRangeChecked(rowIndex,rowIndex,e.ctrlKey);}} view.focusRow(rowIndex);}}}},onMouseDown:function(e,t){if(t.className&&t.className.indexOf('x-grid3-cc-'+this.id)!=-1){e.stopEvent();var view=this.grid.getView();var rowIndex=view.findRowIndex(t);var record=this.grid.store.getAt(rowIndex);var isSelected=this.isSelected(rowIndex);var isChecked=record.data[this.dataIndex];if(!this.email||this.alwaysSelectOnCheck){if(isSelected){if(!isChecked&&this.alwaysSelectOnCheck){this.toggleChecked(rowIndex,true);} else{this.deselectRow(rowIndex);this.toggleChecked(rowIndex,false);}} else{this.selectRow(rowIndex,true);this.toggleChecked(rowIndex,true);view.focusRow(rowIndex);}} else{if(isChecked){this.toggleChecked(rowIndex,false);} else{this.toggleChecked(rowIndex,true);}} view.focusRow(rowIndex);} Ext.state.Manager.setProvider(new Ext.state.CookieProvider());Ext.state.Manager.loaded=true;},onHdMouseDown:function(e,t){if(t.className=='x-grid3-hd-checker'){e.stopEvent();var hd=Ext.fly(t.parentNode);var isChecked=hd.hasClass('x-grid3-hd-checker-on');if(isChecked){hd.removeClass('x-grid3-hd-checker-on');if(!this.email||this.alwaysSelectOnCheck){this.clearSelections();} this.clearChecked(true);}else{hd.addClass('x-grid3-hd-checker-on');if(!this.email||this.alwaysSelectOnCheck){this.selectAll();} this.selectAllChecked(true);}} Ext.state.Manager.setProvider(new Ext.state.CookieProvider());Ext.state.Manager.loaded=true;},renderer:function(v,p,record){p.css+=' x-grid3-check-col-td';return'
';}}); Ext.grid.RadioSelectionModel=function(config){Ext.grid.RadioSelectionModel.superclass.constructor.call(this,config);this.renderer=function(v,p,record){var checked=record===this.selections.get(0);var retval='
';return retval;}.createDelegate(this);};Ext.extend(Ext.grid.RadioSelectionModel,Ext.grid.RowSelectionModel,{header:'
',width:25,sortable:false,fixed:true,dataIndex:'',id:'radio',singleSelect:true,selectRow:function(index){Ext.grid.RadioSelectionModel.superclass.selectRow.apply(this,arguments);var row=Ext.fly(this.grid.view.getRow(index));if(row){row.child('input[type=radio]').dom.checked=true;}}}); Ext.grid.LockingGridPanel=Ext.extend(Ext.grid.GridPanel,{getView:function(){if(!this.view){this.view=new Ext.grid.LockingGridView(this.viewConfig);} return this.view;},initComponent:function(){if(!this.cm){this.cm=new Ext.grid.LockingColumnModel(this.columns);delete this.columns;} Ext.grid.LockingGridPanel.superclass.initComponent.call(this);}});Ext.grid.LockingEditorGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{getView:function(){if(!this.view){this.view=new Ext.grid.LockingGridView(this.viewConfig);} return this.view;},initComponent:function(){if(!this.cm){this.cm=new Ext.grid.LockingColumnModel(this.columns);delete this.columns;} Ext.grid.LockingEditorGridPanel.superclass.initComponent.call(this);}});Ext.grid.LockingGridView=Ext.extend(Ext.grid.GridView,{lockText:"Lock",unlockText:"Unlock",initTemplates:function(){if(!this.templates){this.templates={};} if(!this.templates.master){this.templates.master=new Ext.Template('
','
','
{lockedHeader}
','
{lockedBody}
','
','
','
{header}
','
{body}
','
','
 
','
 
','
');} Ext.grid.LockingGridView.superclass.initTemplates.call(this);},initElements:function(){var E=Ext.Element;var el=this.grid.getGridEl();el=el.dom.firstChild;var cs=el.childNodes;this.el=new E(el);this.lockedWrap=new E(cs[0]);this.lockedHd=new E(this.lockedWrap.dom.firstChild);this.lockedInnerHd=this.lockedHd.dom.firstChild;this.lockedScroller=new E(this.lockedWrap.dom.childNodes[1]);this.lockedBody=new E(this.lockedScroller.dom.firstChild);this.mainWrap=new E(cs[1]);this.mainHd=new E(this.mainWrap.dom.firstChild);this.innerHd=this.mainHd.dom.firstChild;this.scroller=new E(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle('overflow-x','hidden');} this.mainBody=new E(this.scroller.dom.firstChild);this.focusEl=new E(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new E(cs[2]);this.resizeProxy=new E(cs[3]);},getLockedRows:function(){return this.hasRows()?this.lockedBody.dom.childNodes:[];},getLockedRow:function(row){return this.getLockedRows()[row];},getCell:function(rowIndex,colIndex){var locked=this.cm.getLockedCount();var row;if(colIndex0&&colthis.innerHd.firstChild.firstChild.offsetHeight)?this.lockedInnerHd.firstChild.firstChild.offsetHeight:this.innerHd.firstChild.firstChild.offsetHeight;this.lockedInnerHd.firstChild.firstChild.style.height=height+'px';this.innerHd.firstChild.firstChild.style.height=height+'px';},doRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tw=this.cm.getTotalWidth();var lw=this.cm.getTotalLockedWidth();var clen=this.cm.getColumnCount();var lclen=this.cm.getLockedCount();var tstyle='width:'+this.getTotalWidth()+';';var buf=[],lbuf=[],cb,lcb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j0){Ext.removeNode(this.getLockedRow(row));}},getColumnData:function(){var cs=[],cm=this.cm,colCount=cm.getColumnCount();for(var i=0;ixy[1]){match=true;break;}} var overEvent=this.createEvent(dd,e,data,col,c,match&&p?pos:c.items.getCount());if(portal.fireEvent('validatedrop',overEvent)!==false&&portal.fireEvent('beforedragover',overEvent)!==false){px.getProxy().setWidth('auto');if(p){px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null);}else{px.moveProxy(c.el.dom,null);} this.lastPos={c:c,col:col,p:match&&p?pos:false};this.scrollPos=portal.body.getScroll();portal.fireEvent('dragover',overEvent);return overEvent.status;;}else{return overEvent.status;}},notifyOut:function(dd,e,data){delete this.grid;if(!this.lastPos){return;} var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p;var outEvent=this.createEvent(dd,e,data,col,c,pos!==false?pos:c.items.getCount());this.portal.fireEvent('dragout',outEvent);},notifyDrop:function(dd,e,data){delete this.grid;if(!this.lastPos){return;} var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p;var dropEvent=this.createEvent(dd,e,data,col,c,pos!==false?pos:c.items.getCount());if(this.portal.fireEvent('validatedrop',dropEvent)!==false&&this.portal.fireEvent('beforedrop',dropEvent)!==false){dd.proxy.getProxy().remove();dd.panel.el.dom.parentNode.removeChild(dd.panel.el.dom);if(pos!==false){c.insert(pos,dd.panel);}else{c.add(dd.panel);} if(dd.panel.resetPositioning){dd.panel.resetPositioning();dd.panel.setWidth('auto');} c.doLayout();this.portal.fireEvent('drop',dropEvent);var st=this.scrollPos.top;if(st){var d=this.portal.body.dom;setTimeout(function(){d.scrollTop=st;},10);}} delete this.lastPos;},getGrid:function(){var box=this.portal.bwrap.getBox();box.columnX=[];this.portal.items.each(function(c){box.columnX.push({x:c.el.getX(),w:c.el.getWidth()});});return box;}}); Ext.ux.PortalColumn=Ext.extend(Ext.Container,{layout:'anchor',autoEl:'div',defaultType:'portlet',cls:'x-portal-column'});Ext.reg('portalcolumn',Ext.ux.PortalColumn); Ext.ux.Portlet=Ext.extend(Ext.Panel,{anchor:'100%',frame:true,collapsible:true,draggable:true,cls:'x-portlet'});Ext.reg('portlet',Ext.ux.Portlet); gxui=function(){return{initialize:function(){Ext.QuickTips.init();Ext.namespace('gxui.ext');Ext.namespace('gxui.Properties');Ext.namespace('gxui.GX');Ext.namespace('gxui.ux');gx.fx.obs.addObserver('gx.onready',this,function(){if(gx){if(gx.staticDirectory!="") this.StaticContent=gx.staticDirectory;else this.StaticContent=this.getCookie('StaticContent');Ext.BLANK_IMAGE_URL=gx.util.resourceUrl(gx.basePath+this.StaticContent+"Shared/ext/resources/images/default/s.gif",true);}});Ext.state.Manager.setProvider(new Ext.state.CookieProvider({expires:new Date(new Date().getTime()+(1000*60*60*24*365))}));Ext.override(Ext.layout.FitLayout,{onLayout:function(ct,target){Ext.layout.FitLayout.superclass.onLayout.call(this,ct,target);if(!this.container.collapsed){var size=!Ext.isChrome&&target.dom!=Ext.getBody().dom?target.getStyleSize():target.getViewSize();this.setItemSize(this.activeItem||ct.items.itemAt(0),size);}}});Ext.override(Ext.dd.PanelProxy,{moveProxy:function(parentNode,before){if(this.proxy){if(Ext.isIE&&before==undefined){parentNode.insertBefore(this.proxy.dom);return;} parentNode.insertBefore(this.proxy.dom,before);}}});Ext.override(Ext.form.TextField,{onFocus:function(){Ext.form.TextField.superclass.onFocus.call(this);this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});},mimicBlur:function(e){if(this.el.dom!=e.target){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);this.onBlur();}},onDestroy:function(){if(this.mimicing){Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);} Ext.form.TextField.superclass.onDestroy.call(this);}});Ext.WindowMgr.zseed=800;},CBoolean:function(str){if(str){if(typeof(str)=='string') return(str.toLowerCase()=="true") return str;} else return false;},clone:function(obj){if(obj instanceof Array) return gxui.copyArray(obj);if(typeof(obj)!='object') return obj;if(obj==null) return obj;if(obj.clone) return obj.clone();var cloneObj=new Object();for(var i in obj) cloneObj[i]=gxui.clone(obj[i]);return cloneObj;},copyArray:function(arr){var res=[];for(var i=0;i0){c_start=document.cookie.indexOf(c_name+"=");if(c_start!=-1){c_start=c_start+c_name.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1)c_end=document.cookie.length;return unescape(document.cookie.substring(c_start,c_end));}} return"";},setCookie:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();} else expires="";document.cookie=name+"="+value+expires+"; path=/";},dateFormat:function(){var gxDF=gx.dateFormat;switch(gxDF){case"MDY":return"m/d/y";case"MDY4":return"m/d/Y";case"YMD":return"y/m/d";case"Y4MD":return"Y/m/d";case"DMY":return"d/m/y";case"DMY4":return"d/m/Y";}},date:function(string){return new Date.parseDate(string,this.dateFormat());},afterShow:function(fn,scope,options){gxui.UserControlManager.afterShow(fn,scope,options);}};}();gxui.initialize(); gxui.UserControl=function(options){this.setOptions(options) this.initialize();};Ext.extend(gxui.UserControl,Ext.util.Observable,{setOptions:function(options){this.options={register:true};for(property in(options||{})){this.options[property]=options[property];}},initialize:function(){this.rendered=false;this.addEvents({"show":true,"destroy":true});if(this.options.register) this.register();},show:function(){try{if(!this.rendered){this.rendered=true;this.onRender();} else{if(this.onRefresh) this.onRefresh();}} catch(e){gx.dbg.logEx(e,'gxui.js','show');} finally{this.fireEvent("show",this);}},forceRendering:function(){this.rendered=false;},destroy:function(){try{this.onDestroy();} catch(e){gx.dbg.logEx(e,'gxui.js','destroy');} this.fireEvent("destroy",this);},onRender:Ext.emptyFn,onRefresh:Ext.emptyFn,onDestroy:function(){var c=this.getUnderlyingControl();if(c){var ct=c.ownerCt;if(ct){if(ct.remove){ct.remove(c);}} else{if(c.destroy){c.destroy();}}}},getUnderlyingControl:Ext.emptyFn,register:function(){gxui.UserControlManager.register(this);},unregister:function(){gxui.UserControlManager.unregister(this);},registerCt:function(el,addFn,doLayoutFn,scope){gxui.UserControlManager.registerContainer(this,el,addFn,doLayoutFn,scope);},unregisterCt:function(toRem){gxui.UserControlManager.unregisterContainer(toRem);},addToParentContainer:function(uc){gxui.afterShow(function(){try{var el=Ext.get(this.getContainerControl());this.checkIfInline(el);for(var el=Ext.get(this.getContainerControl());el;el=el.parent("div")){var ct=gxui.UserControlManager.isRegisteredContainer(el.dom) this.checkIfInline(el);if(ct){if(ct.addFn){ct.addFn.createDelegate(ct.scope)(uc);if(ct.doLayoutFn) ct.doLayoutFn.createDelegate(ct.scope);} return;}}} catch(e){gx.dbg.logEx(e,'gxui.js','afterShowHandler->'+this.getUniqueId());}},this);},checkIfInline:function(el){if(el.id.indexOf("gxHTMLWrp")>=0||el.hasClass("gx_usercontrol")||el.hasClass("gxui-uc-container")) el.setStyle("display","inline");},getUniqueId:function(){return"gxui-"+(this.ParentObject?this.ParentObject.CmpContext||""+"-"+this.ParentObject.ServerClass||"":"")+"-"+this.ControlName;}});gxui.UserControlManager=function(){var ucList=[];var ctList=[];var afterShowEvent;var initAfterShow=function(){afterShowEvent=new Ext.util.Event();};var ucShowListener=function(uc){try{var ucListItem=this.isRegisteredUC(uc) if(ucListItem){ucListItem.shown=true;} var allShown=true;Ext.each(ucList,function(item){return allShown=item.shown&&allShown;},this);if(allShown&&afterShowEvent){afterShowEvent.fire();Ext.each(ucList,function(item){var extUC=item.uc.getUnderlyingControl();if(extUC&&!extUC.ownerCt&&extUC.doLayout){extUC.doLayout();} item.shown=false;},this);}} catch(e){gx.dbg.logEx(e,'gxui.js','ucShowListener');}};return{getUCList:function(){var l=[];Ext.each(ucList,function(item){l.push(item.uc);});return l;},getContainersList:function(){return ctList;},register:function(uc){ucList.push({uc:uc,shown:false});uc.on("show",ucShowListener,this);uc.on("destroy",function(uc){this.unregister(uc);this.unregisterContainer(uc);if(uc.afterShowHandler) afterShowEvent.removeListener(uc.afterShowHandler,uc);},this);},unregister:function(uc){var toRem=this.isRegisteredUC(uc);if(toRem) ucList.remove(toRem);},registerContainer:function(uc,el,addFn,doLayoutFn,scope){ctList.push({uc:uc,el:el,addFn:addFn,doLayoutFn:doLayoutFn,scope:scope});},unregisterContainer:function(obj){toRem=this.isRegisteredContainer(obj);if(toRem) ctList.remove(toRem);},isRegisteredUC:function(uc){var obj=null;Ext.each(ucList,function(item){if(uc==item.uc){obj=item;return false;}},this);return obj;},isRegisteredContainer:function(el){var ct=null;if(el.layout){Ext.each(ctList,function(item){if(el==item.scope){ct=item;return false;}},this);} else if(el.tagName){Ext.each(ctList,function(item){if(el==item.el){ct=item;return false;}},this);} else{uc=el;Ext.each(ctList,function(item){if(uc==item.uc){ct=item;return false;}},this);} return ct;},afterShow:function(fn,scope,options){if(!afterShowEvent) initAfterShow();scope.afterShowHandler=fn;afterShowEvent.addListener(fn,scope,options)}};}(); gxui.ext.Portal=Ext.extend(Ext.ux.Portal,{defaultType:'gxuiportalcolumn',initComponent:function(){gxui.ext.Portal.superclass.initComponent.apply(this);this.addEvents({dragout:true});},initEvents:function(){gxui.ext.Portal.superclass.initEvents.call(this);this.dd=new gxui.ext.Portal.DropZone(this,this.dropConfig);}});Ext.reg('gxuiportal',gxui.ext.Portal);gxui.ext.Portal.DropZone=function(portal,cfg){gxui.ext.Portal.DropZone.superclass.constructor.call(this,portal,cfg);};Ext.extend(gxui.ext.Portal.DropZone,Ext.ux.Portal.DropZone,{notifyOut:function(dd,e,data){delete this.grid;if(!this.lastPos){return;} var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p;var outEvent=this.createEvent(dd,e,data,col,c,pos!==false?pos:c.items.getCount());this.portal.fireEvent('dragout',outEvent);}});gxui.ext.PortalColumn=Ext.extend(Ext.ux.PortalColumn,{defaultType:'gxuiportlet'});Ext.reg('gxuiportalcolumn',gxui.ext.PortalColumn); gxui.ext.Portlet=Ext.extend(Ext.ux.Portlet,{collapsible:true,resizable:true,resizeHandles:'all',autoScroll:true,stateEvents:['collapse','expand'],initComponent:function(){gxui.ext.Portlet.superclass.initComponent.apply(this);this.on('beforecollapse',function(){this.expandedHeight=this.getBox().height;},this);var ownerCtDoLayout=function(){gxui.ext.LayoutManager.forceDoLayout(this.ownerCt);if(this.ownerCt&&this.ownerCt.ownerCt) gxui.ext.LayoutManager.forceDoLayout(this.ownerCt.ownerCt);};this.on('collapse',ownerCtDoLayout,this);this.on('expand',ownerCtDoLayout,this);this.on('resize',ownerCtDoLayout,this);},initEvents:function(){gxui.ext.Portlet.superclass.initEvents.call(this);this.el.on("mousedown",this.toFront,this);this.manager=gxui.ext.PortletManager;this.manager.register(this);},initDraggable:function(){this.dd=new gxui.ext.Portlet.DD(this,this.dropConfig);},render:function(){gxui.ext.Portlet.superclass.render.apply(this,arguments);if(this.st){if(this.st.column){if(this.st.elPositioning) this.getEl().setPositioning(this.st.elPositioning);var col=Ext.getCmp(this.st.column);if(col){var xt=col.getXType();if(xt=="gxuiportalcolumn"){this.getEl().dom.parentNode.removeChild(this.getEl().dom);if(this.st.columnPos!=undefined) col.insert(this.st.columnPos,this);else col.add(this);col.doLayout();} if(xt=="panel"){if(this.expandedHeight) this.setHeight(this.expandedHeight);col.add(this);}}}} this.createResizer();},doFloat:function(width,x,y){this.resetPositioning();this.getEl().setStyle('position','absolute');this.setWidth(width);var points=this.getEl().parent().translatePoints(x,y);this.getEl().setLeftTop(points.left,points.top);},undoFloat:function(){this.resetPositioning();this.setWidth('auto');},resetPositioning:function(){this.getEl().setPositioning({'position':"static",'left':"auto",'top':"auto",'bottom':"",'right':""});},getState:function(){return Ext.apply(Ext.apply(gxui.ext.Portlet.superclass.getState.call(this)||{},this.getBox()),{st:{column:(this.ownerCt)?this.ownerCt.id:null,columnPos:(this.ownerCt)?this.ownerCt.items.indexOf(this):null,elPositioning:this.getEl().getPositioning(),expandedHeight:this.expandedHeight},collapsed:this.collapsed,resizeHandles:this.resizeHandles});},createResizer:function(resizeHandles){this.destroyResizer();if(this.resizable&&!this.resizer){var overrideCreateProxy=(this.ownerCt&&this.ownerCt.getXType()=="gxuiportalcolumn");var createProxyProtoType=Ext.Element.prototype.createProxy;if(overrideCreateProxy){resizeHandles='s';Ext.Element.prototype.createProxy=function(config){return Ext.DomHelper.append(this.dom,config,true);};} var resConfig={minWidth:this.minWidth||200,minHeight:this.minHeight||100,handles:resizeHandles||this.resizeHandles||"all",transparent:true,pinned:this.pinned,resizeElement:this.resizerAction};if(this.maxWidth) resConfig.maxWidth=this.maxWidth;if(this.maxHeight) resConfig.maxHeight=this.maxHeight;this.resizer=new Ext.Resizable(this.el,resConfig);this.resizer.window=this;this.resizer.on('resize',this.onResizer,this);this.resizer.on("beforeresize",this.beforeResize,this);if(overrideCreateProxy){resizeHandles='s';Ext.Element.prototype.createProxy=createProxyProtoType;}}},destroyResizer:function(){if(this.resizer){this.resizer.destroy() delete this.resizer;this.un('beforeresize',this.beforeResize,this);this.un('resize',this.onResizer,this);}},onResizer:function(oResizable,iWidth,iHeight,e){this.setHeight(iHeight);},onCollapse:function(doAnim,animArg){this.el.setHeight('');Ext.ux.Portlet.superclass.onCollapse.call(this,doAnim,animArg);},toFront:function(){this.manager.bringToFront(this) return this;},setZIndex:function(index){this.el.setStyle("z-index",++index);index+=5;if(this.resizer){this.resizer.proxy.setStyle("z-index",++index);} this.saveState();this.lastZIndex=index;},resizerAction:Ext.Window.prototype.resizerAction,beforeResize:function(){this.resizeBox=this.el.getBox();},handleResize:Ext.Window.prototype.handleResize,updateHandles:Ext.Window.prototype.updateHandles,onDestroy:function(){if(this.manager){this.manager.unregister(this);} gxui.ext.Portlet.superclass.onDestroy.call(this);}});Ext.reg('gxuiportlet',gxui.ext.Portlet);gxui.ext.Portlet.DD=function(portlet,cfg){this.portlet=portlet;gxui.ext.Portlet.DD.superclass.constructor.call(this,portlet,cfg);};Ext.extend(gxui.ext.Portlet.DD,Ext.Panel.DD,{startDrag:function(){this.proxy.getProxy().remove();},onDragOut:function(e){this.proxy.getProxy().remove();},endDrag:function(e){this.proxy.hide();this.panel.saveState();}});gxui.ext.PortletManager=function(){var list={};var accessList=[];var front=null;var sortPortlets=function(d1,d2){return(!d1._lastAccess||d1._lastAccess0){a.sort(sortPortlets);var seed=a[0].manager.zseed;for(var i=0;i=0){return this.getMargins(regionKey,prop);} else if(propName=="CollapseMode"){return prop=="mini"?"mini":undefined;} else if(propName=="Layout"){return prop=="default"?undefined:prop;} else return prop;},setRegionProperty:function(regionKey,propName,value){if(regionKey){var r=regionKey.toLowerCase();r=r.charAt(0).toUpperCase()+r.substr(1);if(this[r+propName]){this[r+propName]=value;}}},createConfig:function(regionKey){var lstnrs={'render':{fn:function(r){gxui.ext.LayoutManager.register(r);if(this.getProperty(regionKey,"DragDropMode")=="floating"){r.dt=new gxui.ext.FloatingDropTarget(r);if(r.region=='north') r.getEl().setStyle({"z-index":1});}},scope:this}};return{id:this.getUniqueId()+"-"+regionKey,region:regionKey.toLowerCase(),contentEl:this.getChildContainer(regionKey),hidden:this.getProperty(regionKey,"Hidden"),split:this.getProperty(regionKey,"Split"),autoScroll:(this.getProperty(regionKey,"DragDropMode")=="portal"||this.getProperty(regionKey,"Layout")!="fit")?this.getProperty(regionKey,"AutoScroll"):false,header:this.getProperty(regionKey,"TitleBar"),title:this.getProperty(regionKey,"Title"),width:this.getProperty(regionKey,"Width"),height:this.getProperty(regionKey,"Height"),minWidth:this.getProperty(regionKey,"MinWidth")||0,minHeight:this.getProperty(regionKey,"MinHeight")||0,maxWidth:this.getProperty(regionKey,"MaxWidth")||0,maxHeight:this.getProperty(regionKey,"MaxHeight")||0,margins:this.getProperty(regionKey,"Margins"),collapsible:this.getProperty(regionKey,"Collapsible"),collapseMode:this.getProperty(regionKey,"CollapseMode"),collapsed:this.getProperty(regionKey,"Collapsed"),cmargins:this.getProperty(regionKey,"CollapsedMargins"),cls:"x-region-"+regionKey.toLowerCase(),floatable:this.getProperty(regionKey,"Floatable"),autoHide:this.getProperty(regionKey,"AutoHide"),animate:this.getProperty(regionKey,"Animate"),animFloat:this.getProperty(regionKey,"Animate"),duration:this.getProperty(regionKey,"Duration")/1000,xtype:(this.getProperty(regionKey,"DragDropMode")=="portal")?"gxuiportal":undefined,items:(this.getProperty(regionKey,"DragDropMode")=="portal")?[{columnWidth:1}]:undefined,layout:(this.getProperty(regionKey,"DragDropMode")=="portal")?"column":this.getProperty(regionKey,"Layout"),border:this.getProperty(regionKey,"Border"),listeners:lstnrs};},addRegion:function(items,regionKey){items.push(this.createConfig(regionKey));},displayRegions:function(){Ext.each(this.m_layout.items.items,function(region,index,allRegions){Ext.get(region.contentEl).setDisplayed(true);},this);},registerAsContainer:function(){Ext.each(this.m_layout.items.items,function(region,index,allRegions){if(region.getXType()=='gxuiportal') Ext.each(region.items.items,function(col,colIdx,allCols){this.registerCt(region.contentEl,col.add,col.doLayout,col);},this);else this.registerCt(region.contentEl,region.add,region.doLayout,region);},this);},getRegion:function(regionKey){if(regionKey){if(this.m_layout.layout[regionKey.toLowerCase()]){return this.m_layout.layout[regionKey.toLowerCase()].panel;}} return undefined;},refreshRegion:function(regionKey){var region=this.getRegion(regionKey);if(region){region.setTitle(this.getProperty(regionKey,"Title"));}},collapseRegion:function(regionKey,animate){var region=this.getRegion(regionKey);if(region){region.collapse(animate);this.setRegionProperty(regionKey,"Collapsed","true");}},expandRegion:function(regionKey,animate){var region=this.getRegion(regionKey);if(region){region.expand(animate);this.setRegionProperty(regionKey,"Collapsed","false");}},hideRegion:function(regionKey){var region=this.getRegion(regionKey);if(region){region.hide();this.m_layout.doLayout();this.setRegionProperty(regionKey,"Hidden","true");}},showRegion:function(regionKey){var region=this.getRegion(regionKey);if(region){region.show();this.m_layout.doLayout();this.setRegionProperty(regionKey,"Hidden","false");}}}); gxui.TabPanel=Ext.extend(gxui.UserControl,{m_tabPanel:null,m_designTabs:[],m_activeTab:0,initialize:function(){gxui.TabPanel.superclass.initialize.call(this);this.HandleUniqueId=true;},SetRunTimeTabs:function(data){this.RunTimeTabs=data;},GetRunTimeTabs:function(){return this.RunTimeTabs;},onRender:function(){if(this.RunTimeTabs) Ext.each(this.RunTimeTabs,function(tab,index,allTabs){tab.InternalName='';},this);this.m_designTabs=Ext.util.JSON.decode(this.DesignTimeTabs);var tabCount=0;if(this.m_designTabs!=undefined&&this.m_designTabs.length!=undefined) tabCount+=this.m_designTabs.length;if(this.RunTimeTabs!=undefined&&this.RunTimeTabs.length!=undefined) tabCount+=this.RunTimeTabs.length;if(tabCount>0){this.m_tabPanel=new Ext.TabPanel(this.getConfig());this.m_tabPanel.setActiveTab(this.m_activeTab);this.m_tabPanel.on('tabchange',this.handlers.tabChanged,this);this.m_tabPanel.strip.on('mousedown',this.handlers.tabStripClick,this);this.registerAsContainer();if(gxui.CBoolean(this.AddToParentGxUIControl)){this.addToParentContainer(this.m_tabPanel);} this.displayTabPanels();}},onRefresh:function(){var setActiveTab=false;Ext.each(this.getTabPanelsList(),function(tab,index,allTabs){this.m_tabPanel.add(tab);this.registerAsContainer(tab);setActiveTab=true;},this);if(setActiveTab){this.m_tabPanel.setActiveTab(this.m_activeTab);}},onDestroy:function(){this.m_tabPanel.items.each(function(tab){this.unregisterCt(tab);},this);gxui.TabPanel.superclass.onDestroy.call(this);},getUnderlyingControl:function(){return this.m_tabPanel;},getConfig:function(){var config={id:this.getUniqueId(),renderTo:this.getContainerControl(),tabPosition:this.TabPosition||"top",deferredRender:false,border:gx.lang.gxBoolean(this.Border),autoWidth:gxui.CBoolean(this.AutoWidth),autoHeight:gxui.CBoolean(this.AutoHeight),enableTabScroll:(this.TabPosition=="top")?gxui.CBoolean(this.EnableTabScroll):false,minTabWidth:this.MinTabWidth,items:this.getTabPanelsList(),listeners:{activate:this.handlers.tabItemActivated,deactivate:this.handlers.tabItemDeactivated,remove:this.handlers.tabItemClosed,beforeRemove:this.handlers.tabItemBeforeClosed,scope:this}};if(gxui.CBoolean(this.AutoWidth)){if(!gxui.CBoolean(this.AddToParentGxUIControl)){config.cls="auto-width-tab-strip";}} else{config.width=parseInt(this.Width);} if(!gxui.CBoolean(this.AutoHeight)){config.height=parseInt(this.Height);} if(this.Cls){config.cls+=" "+this.Cls;} return config;},getTabPanelsList:function(){var rawTabs=(this.RunTimeTabs&&this.RunTimeTabs.length)?this.m_designTabs.concat(this.RunTimeTabs):this.m_designTabs;var tabPanels=[];Ext.each(rawTabs,function(tab,index,allTabs){var panel;if(index>=this.m_designTabs.length) tab.isRuntimeTab=true;if(!tab.rendered){var webcomEl;if(!tab.isRuntimeTab){var titleEl=Ext.get(this.getChildContainer("Title"+tab.id));if(titleEl){tab.Name=titleEl.dom.innerHTML;titleEl.dom.parentNode.removeChild(titleEl.dom);}} else webcomEl=this.getWebComEl(index);if(tab.isRuntimeTab){if(!tab.HTML){tab.InternalName=(webcomEl)?webcomEl.id:null;}} else{tab.InternalName=tab.id;} if(tab.InternalName){var layout=tab.layout||this.Layout;var config={id:this.getTabUniqueId(tab.InternalName),layout:layout=="default"?undefined:layout,contentEl:!tab.HTML?(tab.isRuntimeTab?webcomEl:this.getChildContainer(tab.id)):undefined,html:tab.HTML,title:tab.Name,closable:(tab.isRuntimeTab)?(tab.closable!==undefined?gxui.CBoolean(tab.closable):true):gxui.CBoolean(tab.closable),autoScroll:tab.autoScroll||(layout=='fit'?false:true),listeners:{activate:this.handlers.tabItemActivated,deactivate:this.handlers.tabItemDeactivated,scope:this}};if(this.TabCls) config.cls=this.TabCls;panel=new Ext.Panel(config);tab.rendered=true;tabPanels.push(panel);} else return;} else{panel=this.m_tabPanel.items.items[index];if(tab.isRuntimeTab&&!tab.HTML){var webcomEl=this.getWebComEl(index);tab.InternalName=webcomEl.id;panel.contentEl=webcomEl.dom;var panelDom=panel.body.dom;if(panelDom.firstChild) panelDom.removeChild(panelDom.firstChild);panelDom.appendChild(panel.contentEl);}} if(gxui.CBoolean(tab.selected)||gxui.CBoolean(tab.Selected)) this.m_activeTab=panel;},this);return tabPanels;},getWebComEl:function(index){var Prefix=this.ParentObject.getComponentPrefix(this.RunTimeWebComponent);webcomEl=Ext.get(this.ParentObject.CmpContext+'gxHTMLWrp'+Prefix+String(index-this.m_designTabs.length+1+10000).substr(1));return webcomEl;},displayTabPanels:function(){Ext.each(this.m_designTabs,function(tab,index,allTabs){Ext.get(this.getChildContainer(tab.id)).setDisplayed(true)},this);},registerAsContainer:function(t){if(t){this.registerCt(Ext.get(t.contentEl||t.body).dom,t.add,t.doLayout,t);} else{Ext.each(this.m_tabPanel.items.items,function(tab,index,allTabs){this.registerCt(Ext.get(tab.contentEl||tab.body).dom,tab.add,tab.doLayout,tab);},this);}},handlers:{tabChanged:function(tab,tabItem){if(this.TabChanged){this.TabChanged();}},tabItemActivated:function(tabItem){this.ActiveTabId=tabItem.id;if(this.RunTimeTabs) Ext.each(this.RunTimeTabs,function(item,index,allItems){if(this.getTabUniqueId(item.InternalName)==tabItem.id){item.Selected=true;return false;}},this);},tabItemDeactivated:function(tabItem){if(this.RunTimeTabs) Ext.each(this.RunTimeTabs,function(item,index,allItems){if(this.getTabUniqueId(item.InternalName)==tabItem.id){item.Selected=false;return false;}},this);},tabItemClosed:function(tabpanel,tabItem){if(this.RunTimeTabs){var rtt=new Array();Ext.each(this.RunTimeTabs,function(tab,index,allTabs){if(this.getTabUniqueId(tab.InternalName)!=tabItem.id){rtt.push(tab);} else{if(!tab.HTML){this.deleteWebComponent(tabItem.contentEl.id);}}},this);this.RunTimeTabs=rtt;} if(this.TabClosed){this.ClosedTabId=tabItem.id;this.TabClosed();}},tabItemBeforeClosed:function(tabPanel,tabItem){if(this.BeforeTabClosed){this.ClosedTabId=tabItem.id;this.CancelEvent=false;this.BeforeTabClosed();return!this.CancelEvent;}},tabStripClick:function(e){if(e.button!=0){return;} var t=this.m_tabPanel.findTargets(e);if(t.close){return;} if(t.item){if(this.TabClick){this.ActiveTabId=t.item.id;this.TabClick();}}}},getTabUniqueId:function(tabId){if(gxui.CBoolean(this.HandleUniqueId)) return this.getUniqueId()+"_tab_"+tabId;else return tabId;},OpenTab:function(tabId,title,tabHTMLContent,closable){if(this.IsTabOpen(tabId)){this.m_activeTab=this.getTabUniqueId(tabId);} else{this.RunTimeTabs.push({Name:title,InternalName:tabId,HTML:tabHTMLContent,Selected:true,closable:closable});Ext.each(this.getTabPanelsList(),function(tab,index,allTabs){this.m_tabPanel.add(tab);this.m_tabPanel.doLayout();this.registerAsContainer(tab);},this);} this.m_tabPanel.setActiveTab(this.m_activeTab);},CloseTab:function(tabId){if(this.IsTabOpen(tabId)){var tab=this.m_tabPanel.findById(this.getTabUniqueId(tabId));if(tab){this.m_tabPanel.remove(tab,true);}}},SelectTab:function(tabId){this.m_activeTab=this.getTabUniqueId(tabId);this.m_tabPanel.setActiveTab(this.m_activeTab);},IsTabOpen:function(tabId){var tab=this.m_tabPanel.findById(this.getTabUniqueId(tabId));return(tab)?true:false;},ShowTab:function(i){this.m_tabPanel.unhideTabStripItem(i);},HideTab:function(i){this.m_tabPanel.hideTabStripItem(i);},SetTabDirty:function(tabId,dirty){var tab=this.m_tabPanel.findById(this.getTabUniqueId(tabId));if(tab){tab.dirty=dirty;var tabEl=Ext.get(this.m_tabPanel.id+"__"+tab.id);var tabTextEl=tabEl.query(".x-tab-strip-text")[0];if(tabTextEl){if(Ext.isIE){if(dirty){tabTextEl.innerHTML+="*";} else{if(tabTextEl.innerHTML.charAt(tabTextEl.innerHTML.length-1)=="*") tabTextEl.innerHTML=tabTextEl.innerHTML.substring(0,tabTextEl.innerHTML.length-1);}} else{tabTextEl=Ext.get(tabTextEl);if(dirty){tabTextEl.addClass("x-tab-strip-dirty");} else{tabTextEl.removeClass("x-tab-strip-dirty");}}}}},IsTabDirty:function(tabId){var tab=this.m_tabPanel.findById(this.getTabUniqueId(tabId));return tab&&(tab.dirty==true);},SetTabTitle:function(tabId,title){var tab=this.m_tabPanel.findById(this.getTabUniqueId(tabId));if(tab){tab.setTitle(title);this.SetTabDirty(tabId,tab.dirty||false);}}}); gxui.Toolbar=Ext.extend(gxui.UserControl,{m_toolbar:null,initialize:function(){gxui.Toolbar.superclass.initialize.call(this);this.Width;this.Height;this.Data;this.ButtonPressedId="";this.EditFieldValue="";this.addEvents({"beforebuttonpressed":true,"buttonpressed":true,"editfieldkeypress":true,"editfieldblur":true});},SetData:function(data){this.Data=data;},GetData:function(data){return this.Data;},GetToolbar:function(add){return this.m_toolbar;},onRender:function(){this.CreateToolbar().render(this.getContainerControl());},onRefresh:function(){this.refreshButtons(this.Data.Buttons,this.m_toolbar.items);},getUnderlyingControl:function(){return this.m_toolbar;},CreateToolbar:function(options){if(options){if(options.id){this.getUniqueId=function(){return options.id;};} if(options.data){this.SetData(options.data);} if(options.container){options.container.ButtonActionHandler=this.ButtonActionHandler;options.container.EditActionHandler=this.EditActionHandler;this.ButtonActionHandler=this.ButtonActionHandler.createDelegate(options.container);this.EditActionHandler=this.EditActionHandler.createDelegate(options.container);} if(options.on){this.on(options.on);}} this.m_toolbar=new Ext.Toolbar({id:this.getUniqueId(),stateful:false,buttons:this.CreateButtons()});return this.m_toolbar;},CreateButtons:function(){var toolbarItems=[];if(this.Data&&this.Data.Buttons){Ext.each(this.Data.Buttons,function(item,index,allItems){if(!item.Type){item.Type=gxui.Toolbar.ItemType.Button;} toolbarItems.push(this.GetConfig(item));if(this.SeparateAll&&allItems[index+1]) toolbarItems.push('-');},this);} return toolbarItems;},ButtonClickHandler:function(btn,e){if(this.fireEvent("beforebuttonpressed",this,btn,e)!==false){if(btn.gxConfirmation){var processResult=function(option,text){if(option=='ok') this.ButtonActionHandler(btn,e);};Ext.Msg.getDialog().defaultButton=3;var msgBox=Ext.Msg.show({title:btn.gxConfirmation.Title,msg:btn.gxConfirmation.Message,buttons:{ok:btn.gxConfirmation.OKButtonText,cancel:btn.gxConfirmation.CancelButtonText},fn:processResult,scope:this,animEl:btn.getEl(),icon:Ext.MessageBox.QUESTION});setTimeout(function(){Ext.Msg.getDialog().defaultButton=0;},500);} else{this.ButtonActionHandler(btn,e);} this.fireEvent("buttonpressed",this,btn,e);}},ButtonActionHandler:function(btn,e){if(this.ButtonPressed){this.ButtonPressedId=btn.gxid;this.ButtonPressed(btn);}},EditActionHandler:function(field){this.EditFieldValue=field.getValue();this.ButtonActionHandler(field);},GetConfig:function(button){var getBtnCls=function(btn){if(!btn.Cls){if(btn.Icon){return(btn.Text)?"x-btn-text-icon":"x-btn-icon";} else{return"x-btn-text";}} return btn.Cls;};var config;if(button.id&&button.id.indexOf("ext")==0) return button;if(!button.Type||button.Type==gxui.Toolbar.ItemType.Button){button.Type=gxui.Toolbar.ItemType.Button;config={id:this.getUniqueButtonId(button.Id),gxid:button.Id,gxConfirmation:gxui.CBoolean(button.AskConfirmation)?button.Confirmation:false,text:button.Text,tooltip:button.Tooltip,icon:button.Icon,iconCls:button.IconCls,cls:getBtnCls(button),enableToggle:gxui.CBoolean(button.EnableToggle),pressed:gxui.CBoolean(button.Pressed),disabled:gxui.CBoolean(button.Disabled),hidden:gxui.CBoolean(button.Hidden),handler:this.ButtonClickHandler,isDropTarget:gxui.CBoolean(button.IsDropTarget),scope:this,RefreshData:gxui.CBoolean(button.RefreshData)};} else{if(button.Type==gxui.Toolbar.ItemType.Text){config=button.Text;} else{if(button.Type==gxui.Toolbar.ItemType.Edit){config=new Ext.form.TextField({id:this.getUniqueButtonId(button.Id),cls:button.Cls,width:180,disabled:gxui.CBoolean(button.Disabled),hidden:gxui.CBoolean(button.Hidden),enableKeyEvents:true});if(button.Text!='') config.emptyText=button.Text;config.on({"keypress":{fn:function(field,e){this.fireEvent("editfieldkeypress",this,field,e);if(e.getKey()==Ext.EventObject.ENTER){e.stopEvent();this.EditActionHandler(field);}},scope:this},"blur":{fn:function(field){this.fireEvent("editfieldblur",this,field);this.EditActionHandler(field);},scope:this}});config.gxid=button.Id;} else{if(button.Type==gxui.Toolbar.ItemType.Fill){config=new Ext.Toolbar.Fill();} else{if(button.Type==gxui.Toolbar.ItemType.Separator){config="-";} else{if(button.Type==gxui.Toolbar.ItemType.Menu||button.Type==gxui.Toolbar.ItemType.SplitButton){var menuItems=[];Ext.each(button.Items,function(item,index,allItems){menuItems.push(this.GetConfig(item));},this);config={text:button.Text,tooltip:button.Tooltip,hidden:gxui.CBoolean(button.Hidden),icon:button.Icon,iconCls:button.IconCls,menu:menuItems,cls:getBtnCls(button),disabled:gxui.CBoolean(button.Disabled)};if(button.Type==gxui.Toolbar.ItemType.SplitButton){config.gxid=button.Id;config.gxConfirmation=gxui.CBoolean(button.AskConfirmation)?button.Confirmation:false;config.xtype='tbsplit';config.enableToggle=gxui.CBoolean(button.EnableToggle);config.pressed=gxui.CBoolean(button.Pressed);if(gxui.CBoolean(button.EnableToggle)){config.toggleHandler=this.ButtonClickHandler;} else{config.handler=this.ButtonClickHandler;} config.scope=this;}} else{if(button.Type=="Search"){config=new Ext.app.SearchField({store:button.Store,width:button.Width,enableKeyEvents:gxui.CBoolean(button.AutoRefresh),listeners:{'keydown':{fn:function(field,e){if(e.getKey()!=e.TAB){this.onTrigger2Click();}},buffer:button.AutoRefreshTimeout||350}}});config.on('resize',function(field){field.getEl().setWidth(button.Width-17);field.getEl().parent().setWidth(button.Width);});button.Store='undefined';}}}}}}} return config;},defineBtnsDropTarget:function(){this.m_toolbar.items.each(function(item,pos){if(item.type=="button"&&item.isDropTarget){var dt=new Ext.dd.DropTarget(item.getEl(),{ddGroup:'GridDD'});dt._btn=item;dt._scope=this;dt.notifyOver=function(source,e,data){if(data.grid){return'x-dd-drop-ok';} return'x-dd-drop-nodrop';};dt.notifyDrop=function(source,e,data){if(data.grid){this._scope.ButtonActionHandler(this._btn);return true;} return false;};dt.notifyEnter=function(source,e,data){if(data.grid){return'x-dd-drop-ok';} return'x-dd-drop-nodrop';};}},this);},refreshButtons:function(buttons,renderedButtons){var i=0;var ItemType=gxui.Toolbar.ItemType;renderedButtons.each(function(renderedBtn){var button=buttons[i];if(button){if(button.Type==ItemType.Button||button.Type==ItemType.Edit||button.Type==ItemType.Menu||button.Type==ItemType.SplitButton){if(!gxui.CBoolean(button.Disabled)&&renderedBtn.disabled){renderedBtn.enable();} else{if(gxui.CBoolean(button.Disabled)&&!renderedBtn.disabled){renderedBtn.disable();}} if(gxui.CBoolean(button.Hidden)&&!renderedBtn.hidden){renderedBtn.hide();} else{if(!gxui.CBoolean(button.Hidden)&&renderedBtn.hidden){renderedBtn.show();}}} if((button.Type==ItemType.Menu||button.Type==ItemType.SplitButton)&&button.Items&&renderedBtn.menu){this.refreshButtons(button.Items,renderedBtn.menu.items);}} i+=1;},this)},getUniqueButtonId:function(btnId){return this.getUniqueId()+"_btn_"+btnId;},findItem:function(id,items){var ItemType=gxui.Toolbar.ItemType;var searchedItem;Ext.each(items,function(item){if(item.Id==id){searchedItem=item;} else{if((item.Type==ItemType.Menu||item.type==ItemType.SplitButton)&&item.Items){searchedItem=this.findItem(id,item.Items);}} if(searchedItem){return false;}},this);return searchedItem;},changeItemPropertyValue:function(itemId,propertyId,propertyValue){var item=this.findItem(itemId,this.Data.Buttons);if(item){item[propertyId]=propertyValue;} return item;},ChangeToolbar:function(toolbarData,id,container){var ownerCt=this.m_toolbar.ownerCt;this.m_toolbar.destroy();this.CreateToolbar({data:toolbarData,id:id,container:container});var ct;if(ownerCt){ownerCt.topToolbar=this.m_toolbar;this.m_toolbar.ownerCt=ownerCt;ct=ownerCt.tbar;} else{ct=this.getContainerControl();} this.m_toolbar.render(ct);return this.m_toolbar;},DisableItem:function(itemId){this.changeItemPropertyValue(itemId,"Disabled",true);this.refreshButtons(this.Data.Buttons,this.m_toolbar.items);},EnableItem:function(itemId){this.changeItemPropertyValue(itemId,"Disabled",false);this.refreshButtons(this.Data.Buttons,this.m_toolbar.items);},HideItem:function(itemId){this.changeItemPropertyValue(itemId,"Hidden",true);this.refreshButtons(this.Data.Buttons,this.m_toolbar.items);},ShowItem:function(itemId){this.changeItemPropertyValue(itemId,"Hidden",false);this.refreshButtons(this.Data.Buttons,this.m_toolbar.items);}});gxui.Toolbar.ItemType={Button:"Button",Text:"Text",Edit:"Edit",Fill:"Fill",Separator:"Separator",Menu:"Menu",SplitButton:"SplitButton"}; gxui.Grid=Ext.extend(gxui.UserControl,{m_colModel:null,m_record:null,m_dataStore:null,m_grid:null,m_view:null,m_selModel:null,m_pagingTb:null,m_toolbar:null,m_gxTbar:null,m_filters:null,initialize:function(){gxui.Grid.superclass.initialize.call(this);if(!gxui.Grid.Overrided){Ext.override(Ext.grid.GridView,{fitColumns:this.fitColumns});Ext.override(Ext.grid.GridPanel,{applyState:this.applyState,getState:this.getState});gxui.Grid.Overrided=true;} if(!gxui.Grid.HttpProxyOverrided){Ext.override(Ext.data.HttpProxy,{loadResponse:this.httpProxyLoadResponse});gxui.Grid.HttpProxyOverrided=true;} this.Width;this.Height;this.DataStoreURL;this.DataStoreParms;this.Data;this.ColumnModelData;this.Identifier;this.Record;this.Total;this.Paging;this.PageSize;this.DisplayInfo;this.DisplayMsg;this.EmptyMsg;this.EnableDragDrop;this.EnableColumnHide;this.EnableColumnMove;this.LoadingIndicator;this.LoadingMsg;this.DefaultSortable;this.DefaultResizable;this.TrackMouseOver;this.SelectionModel;this.SingleSelect;this.StripeRows;this.AutoWidth;this.AutoSizeColumns;this.MinColumnWidth;this.DefaultWidth;this.AutoHeight;this.Resizable;this.MinWidth;this.MaxWidth;this.MinHeight;this.MaxHeight;this.Wrap;this.Handles;this.Pinned;this.RemoteSort;this.DefaultSortField;this.DefaultSortDirection;this.SelectedRowData;this.UseToolbar;this.ToolbarData;this.ButtonPressedId;this.UserFilters;this.FiltersMode;this.AddSearchField;this.SearchFieldWidth;this.Cls;this.IconCls;this.Title;this.Collapsible;this.AnimateCollapse;this.Frame;this.ForceFit;this.Grouping;this.GroupField;this.GroupTemplate;this.HideGroupedField;this.Stateful;this.StateId;},SetColumnModel:function(columnModel){if(this.ColumnModelData&&(Ext.util.JSON.encode(this.ColumnModelData)!=Ext.util.JSON.encode(columnModel))){this.destroy();this.forceRendering();} this.ColumnModelData=columnModel;},GetColumnModel:function(columnModel){return this.ColumnModelData;},SetData:function(data){this.Data=data;},GetData:function(data){return this.Data;},SetDataStoreParms:function(data){this.DataStoreParms=data;},GetDataStoreParams:function(){return this.DataStoreParms;},SetSelectedRowData:function(data){this.SelectedRowData=data;},GetSelectedRowData:function(data){return this.SelectedRowData;},SetToolbarData:function(data){this.ToolbarData=data;},GetToolbarData:function(data){return this.ToolbarData;},onRender:function(){this.initializeSelectionModel();this.initializeColumnModel();this.initializeFilters();this.initializeDataStore();this.initializeGrid();this.addListeners();this.refreshGrid();if(this.m_gxTbar) this.m_gxTbar.defineBtnsDropTarget();this.addToParentContainer(this.m_grid);},onRefresh:function(){if(this.forceRefresh){this.forceRefresh=false;this.Refresh();} if(gxui.CBoolean(this.UseToolbar)){this.m_gxTbar.onRefresh();}},getUnderlyingControl:function(){return this.m_grid;},initializeSelectionModel:function(){if(this.SelectionModel=="CheckBoxSelectionModel") this.m_selModel=new Ext.grid.CheckboxSelectionModel({singleSelect:gxui.CBoolean(this.SingleSelect)});else if(this.SelectionModel=="SmartCheckBoxSelectionModel") this.m_selModel=new Ext.grid.SmartCheckboxSelectionModel({singleSelect:gxui.CBoolean(this.SingleSelect),dataIndex:'checked'});else if(this.SelectionModel=="RadioSelectionModel") this.m_selModel=new Ext.grid.RadioSelectionModel({dataIndex:'checked'});else this.m_selModel=new Ext.grid.RowSelectionModel({singleSelect:gxui.CBoolean(this.SingleSelect)});this.m_selModel.on("selectionchange",this.updateSelection,this);if(gxui.CBoolean(this.LockSelections)) this.m_selModel.lock();},initializeColumnModel:function(){var cmData=this.ColumnModelData;if(cmData&&cmData.Columns){var cmDataCols=cmData.Columns;var cmconf;if(this.SelectionModel=="RowSelectionModel") cmconf=this.GetColumnModelConfig(cmDataCols);else cmconf=[this.m_selModel].concat(this.GetColumnModelConfig(cmDataCols));this.colModel=new Ext.grid.ColumnModel(cmconf);this.colModel.defaultWidth=((cmData.DefaultWidth>0)?cmData.DefaultWidth:100);var mdata=new Array();for(var i=0;i0)){for(var v=0;v0)){for(var v=0;vaw){for(i=0;i-1){var titleWidth=this.calculateControlWidth(col.title);colWidth=this.getColumnWidth(col,i,titleWidth);if(col.gxControl.type==controlTypes.image) this.ColumnsToResize.push({id:col.gxAttId});} if(!colWidth&&col.gxControl.type==controlTypes.comboBox){colWidth=col.gxControl.width;} var ColRendererClass=GE.ColumnRenderers.get(col.gxControl.type);var colRenderer=new ColRendererClass(this,col,i,{id:col.gxAttId,dataIndex:col.gxAttName||col.gxAttId,header:col.title,width:colWidth,hidden:gx.lang.gxBoolean(col.Hidden||false),align:col.align,hideable:gx.lang.gxBoolean(col.Hideable),menuDisabled:gx.lang.gxBoolean(col.MenuDisabled),resizable:gx.lang.gxBoolean(col.Resizable),sortable:gx.lang.gxBoolean(col.Sortable),locked:gx.lang.gxBoolean(col.Lock)||undefined,grid:this.m_grid,checkedValue:col.gxChecked,uncheckedValue:col.gxUnChecked});conf.columns.push(colRenderer);conf.plugins.push(colRenderer);}},this);return conf;},resizeImageColumns:function(){for(var j=0;this.ColumnsToResize[j]!=undefined;j++){var columnIndex=this.m_grid.getColumnModel().getIndexById(this.ColumnsToResize[j].id);this.ImagesForResizing[columnIndex]=new Array();var actualColumnIndex=this.getActualColumnIndex(this.m_grid.getColumnModel(),columnIndex);for(var i=0;this.properties[i]!=undefined;i++){var field=this.properties[i][actualColumnIndex];if(field.type==gx.html.controls.types.image){image=new Image();this.ImagesForResizing[columnIndex].push(image);image.onload=this.setImageColumnWidth.createDelegate(this,[columnIndex]);image.src=field.value;}}}},setImageColumnWidth:function(columnIndex){if(this.ImagesForResizing[columnIndex].length==this.properties.length){var maxWidth=this.calculateControlWidth(this.m_grid.view.cm.config[columnIndex].gxColumn.title);var width;for(var j=0;this.ImagesForResizing[columnIndex][j]!=undefined;j++){width=this.ImagesForResizing[columnIndex][j].width;if(width>maxWidth) maxWidth=width;if(this.isPromptColumn(columnIndex)) break;;} this.m_grid.getView().cm.setColumnWidth(columnIndex,maxWidth+27,false);if(!this.gxWidth){this.m_grid.setWidth(this.m_grid.getColumnModel().getTotalWidth()+21);} this.ImagesForResizing[columnIndex]=new Array();}},isPromptColumn:function(columnIndex){return this.m_grid.view.cm.config[columnIndex].gxColumn.htmlName.indexOf("PROMPT_")>-1;},getColumnWidth:function(col,j,maxWidth){var width=0;var newDiv=document.createElement('div');var added=false;var image;for(var i=0;this.properties[i]!=undefined;i++){var field=this.properties[i][j];if(field.type!=gx.html.controls.types.image){added=true;width=this.calculateControlWidth(field,newDiv);if(parseInt(width)>maxWidth) maxWidth=width;}} if(added) document.body.removeChild(newDiv);return maxWidth+25;},calculateControlWidth:function(field,newDiv){if(newDiv==undefined){newDiv=document.createElement('div');var remove=true;} if(field.getHtml) newDiv.innerHTML=field.getHtml();else newDiv.innerHTML=""+field+"";newDiv.style.visibility="hidden";document.body.appendChild(newDiv);var width=newDiv.children[0].offsetWidth;if(remove) document.body.removeChild(newDiv);return width;},createColumnModel:function(columns){var ColModelClass=gx.lang.gxBoolean(this.EnableColumnLocking)?Ext.grid.LockingColumnModel:Ext.grid.ColumnModel;var cm=new ColModelClass(columns);cm.defaultWidth=this.DefaultColumnWidth;cm.on('hiddenchange',function(colModel,columnIndex,hidden){var actualColIndex=this.getActualColumnIndex(colModel,columnIndex);this.columns[actualColIndex].Hidden=hidden;},this);cm.isCellEditable=function(colIndex,rowIndex){var col=cm.config[colIndex];var cell=this.getPropertiesCell(this.m_grid,rowIndex,colIndex,false);return gx.lang.gxBoolean(cell.enabled)&&gx.lang.gxBoolean(cell.visible)&&(cm.getCellEditor(colIndex,rowIndex)||col.checkColumn);}.createDelegate(this);return cm;},createStore:function(fields){var reader=new Ext.data.JsonReader({},fields);reader.getJsonAccessor=function(i){return function(obj){var hasReturn=obj[i].grid.instanciateRow(obj[i].gridRow);var value;if(hasReturn&&obj[i].column.gxControl.type!=gx.html.controls.types.checkBox){var bkpObj=gx.O;var pO=obj[i].grid.parentObject;gx.setGxO(pO.CmpContext,pO.IsMasterPage);value=pO.GXValidFnc[obj[i].column.gxId].val();gx.setGxO(bkpObj.CmpContext,bkpObj.IsMasterPage);} else value=obj[i].value;if(typeof value=="string") value=gx.text.trim(value);return value;};};var remoteSort=gx.lang.gxBoolean(this.RemoteSort);var storeConfig={autoDestroy:true,remoteSort:remoteSort,reader:reader,data:this.properties,listeners:{'beforeload':function(store){this.SortField=store.sortInfo.field;this.SortOrder=store.sortInfo.direction;if(remoteSort){this.m_grid.saveState();this.goToPage.defer(30,this,["FIRST"]);return false;}},'datachanged':function(store){if(gx.lang.gxBoolean(this.Grouping)){this.GroupField=store.groupField;}},scope:this}};if(this.SortField){storeConfig.sortInfo={field:this.SortField,direction:this.SortOrder||"ASC"};} if(gx.lang.gxBoolean(this.Grouping)){if(!storeConfig.sortInfo){storeConfig.sortInfo={field:this.GroupField};} storeConfig.groupField=this.GroupField;return new Ext.data.GroupingStore(storeConfig);} return new Ext.data.Store(storeConfig);},createPagingToolbar:function(){var pagingTb=[];var cp=this.currentPage;var tp=100000;if(this.usePaging||this.OnFirstPage){pagingTb.push({tooltip:this.FirstText,iconCls:"x-tbar-page-first",disabled:cp==1,handler:this.OnFirstPage||this.goToPage.createDelegate(this,["first"]),scope:this});} if(this.usePaging||this.OnPreviousPage){pagingTb.push({tooltip:this.PreviousText,iconCls:"x-tbar-page-prev",disabled:cp==1,handler:this.OnPreviousPage||this.goToPage.createDelegate(this,["prev"]),scope:this});} if(this.usePaging||((this.OnFirstPage||this.OnPreviousPage)&&(this.OnNextPage||this.OnLastPage))){pagingTb.push("-");} if(this.usePaging||this.OnNextPage){pagingTb.push({tooltip:this.NextText,iconCls:"x-tbar-page-next",disabled:cp==tp,handler:this.OnNextPage||this.goToPage.createDelegate(this,["next"]),scope:this});} if(this.usePaging||this.OnLastPage){pagingTb.push({tooltip:this.LastText,iconCls:"x-tbar-page-last",disabled:cp==tp,handler:this.OnLastPage||this.goToPage.createDelegate(this,["last"]),scope:this});} if(this.usePaging||this.OnFirstPage||this.OnPreviousPage||this.OnNextPage||this.OnLastPage){pagingTb.push("-");} pagingTb.push({tooltip:this.RefreshText,iconCls:"x-tbar-loading",handler:this.refreshGrid,scope:this});return pagingTb;},updatePagingToolbar:function(tb){if(tb){var cp=10000;var tp=100000;if(tb.items.itemAt(0)){tb.items.itemAt(0).setDisabled(cp==1);} if(tb.items.itemAt(1)){tb.items.itemAt(1).setDisabled(cp==1);} if(tb.items.itemAt(3)){tb.items.itemAt(3).setDisabled(cp==tp);} if(tb.items.itemAt(4)){tb.items.itemAt(4).setDisabled(cp==tp);}}},createGridView:function(){if(gx.lang.gxBoolean(this.EnableColumnLocking)){return new Ext.grid.LockingGridView({forceFit:gx.lang.gxBoolean(this.ForceFit)});} if(gx.lang.gxBoolean(this.Grouping)){return new Ext.grid.GroupingView({forceFit:gx.lang.gxBoolean(this.ForceFit),hideGroupedColumn:gx.lang.gxBoolean(this.HideGroupedField),groupTextTpl:this.GroupTemplate||"{text}"});} return new Ext.grid.GridView({forceFit:gx.lang.gxBoolean(this.ForceFit)});},setSelectedRow:function(rowIndex){this.SelectedRow=rowIndex+1;var actualRowIndex=this.getActualRowIndex(this.m_grid,rowIndex);this.selectRow(actualRowIndex);},keepSelection:function(grid){if(this.SelectedRow>=1){grid.getSelectionModel().selectRow(this.SelectedRow-1);var isLoading=this.ownerGrid.isLoading;this.ownerGrid.isLoading=true;this.selectRow(this.SelectedRow-1);this.ownerGrid.isLoading=isLoading;return false;}},gridListeners:function(){return{'rowclick':function(grid,rowIndex,e){var actualRowIndex=this.getActualRowIndex(grid,rowIndex);var row=this.rows[actualRowIndex];if(row){this.setSelectedRow(rowIndex);if(this.ownerGrid.defaultSetsContext){var setter=this.getGxRowContextSetter(row);if(setter){this.notifyContext(setter.types,setter.obj);}}}},'cellclick':function(grid,rowIndex,columnIndex,e){var cell=this.getPropertiesCell(grid,rowIndex,columnIndex,false);if(cell.type==gx.html.controls.types.image||!cell.enabled) this.fireCellClickEvent(rowIndex,columnIndex);},'cellcontextmenu':function(grid,rowIndex,cellIndex,e){if(this.ContextMenu){this.setSelectedRow(rowIndex);grid.getSelectionModel().selectRow(rowIndex);this.ContextMenu();e.preventDefault();}},'beforeedit':function(e){var col=e.grid.getColumnModel().config[e.column];col.col=e.column;col.row=e.row;if(col.checkColumn){return false;}},'afteredit':function(e){var actualColIndex=this.getActualColumnIndex(e.grid.getColumnModel(),e.column);var cell=this.getPropertiesCell(e.grid,e.row,actualColIndex,true);cell.value=e.value;if(e.value instanceof Date){var gxdate=e.value.gxdate;cell.value=gxdate.getString();if(gxdate.HasTimePart){cell.value+=' '+gxdate.getTimeString(true,true);}} if(typeof(e.value)=="number"){cell.value=gxui.GridExtension.Column.prototype.formatNumber(e.value,this.ParentObject.GXValidFnc[this.columns[actualColIndex].gxId]);} var colControl=cell.column.gxControl,controlTypes=gx.html.controls.types;if(colControl.type==controlTypes.checkBox||colControl.type==controlTypes.comboBox){this.fireCellClickEvent(e.row,e.column)}},scope:this};},isEditable:function(){var isEditable=false;for(var i=0,cols=this.columns.length;i0){og.callAsyncRefresh(og.getRefreshParmsUrl())} else{po.executeServerEvent('RFR',true);}},fixInheritedCentering:function(){var textAlign=this.m_grid.el?this.m_grid.el.getStyle('text-align'):"";if(textAlign==""){return;} if(textAlign.indexOf("center")>=0||textAlign.indexOf("right")>=0){this.m_grid.el.setStyle('text-align','left');Ext.select("table",false,this.m_grid.el.dom).setStyle('text-align','left');if(Ext.isIE&&gx.lang.gxBoolean(this.EnableColumnLocking)){var fn=function(){Ext.select(".x-grid3-locked",false,this.m_grid.el.dom).setStyle('position','fixed').setStyle('position','absolute');};fn.defer(100,this);}} if(Ext.isIE){Ext.onReady(function(){var view=this.m_grid.getView().refresh(true);},this);}},getRowGxInternalId:function(row){return this.ownerGrid.containerName+'Row_'+row.gxId;},getGxRowContextSetter:function(row){var trId=this.getRowGxInternalId(row);var setter;Ext.each(gx.fx.ctx.setters,function(s){if(s.id==trId){setter=s;return false;}},this);return setter;},fireCellClickEvent:function(rowIndex,columnIndex){var grid=this.m_grid;var actualColIndex=this.getActualColumnIndex(grid.getColumnModel(),columnIndex);var actualRowIndex=this.getActualRowIndex(grid,rowIndex);var cell=this.getPropertiesCell(grid,actualRowIndex,actualColIndex,true);if(this.executeEvent){this.executeEvent(actualColIndex,actualRowIndex);}},SelectRow:function(rowIndex){if(rowIndex){this.setSelectedRow(rowIndex-1);this.m_grid.getSelectionModel().selectRow(rowIndex-1);}},UnSelectRows:function(){if(this.SelectedRow!=undefined){delete this.SelectedRow;} this.m_grid.getSelectionModel().clearSelections();},getSelectedRow:function(){return this.SelectedRow;},getCellValue:function(ctrlId){var grid=this.m_grid;for(var i=0;this.properties[this.SelectedRow-1][i]!=undefined;i++){if(this.properties[this.SelectedRow-1][i].id==ctrlId) break;} var columnIndex=i;var actualRowIndex=this.getActualRowIndex(grid,this.SelectedRow-1);var cell=this.getPropertiesCell(grid,actualRowIndex,columnIndex,true);return cell.value;},setCellValue:function(cell,value){value=value+"";var grid=this.m_grid;var columnName;for(var i=0;this.properties[this.SelectedRow-1][i]!=undefined;i++){if(this.properties[this.SelectedRow-1][i].id==cell.id){columnName=this.properties[this.SelectedRow-1][i].column.gxAttName;break;}} var columnIndex=i;var actualRowIndex=this.getActualRowIndex(grid,this.SelectedRow-1);var gxdate=null;if(this.columns[i].type==gx.types.date||this.columns[i].type==gx.types.dateTime){var gxdate=new gx.date.gxdate(value);gxdate.Value.gxdate=gxdate;value=gxdate.getString();if(gxdate.HasTimePart){value+=' '+gxdate.getTimeString(true,true);}} this.properties[actualRowIndex][columnIndex].value=value;this.m_grid.getStore().getAt(actualRowIndex).set(columnName,(gxdate!=null)?gxdate.Value:value);}}); gxui.GridExtension.Column=function(gxGrid,gxColumn,actualColIndex,config){Ext.apply(this,config);if(!this.id){this.id=Ext.id();} this.gxGrid=gxGrid;this.gxColumn=gxColumn;this.actualColIndex=actualColIndex;this.renderer=this.renderer.createDelegate(this);this.editor=this.defineEditor(gxColumn,actualColIndex);};gxui.GridExtension.Column.prototype={init:function(grid){this.grid=grid;var view=this.grid.getView();},defineEditor:function(gxColumn,actualColIndex){var types=gx.types;switch(gxColumn.type){case types.numeric:var colData=this.gxGrid.ParentObject.GXValidFnc[gxColumn.gxId];return new Ext.form.NumberField({allowDecimals:colData.dec>0?true:false,allowNegative:colData.sign,decimalPrecision:colData.dec,decimalSeparator:gx.decimalPoint,maxLength:colData.len});case types.date:return new Ext.form.DateField({getValue:function(){var date=Ext.form.DateField.prototype.getValue.call(this);if(date){this.gxdate.assign_date(date);date.gxdate=this.gxdate;} return date;},setValue:function(date){if(date.gxdate){this.gxdate=date.gxdate;} Ext.form.DateField.prototype.setValue.call(this,date);}});case types.dateTime:return new Ext.ux.form.DateTime({getValue:function(){var date=Ext.ux.form.DateTime.prototype.getValue.call(this);if(date){this.gxdate.assign_date(date);date.gxdate=this.gxdate;} return date;},setValue:function(date){if(date.gxdate){this.gxdate=date.gxdate;} Ext.ux.form.DateTime.prototype.setValue.call(this,date);}});default:return new Ext.form.TextField();}},formatNumber:function(value,colData){var picture=colData.pic;var numberFormat={decimalSeparator:gx.decimalPoint,decimalPrecision:colData.dec,groupingSeparator:'',groupingSize:0,currencySymbol:''};if(picture.indexOf(gx.thousandSeparator)>=0){numberFormat.groupingSeparator=gx.thousandSeparator;numberFormat.groupingSize=3;} v=Ext.util.Format.formatNumber(value,numberFormat);var matches=picture.match(new RegExp("^[9"+gx.decimalPoint+gx.thousandSeparator+"]+$"));if(matches&&matches.length>0){v=picture.substr(0,picture.length-v.length).replace(/9/ig,"0")+v;} return v+"";},renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.json[this.actualColIndex];var col=this.gxColumn;var v=value;if(col.type==gx.types.date||col.type==gx.types.dateTime){v=value.gxdate.getString();if(value.gxdate.HasTimePart){v+=' '+value.gxdate.getTimeString(true,true);}} if(col.type==gx.types.numeric&&typeof(value)=="number"){v=this.formatNumber(value,this.gxGrid.ParentObject.GXValidFnc[this.gxColumn.gxId]);} if(gx.lang.gxBoolean(cell.visible)){if(gx.lang.gxBoolean(this.gxGrid.UseThemeClasses)&&cell.cssClass){metadata.css+=' '+cell.cssClass} if(cell.link){return String.format('{1}',cell.link||"",v||"",cell.alt||"",cell.linkTarget||"");} var style="";if(cell.style){var color=cell.style.match(/color:(.+);?/);if(color){style+=String.format("color:{0};",color[1]);} var bgColor=cell.style.match(/background-color:(.+);?/);if(bgColor){style+=String.format("background-color:{0};",bgColor[1]);}} if((col.gxControl.eventName||col.gxControl.jsDynCode)){style+='cursor:pointer;';} if(style){metadata.attr+=String.format(' style="{0}"',style);} if(cell.title){v=String.format("{1}",cell.title,v);} return v;} return"";}};gxui.GridExtension.ImageColumn=Ext.extend(gxui.GridExtension.Column,{defineEditor:Ext.emptyFn,renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.json[this.actualColIndex];if(gx.lang.gxBoolean(cell.visible)){value=String.format('',cell.value,cell.cssClass,cell.title);} return gxui.GridExtension.ImageColumn.superclass.renderer.apply(this,[value,metadata,record,rowIndex,colIndex,store]);}});gxui.GridExtension.CheckColumn=Ext.extend(gxui.GridExtension.Column,{init:function(grid){gxui.GridExtension.CheckColumn.superclass.init.apply(this,arguments);this.grid.on('render',function(){var view=this.grid.getView();view.mainBody.on('mousedown',this.onMouseDown,this);this.grid.on('keypress',this.onKeyPress);},this);},checkColumn:true,defineEditor:Ext.emptyFn,createEvent:function(rowIndex){var record=this.grid.store.getAt(rowIndex);var originalValue=record.data[this.dataIndex];var value=(originalValue==this.checkedValue?this.uncheckedValue:this.checkedValue);if(this.gxColumn.type==gx.types.bool){var boolVal=gx.lang.booleanValue;value=boolVal(boolVal(originalValue)==boolVal(this.checkedValue)?this.uncheckedValue:this.checkedValue);} return{grid:this.grid,record:record,field:this.dataIndex,value:value,originalValue:originalValue,row:rowIndex,column:this.grid.getColumnModel().findColumnIndex(this.dataIndex)}},onMouseDown:function(e,t){if(t.className&&t.className.indexOf('x-grid3-cc-'+this.id)!=-1){var cm=this.grid.getColumnModel();var colIndex=cm.findColumnIndex(this.dataIndex);var rowIndex=this.grid.getView().findRowIndex(t);if(cm.isCellEditable(colIndex,rowIndex)){var record=this.grid.store.getAt(rowIndex);var editEvent=this.createEvent(rowIndex);record.set(this.dataIndex,editEvent.value);this.grid.fireEvent('afteredit',editEvent);}}},onKeyPress:function(e,t){var sm=this.getSelectionModel();if(!sm.getSelectedCell){return;} var cm=this.getColumnModel();var cell=sm.getSelectedCell();var col=cm.config[cell[1]];if(col.checkColumn){e.preventDefault();var colIndex=cm.findColumnIndex(col.dataIndex);if(cm.isCellEditable(colIndex,cell[0])){var key=e.getKey();if(key==e.SPACE||key==e.ENTER){var record=this.store.getAt(cell[0]);var editEvent=col.createEvent(cell[0]);record.set(col.dataIndex,editEvent.value);this.fireEvent('afteredit',editEvent);}}}},renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.json[this.actualColIndex];if(gx.lang.gxBoolean(cell.visible)){var value=value.toString()==cell.checkedValue;metadata.css+=' x-grid3-check-col-td';value='
 
';} return gxui.GridExtension.CheckColumn.superclass.renderer.apply(this,[value,metadata,record,rowIndex,colIndex,store]);}});gxui.GridExtension.RadioColumn=Ext.extend(gxui.GridExtension.Column,{defineEditor:function(){return new Ext.form.Radio();},renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.json[this.actualColIndex];if(gx.lang.gxBoolean(cell.visible)){if(typeof value=="string"){value=value.trim();} value=gx.fn.selectedDescription({s:value,v:cell.possibleValues});} return gxui.GridExtension.RadioColumn.superclass.renderer.apply(this,[value,metadata,record,rowIndex,colIndex,store]);}});gxui.GridExtension.ComboColumn=Ext.extend(gxui.GridExtension.Column,{defineEditor:function(gxColumn,actualColIndex){var combo=new Ext.form.ComboBox({lazyRender:true,typeAhead:true,triggerAction:'all',selectOnFocus:true,disableKeyFilter:false,editable:true,forceSelection:true,store:[["",""]],listeners:{'beforeshow':function(){var record=this.grid.store.getAt(this.row);var cell=record.json[this.actualColIndex];combo.getStore().loadData(cell.possibleValues);},'select':function(){this.editor.completeEdit();},scope:this}});return combo;},renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.json[this.actualColIndex];if(gx.lang.gxBoolean(cell.visible)){if(typeof cell.value=="string"){value=value+"";} value=gx.fn.selectedDescription({s:value,v:cell.possibleValues});} return gxui.GridExtension.ComboColumn.superclass.renderer.apply(this,[value,metadata,record,rowIndex,colIndex,store]);}});gxui.GridExtension.ColumnRenderers=function(){var GE=gxui.GridExtension;var types=gx.html.controls.types;var renderers={};renderers[types.image]=GE.ImageColumn;renderers[types.checkBox]=GE.CheckColumn;renderers[types.radio]=GE.RadioColumn;renderers[types.comboBox]=GE.ComboColumn;renderers.get=function(t){if(this[t]){return this[t];} return GE.Column;};return renderers;}(); gxui.GridExtension.DragDrop=function(gridUC,cfg){Ext.apply(this,cfg||{});this.gridUC=gridUC;this.m_grid=gridUC.getUnderlyingControl() this.configGridDragZone();};gxui.GridExtension.DragDrop.prototype={configGridDragZone:function(){var grid=this.m_grid;var dragZone=grid.getView().dragZone;if(dragZone){dragZone.onInitDrag=this.initializeDrag.createDelegate(this);dragZone.onBeforeDrag=this.onBeforeDrag.createDelegate(this);gxui.afterShow(this.defineDropTargets,this);dragZone.primaryButtonOnly=gx.lang.gxBoolean(this.PrimaryButtonOnly);}},initializeDrag:function(e){if(this.gridUC.OnInitDrag){this.gridUC.OnInitDrag();} var dragZone=this.m_grid.getView().dragZone;var data=dragZone.dragData;dragZone.ddel.innerHTML=this.DragDropText||dragZone.grid.getDragDropText();dragZone.proxy.update(dragZone.ddel);},onBeforeDrag:function(data,e){var row=this.gridUC.rows[data.rowIndex],dnd=gx.fx.dnd;var dragSource=this.getGxRowDragSource(row);if(dragSource){dnd.dragCtrl=data.ddel;dnd.dragCtrl.gxId=row.gxId;dnd.dragCtrl.gxGrid=this.gridUC.ownerGrid.containerName;dnd.dragCtrl.gxGridName=this.gridUC.ownerGrid.gridName;dnd.dragCtrl.gxDndClassName=dragSource.cssClass;dnd.drag(dragSource.obj,dragSource.types,dragSource.hdl);} data.gxRow=row;data.gxColumns=this.gridUC.columns;return true;},defineDropTargets:function(){if(!this.m_dropTargetsCreated){this.m_dropTargets={};var dnd=gx.fx.dnd;if(dnd.sources.length>0){var types=dnd.sources[0].types;Ext.each(dnd.targets,function(t){if(gx.fx.matchingTypes(types,t.types)){this.m_dropTargets[t.id]=new Ext.dd.DropTarget(Ext.get(t.id),{ddGroup:this.m_grid.getView().dragZone.ddGroup,notifyOver:function(){return this.dropAllowed;}});}},this);this.m_dropTargetsCreated=true;}}},getGxRowDragSource:function(row){var trId=this.gridUC.getRowGxInternalId(row);var dragSource;Ext.each(gx.fx.dnd.sources,function(s){if(s.id==trId){dragSource=s;return false;}});return dragSource;},destroy:function(){delete this.gridUC;delete this.m_grid;if(this.m_dropTargets){for(dropTarget in this.m_dropTargets){dropTarget.unreg();}} delete this.m_dropTargets;}}; gxui.Panel=Ext.extend(gxui.UserControl,{m_panel:null,m_toolbar:null,m_gxtb:null,initialize:function(){gxui.Panel.superclass.initialize.call(this);},SetToolbarData:function(data){this.ToolbarData=data;},GetToolbarData:function(data){return this.ToolbarData;},onRender:function(){if(gxui.CBoolean(this.UseToolbar)){this.m_gxTbar=new gxui.Toolbar({register:false});this.m_toolbar=this.m_gxTbar.CreateToolbar({id:this.getUniqueId()+"_Toolbar",data:this.ToolbarData,container:this});} var config=this.getConfig();if(gxui.CBoolean(this.ShowAsWindow)){config.closeAction="hide";config.renderTo='MAINFORM';config.modal=gxui.CBoolean(this.Modal);config.constrainHeader=true;this.m_panel=new Ext.Window(config);} else{if(gxui.CBoolean(this.Draggable)) this.m_panel=new gxui.ext.Portlet(config);else{this.m_panel=new Ext.Panel(config);if(gxui.CBoolean(this.Resizable)){this.m_panel.on('render',function(){var rz=new Ext.Resizable(this.m_panel.getEl(),{minWidth:this.MinWidth,maxWidth:this.MaxWidth,minHeight:this.MinHeight,maxHeight:this.MaxHeight,pinned:this.Pinned,handles:this.Handles});rz.on('resize',this.m_panel.doLayout,this.m_panel);},this)}}} if(!gxui.CBoolean(this.ShowAsWindow)){if(this.AddToParentGxUIControl==undefined||gxui.CBoolean(this.AddToParentGxUIControl)){this.addToParentContainer(this.m_panel);} this.m_panel.render(this.getContainerControl());} else{if(gx.lang.gxBoolean(this.Visible)){this.m_panel.show();}} this.m_panel.body.first().enableDisplayMode().show();this.registerCt(this.m_panel.body.first().dom,this.m_panel.add,this.m_panel.doLayout,this.m_panel);},onRefresh:function(){var panel=this.m_panel;panel.setTitle(this.Title);if(!panel.ownerCt){panel.setWidth(gxui.CBoolean(this.AutoWidth)?undefined:this.Width);panel.setHeight(gxui.CBoolean(this.AutoHeight)?undefined:this.Height);} if(gx.lang.gxBoolean(this.Visible)&&!this.m_panel.isVisible()){panel.show();} else{if(!gx.lang.gxBoolean(this.Visible)&&panel.isVisible()){panel.hide();}} if(gxui.CBoolean(this.UseToolbar)){this.m_gxTbar.SetData(this.ToolbarData);this.m_gxTbar.onRefresh();}},getUnderlyingControl:function(){return this.m_panel;},getConfig:function(){var config={anchor:'100%',contentEl:this.getChildContainer("Body"),id:this.getUniqueId(),title:this.Title,width:gxui.CBoolean(this.AutoWidth)?undefined:parseInt(this.Width),height:gxui.CBoolean(this.AutoHeight)?undefined:parseInt(this.Height),autoWidth:gxui.CBoolean(this.AutoWidth),autoHeight:gxui.CBoolean(this.AutoHeight),autoScroll:this.Layout=='default'?true:false,frame:gxui.CBoolean(this.Frame),border:gxui.CBoolean(this.Border),resizable:gxui.CBoolean(this.Resizable),minWidth:this.MinWidth,minHeight:this.MinHeight,maxWidth:this.MaxWidth,maxHeight:this.MaxHeight,pinned:gxui.CBoolean(this.Pinned),resizeHandles:this.Handles,collapsible:gxui.CBoolean(this.Collapsible),collapsed:gxui.CBoolean(this.Collapsed),animateCollapse:gxui.CBoolean(this.AnimateCollapse),header:this.Title?true:false||gxui.CBoolean(this.Collapsible),tbar:this.m_toolbar,listeners:this.getListeners(),stateful:gxui.CBoolean(this.Stateful),stateId:(this.StateId!="")?this.StateId:undefined,saveState:function(){if(this.stateful===true) this.constructor.superclass.saveState.call(this);},layout:this.Layout=='default'?undefined:this.Layout};if(this.IconCls) config.iconCls=this.IconCls;if(this.Cls) config.cls=this.Cls;if(!gx.lang.gxBoolean(this.Visible)) config.hidden=true;return config;},getListeners:function(){return{'collapse':function(){this.Collapsed="true";},'expand':function(){this.Collapsed="false";},'hide':function(){this.Visible=false;if(this.OnClose){this.OnClose();}},scope:this};},ChangeToolbar:function(toolbarData){if(this.m_gxTbar) this.m_toolbar=this.m_gxTbar.ChangeToolbar(toolbarData,this.getUniqueId()+"_Toolbar",this);},Collapse:function(animate){this.m_panel.collapse(animate);},Expand:function(animate){this.m_panel.expand(animate);},DisableToolbarItem:function(itemId){this.m_gxTbar.DisableItem(itemId);},EnableToolbarItem:function(itemId){this.m_gxTbar.EnableItem(itemId);},HideToolbarItem:function(itemId){this.m_gxTbar.HideItem(itemId);},ShowToolbarItem:function(itemId){this.m_gxTbar.ShowItem(itemId);},CenterWindow:function(){if(gxui.CBoolean(this.ShowAsWindow)){this.m_panel.center();}}}); gxui.Treeview=Ext.extend(gxui.UserControl,{m_tree:null,initialize:function(){gxui.Treeview.superclass.initialize.call(this);this.NotifyContext="false";this.NotifyDataType='gxuiTreeNode';this.CheckedNodes=[];},SetChildren:function(data){this.Children=data;},GetChildren:function(data){return this.Children;},SetCheckedNodes:function(data){this.CheckedNodes=data;},GetCheckedNodes:function(data){if(this.m_tree){this.CheckedNodes=this.m_tree.getChecked("id");} return this.CheckedNodes;},SetUncheckedNodes:function(data){this.UncheckedNodes=data;},GetUncheckedNodes:function(data){if(this.m_tree){var root=this.m_tree.getRootNode();if(root){var nodes=[];root.cascade(function(){if(this.attributes.checked===false){nodes.push(this.id);}});this.UncheckedNodes=nodes;}} return this.UncheckedNodes;},SetDropData:function(data){this.DropData=data;},GetDropData:function(data){return this.DropData;},SetSelectedNodeData:function(data){this.SelectedNodeData=data;},GetSelectedNodeData:function(data){return this.SelectedNodeData;},onRender:function(){var Tree=Ext.tree;var enableCheckbox=gxui.CBoolean(this.EnableCheckbox);var ddGroup=this.DragDropGroup||undefined;this.Width=parseInt(this.Width);this.Height=parseInt(this.Height);this.m_tree=new Tree.TreePanel({id:this.getUniqueId(),renderTo:this.getContainerControl(),width:(this.Width!=100)?this.Width:undefined,height:(this.Height!=100)?this.Height:undefined,title:this.Title,frame:gxui.CBoolean(this.Frame),border:gxui.CBoolean(this.Border),cls:this.Cls,animate:gxui.CBoolean(this.Animate),rootVisible:gxui.CBoolean(this.RootVisible),lines:gxui.CBoolean(this.ShowLines),loader:new Tree.TreeLoader({dataUrl:(gxui.CBoolean(this.LazyLoading))?this.LoaderURL:undefined,preloadChildren:!gxui.CBoolean(this.LazyLoading),createNode:function(attr){if(!enableCheckbox){delete attr.checked;} return Ext.tree.TreeLoader.prototype.createNode.call(this,attr);},listeners:{'beforeload':function(){this.loading=true;},'load':function(){this.loading=false;},scope:this}}),enableDD:gxui.CBoolean(this.EnableDragDrop),ddAppendOnly:gxui.CBoolean(this.AppendOnly),dragConfig:{primaryButtonOnly:false,ddGroup:ddGroup},dropConfig:{ddGroup:ddGroup},autoScroll:gxui.CBoolean(this.AutoScroll),containerScroll:gxui.CBoolean(this.Scroll),stateful:gxui.CBoolean(this.Stateful),stateId:(this.StateId&&this.StateId!="")?this.StateId:this.getUniqueId(),stateEvents:gxui.CBoolean(this.Stateful)?['collapsenode','expandnode']:undefined,getState:gxui.CBoolean(this.Stateful)?gxui.Treeview.getState:undefined,applyState:gxui.CBoolean(this.Stateful)?gxui.Treeview.applyState(gxui.CBoolean(this.LazyLoading)):undefined,root:new Tree.AsyncTreeNode({id:(this.RootId?this.RootId:'ROOT'),text:this.RootText,icon:(this.RootIcon?this.RootIcon:undefined),cls:(this.RootCls?this.RootCls:undefined),iconCls:(this.RootIconCls?this.RootIconCls:undefined),draggable:false,children:!gxui.CBoolean(this.LazyLoading)?gxui.clone(this.Children.length&&this.Children.length>0?this.Children:[this.Children]):undefined}),selModel:gxui.CBoolean(this.Multiselection)?new Ext.tree.MultiSelectionModel():undefined});this.m_tree.addListener(this.getListeners());if(gxui.CBoolean(this.Multiselection)){this.m_tree.getSelectionModel().addListener('selectionchange',function(selModel,nodes){this.SelectedNodes=[];Ext.each(nodes,function(node){this.SelectedNodes.push(node.id);},this);},this);} if(gxui.CBoolean(this.Editable)){this.m_treeEditor=new Ext.tree.TreeEditor(this.m_tree,{},{allowBlank:false,selectOnFocus:true,cancelOnEsc:true,completeOnEnter:true,ignoreNoChange:true,listeners:{'complete':function(editor,value){this.NodeEditText=value;if(this.NodeEdit){this.NodeEdit();}},scope:this},triggerEdit:function(node,defer){this.completeEdit();if(node.attributes.editable!==false){this.editNode=node;if(this.tree.autoScroll&&!Ext.isIE){node.ui.getEl().scrollIntoView(this.tree.body);} this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[node.ui.textNode,node.text]);return false;}}});} if(gxui.CBoolean(this.Sort)) new Tree.TreeSorter(this.m_tree,{folderSort:true});if(gxui.CBoolean(this.AddToParentGxUIControl)){this.addToParentContainer(this.m_tree);} this.m_tree.render();if(gxui.CBoolean(this.ExpandRoot)) this.m_tree.getRootNode().expand(gxui.CBoolean(this.ExpandAll),gxui.CBoolean(this.Animate));},onRefresh:function(){var selNode=this.m_tree.getSelectionModel().getSelectedNode();if(selNode){this.setSelectedNode(selNode);}},getUnderlyingControl:function(){return this.m_tree;},loadTreeNodes:function(){var children=gxui.clone(this.Children.length&&this.Children.length>0?this.Children:[this.Children]);this.m_tree.root.attributes.children=children;},getRowDropData:function(dropEvent){if(dropEvent.data&&dropEvent.data.gxRow){var gxRow=dropEvent.data.gxRow;var gxCols=dropEvent.data.gxColumns;var dropData={};Ext.each(gxCols,function(col,i){var colName=col.gxAttName||(col.gxAttId.charAt(0)=="&"?col.gxAttId.substring(1):col.gxAttId);dropData[colName]=gxRow.values[i];},this);return dropData;} return null;},getNodeById:function(node){return this.m_tree.getNodeById(node);},getListeners:function(){var listeners={'click':function(node,e){this.endEdit();this.setSelectedNode(node);if(gx.lang.emptyObject(node.attributes.href)){if(this.NotifyContext=="true"){var types=new Array();types[0]=this.NotifyDataType;this.notifyContext(types,{id:node.id,text:node.text,leaf:node.leaf,icon:node.attributes.icon});} if(this.Click&&(!node.hasChildNodes()||!gxui.CBoolean(this.DisableBranchEvents))){this.Click();}}},'dblclick':function(node,e){this.endEdit();this.setSelectedNode(node);if(this.DoubleClick&&(!node.hasChildNodes()||!gxui.CBoolean(this.DisableBranchEvents))){this.DoubleClick();}},'nodedragover':function(dragOverEvent){if(this.NodeOver){this.DropTarget=dragOverEvent.target.id;this.DropPoint=dragOverEvent.point;if(dragOverEvent.source.grid){this.DropData=this.getRowDropData(dragOverEvent);} else{this.DropNode=dragOverEvent.dropNode.id;} this.DropAllowed=true;this.NodeOver();return this.DropAllowed;} return true;},'beforenodedrop':function(dropEvent){dropEvent.rawEvent.preventDefault();if(dropEvent.source.grid){this.DropTarget=dropEvent.target.id;this.DropPoint=dropEvent.point;this.DropData=this.getRowDropData(dropEvent);dropEvent.target.ui.endDrop();if(this.RowDrop){this.RowDrop();}} Ext.getBody().on('contextmenu',Ext.emptyFn,this,{single:true,stopEvent:true,preventDefault:true});},'nodedrop':function(dropEvent){this.DropTarget=dropEvent.target.id;this.DropPoint=dropEvent.point;if(dropEvent.dropNode){this.DropNode=dropEvent.dropNode.id;if(this.NodeDrop){this.NodeDrop();}}},'checkchange':function(node){if(this.CheckChange){this.setSelectedNode(node);node.select();this.CheckChange();}},scope:this};if(this.ContextMenu){listeners['contextmenu']=function(node){this.endEdit();if(this.ContextMenu){this.setSelectedNode(node);node.select();this.ContextMenu();}};} return listeners;},setSelectedNode:function(node){this.SelectedNode=node.id;this.SelectedText=node.text;this.SelectedIcon=node.attributes.icon;this.SelectedNodeData=node.attributes.data;this.SelectedNodeChecked=node.attributes.checked||false;},endEdit:function(){if(this.m_treeEditor){this.m_treeEditor.completeEdit();}},doAfterLoad:function(fn,scope){if(this.loading){this.m_tree.getLoader().on('load',fn,scope,{single:true});} else{fn.call(scope);}},SelectNode:function(nodeId){this.doAfterLoad(function(){var node=this.getNodeById(nodeId);if(node){this.setSelectedNode(node) node.select();this.m_tree.expandPath(node.getPath());}},this);},ExpandNode:function(nodeId){this.doAfterLoad(function(){var node=this.getNodeById(nodeId);if(node){node.expand();}},this);},ExpandAllNodes:function(){this.doAfterLoad(function(){this.m_tree.expandAll();},this);},CollapseNode:function(nodeId){this.doAfterLoad(function(){var node=this.getNodeById(nodeId);if(node){node.collapse();}},this);},CollapseAllNodes:function(){this.doAfterLoad(function(){this.m_tree.collapseAll();},this);},Reload:function(node,expand){var n=node?((typeof node=='object')?node:this.getNodeById(node)):this.m_tree.getRootNode();if(n){var loadCallback=function(){if(expand||expand===undefined){n.expand();}};var loader=this.m_tree.getLoader();if(gxui.CBoolean(this.LazyLoading)){loader.dataUrl=this.LoaderURL;if(loader.isLoading()) loader.load.defer(500,loader,[n,loadCallback]);else loader.load(n,loadCallback);} else{this.loadTreeNodes();loader.load(n,function(){this.fireEvent("load",this);loadCallback();}.createDelegate(n));} if(this.SelectedNode!=undefined){this.SelectNode(this.SelectedNode);}}},Refresh:function(){this.m_tree.setHeight((this.Width!=100)?this.Width:undefined);this.m_tree.setWidth((this.Height!=100)?this.Height:undefined);this.m_tree.setTitle(this.Title);this.Reload(this.m_tree.getRootNode(),gxui.CBoolean(this.ExpandRoot));},Show:function(){this.m_tree.setVisible(true);},Hide:function(){this.m_tree.setVisible(false);},GetNodeParentId:function(nodeId){var node=this.getNodeById(nodeId);if(node&&node.parentNode){return node.parentNode.id;} return"";},SetNodeData:function(nodeId,nodeData){var node=this.getNodeById(nodeId);if(node){node.attributes.data=nodeData;}},SetNodeText:function(nodeId,text){var node=this.getNodeById(nodeId);if(node){node.setText(text);}},StartEdit:function(nodeId,value){var node=this.getNodeById(nodeId);if(node){this.m_treeEditor.editNode=node;this.m_treeEditor.startEdit(value||node.ui.textNode);}},CancelEdit:function(){this.m_treeEditor.cancelEdit();},ClearAllNodes:function(){var root=this.m_tree.getRootNode();while(root.firstChild){root.removeChild(root.firstChild);} delete root.attributes.children;}});gxui.Treeview.getState=function(){var nodes=[];this.getRootNode().eachChild(function(child){var storeTreeState=function(node,expandedNodes){if(node.isExpanded()&&node.childNodes.length>0){expandedNodes.push(node.getPath());node.eachChild(function(child){storeTreeState(child,expandedNodes);});}};storeTreeState(child,nodes);});return{expandedNodes:nodes}};gxui.Treeview.applyState=function(lazyLoading){return function(state){var that=this;var subject=lazyLoading?this.getLoader():this.root;subject.on('load',function(){var cookie=Ext.state.Manager.get(that.stateId);var nodes=cookie.expandedNodes;for(var i=0;ibox.x&&xbox.y&&y','
','

',t,'

',s,'
','
',''].join('');}};}()); if('function'!==Ext.type(Ext.ux.clone)){Ext.ux.clone=function(o){if('object'!==typeof o){return o;} var c='function'===typeof o.pop?[]:{};var p,v;for(p in o){if(o.hasOwnProperty(p)){v=o[p];if('object'===typeof v){c[p]=Ext.ux.clone(v);} else{c[p]=v;}}} return c;};} Ext.ux.HttpProvider=function(config){this.addEvents('readsuccess','readfailure','savesuccess','savefailure');Ext.ux.HttpProvider.superclass.constructor.call(this);Ext.apply(this,config,{delay:750,dirty:false,started:false,autoStart:true,autoRead:true,user:'user',id:1,session:'session',logFailure:false,logSuccess:false,queue:[],url:'.',readUrl:undefined,saveUrl:undefined,method:'post',saveBaseParams:{},readBaseParams:{},paramNames:{id:'id',name:'name',value:'value',user:'user',session:'session',data:'data'}});if(this.autoRead){this.readState();} this.dt=new Ext.util.DelayedTask(this.submitState,this);if(this.autoStart){this.start();}};Ext.extend(Ext.ux.HttpProvider,Ext.state.Provider,{saveSuccessText:'Save Success',saveFailureText:'Save Failure',readSuccessText:'Read Success',readFailureText:'Read Failure',dataErrorText:'Data Error',initState:function(state){if(state instanceof Array){Ext.each(state,function(item){this.state[item.name]=this.decodeValue(item.value);},this);} else{this.state=state?state:{};}},set:function(name,value){if(!name){return;} this.queueChange(name,value);},start:function(){this.dt.delay(this.delay);this.started=true;},stop:function(){this.dt.cancel();this.started=false;},queueChange:function(name,value){var changed=undefined===this.state[name]||this.state[name]!==value;var o={};var i;var found=false;if(changed){o[this.paramNames.name]=name;o[this.paramNames.value]=this.encodeValue(value);for(i=0;i0){this.X=xy[0];this.Y=xy[1];} this.MouseButton=e.button;this.AltKey=e.altKey;this.CtrlKey=e.ctrlKey;this.ShiftKey=e.shiftKey;});},onRefresh:function(){},getUnderlyingControl:function(){return null;},PrevenDefault:function(){Ext.EventObject.preventDefault();},StopEvent:function(){Ext.EventObject.stopEvent();},StopPropagation:function(){Ext.EventObject.stopPropagation();}});