/* * GxUI Library 2.0 beta (Build 1822) * Copyright (c) 2009, Artech * All rights reserved. * * GxUI Library is freely distributable under the terms of the BSD license. * */ if(!window.Ext){alert("ExtJS not found. To solve the problem, please follow the installation instructions: http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?19312.");} gxui=function(){var m_GenexusBuild=null;var fixCssReset=function(){var cssLines=[];for(var i=1;i<=100;i++){var cellSpacing=["table[cellspacing='",i,"'] {"," border-collapse: separate;"," border-spacing: ",i,"px;","}"];var cellPadding=["table[cellpadding='",i,"'] > tbody > tr > td:not([class]), table[cellpadding='",i,"'] > tbody > tr > th:not([class]) {"," padding: ",i,"px;","}"];cssLines.push(cellSpacing.join(""));cssLines.push(cellPadding.join(""));} var head=document.getElementsByTagName('head')[0],styleEl=document.createElement('style');styleEl.type='text/css';if(styleEl.styleSheet){styleEl.styleSheet.cssText=cssLines.join("");} else{styleEl.appendChild(document.createTextNode(cssLines.join("")));} head.appendChild(styleEl);};return{initialize:function(){Ext.tip.QuickTipManager.init();Ext.namespace('gxui.ext');Ext.namespace('gxui.Properties');Ext.namespace('gxui.GX');Ext.namespace('gxui.ux');Ext.defer(fixCssReset,100);gx.fx.obs.addObserver('gx.onready',this,function(){if(gx&&Ext.ieVersion>0&&Ext.ieVersion<8){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/themes/images/default/tree/s.gif",true);}});Ext.state.Manager.setProvider(new Ext.state.CookieProvider({expires:new Date(new Date().getTime()+(1000*60*60*24*365))}));var gxBuild=gxui.getGeneXusBuild();if(gxBuild){if(gxBuild>54798){Ext.fly(document.documentElement).addCls("gxui-xev2");if(gxBuild<=64355){Ext.fly(document.documentElement).addCls("gxui-msg-fix");}} if(gxBuild<55424){gx.lang.inherits=function(subclass,superclass){var oldProt=subclass.prototype;subclass.prototype=new superclass();for(var pName in oldProt){if(typeof(subclass.prototype[pName])=='undefined') subclass.prototype[pName]=oldProt[pName];} if(typeof(subclass.prototype.base)=='undefined') subclass.prototype.base=superclass;subclass.prototype.constructor=function(){superclass.prototype.constructor.apply(this,arguments);oldProt.constructor.apply(this,arguments);};};}}},CBoolean:function(str){if(str){if(typeof(str)=='string') return(str.toLowerCase()=="true") return str;} else return false;},clone:function(obj,fn){if(obj instanceof Array) return gxui.copyArray(obj,fn);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],fn);if(fn&&typeof(fn)=='function') fn(cloneObj);return cloneObj;},copyArray:function(arr,fn){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);},tryPropertyMapping:function(targetObj,source,propertyMap){for(var targetProp in propertyMap){var sourceValue,sourceProp=propertyMap[targetProp],ignoreEmpty=false;if(typeof(propertyMap[targetProp])=="object"){ignoreEmpty=propertyMap[targetProp].ignoreEmpty||false;sourceProp=propertyMap[targetProp].property;} if(typeof(source)=="function") sourceValue=source(sourceProp);else sourceValue=source[sourceProp];if(ignoreEmpty){if(sourceValue) targetObj[targetProp]=sourceValue;} else{if(sourceValue!==undefined) targetObj[targetProp]=sourceValue;}}},getGeneXusBuild:function(){if(m_GenexusBuild===null){try{var metaElements=document.getElementsByTagName('meta'),generatorEl=null,versionEl=null;for(var i=0,len=metaElements.length;i1) m_GenexusBuild=parseInt(matches[1]);} catch(e){m_GenexusBuild=0;}} return m_GenexusBuild;}};}();gxui.initialize(); Ext.define('gxui.UserControl',{mixins:{observable:'Ext.util.Observable'},unmanagedLayout:false,constructor:function(options){this.setOptions(options) this.initialize();return this;},setOptions:function(options){this.options={register:true};for(property in(options||{})){this.options[property]=options[property];}},initialize:function(){this.rendered=false;this.mixins.observable.constructor.call(this);this.addEvents({"show":true,"destroy":true});if(this.options.register) this.register();if(this.methods) this.addDeferredMethods(this.methods);},show:function(){if(!this.rendered){Ext.onReady(function(){try{this.onRender();this.addToContainer();if(this.onAfterRender){var control=this.getUnderlyingControl();if(control){if(control.rendered) this.onAfterRender.call(this,control);else control.on('afterrender',this.onAfterRender,this,[control]);}} this.rendered=true;} catch(e){gx.dbg.logEx(e,'gxui.js','show');} finally{this.fireEvent("show",this);}},this);} else{try{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:function(){return false},addToParent:function(){return false;},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);},addToContainer:function(){var control=this.getUnderlyingControl();if(control){if(this.addToParent()){gxui.UserControlManager.addToParentContainer(this,control);} else{if(!this.unmanagedLayout&&!control.rendered){control.render(this.getContainerControl());}}}},checkIfInline:function(el){if(el.id.indexOf("gxHTMLWrp")>=0||el.hasCls("gx_usercontrol")||el.hasCls("gxui-uc-container")) el.setStyle("display","inline");},getUniqueId:function(){var pO=this.ParentObject;return"gxui20"+(pO?(pO.CmpContext?"-"+pO.CmpContext:"")+"-"+pO.ServerClass||"":"")+"-"+this.ControlName;},addDeferredMethods:function(methods){for(var m in methods){if(typeof(methods[m])=='function'){this[m]=Ext.bind(function(){var fn=arguments[arguments.length-1],args=Array.prototype.slice.call(arguments,0,arguments.length-1);if(this.runDeferredMethod(m)) return fn.apply(this,args);else gxui.afterShow(Ext.bind(fn,this,args),this,{single:true});},this,[methods[m]],true);}}},runDeferredMethod:function(methodName){var control=this.getUnderlyingControl();return control===false||(control&&control.rendered);}});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;for(var i=0,len=ucList.length;i'+uc.getUniqueId());}},this);},addControlsToContainer:function(){try{var containers=this.getContainersList();for(var i=0,len=containers.length;i0) container.addFn.call(container.scope,children);} delete this.childControls;} catch(e){gx.dbg.logEx(e,'gxui.UserControl.js','addControlsToContainer');}},afterShow:function(fn,scope,options){if(!afterShowEvent) initAfterShow();scope.afterShowHandler=fn;afterShowEvent.addListener(fn,scope,options)}};}(); Ext.define('gxui.container.NestedViewport',{extend:'Ext.container.Container',initComponent:function(){this.callParent(arguments);var html=Ext.fly(document.body.parentNode);html.addCls(Ext.baseCSSPrefix+'viewport');if(this.autoScroll){html.setStyle('overflow','auto');} this.renderTo=Ext.get(this.renderTo);this.renderTo.addCls("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;Ext.EventManager.onWindowResize(this.fireResize,this);this.width=Ext.Element.getViewportWidth();this.height=Ext.Element.getViewportHeight();},fireResize:function(w,h){this.setSize(w,h);}}); Ext.define('gxui.Panel',{extend:'gxui.UserControl',SetToolbarData:function(data){this.ToolbarData=data;},GetToolbarData:function(data){return this.ToolbarData;},onRender:function(){var config=this.getConfig();Ext.fly(this.getChildContainer("Body")).enableDisplayMode().show();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.create('Ext.window.Window',config);if(gx.lang.gxBoolean(this.Visible)){this.m_panel.show();}} else{this.m_panel=Ext.create('Ext.panel.Panel',config);} this.registerCt(this.getChildContainer("Body"),this.m_panel.add,this.m_panel.doLayout,this.m_panel);},onRefresh:function(){var panel=this.m_panel;if(this.Title!=panel.title){panel.setTitle(this.Title);} if(!panel.ownerCt){var width=parseInt(this.Width),height=parseInt(this.Height);if((!gxui.CBoolean(this.AutoWidth)&&panel.getWidth()!=width)||(!gxui.CBoolean(this.AutoHeight)&&panel.getHeight()!=height)){panel.animate({to:{width:width,height: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;},addToParent:function(){return!gxui.CBoolean(this.ShowAsWindow)&&(this.AddToParentGxUIControl==undefined||gxui.CBoolean(this.AddToParentGxUIControl));},getConfig:function(){var dockedItems=[];if(gxui.CBoolean(this.UseToolbar)){var position=this.ToolbarPosition||'top';this.m_gxTbar=Ext.create('gxui.Toolbar',{register:false});this.m_toolbar=this.m_gxTbar.createToolbar({id:this.getUniqueId()+"_Toolbar",data:this.ToolbarData,vertical:(position=='bottom'||position=='top')?false:true,dock:position,container:this});dockedItems.push(this.m_toolbar);} var config={contentEl:this.getChildContainer("Body"),id:this.getUniqueId(),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)?2:false,collapsible:gxui.CBoolean(this.Collapsible),collapsed:gxui.CBoolean(this.Collapsed),animCollapse:gxui.CBoolean(this.AnimateCollapse),resizable:gxui.CBoolean(this.Resizable),dockedItems:dockedItems,listeners:this.getListeners(),stateful:gxui.CBoolean(this.Stateful),stateId:(this.StateId!="")?this.StateId:undefined,layout:this.Layout=='default'?undefined:this.Layout,bodyCls:"gxui-noreset"};gxui.tryPropertyMapping(config,this,{"title":"Title","headerPosition":"HeaderPosition","minWidth":"MinWidth","minHeight":"MinHeight","maxWidth":"MaxWidth","maxHeight":"MaxHeight","collapseDirection":"CollapseDirection","resizeHandles":"Handles","iconCls":"IconCls","cls":"Cls"});if(!gxui.CBoolean(this.AutoWidth)) config.width=parseInt(this.Width);if(!gxui.CBoolean(this.AutoHeight)) config.height=parseInt(this.Height);if(!gx.lang.gxBoolean(this.Visible)) config.hidden=true;return config;},fixAutoDimensions:function(panel){if(!this.fixingAutoDims){this.fixingAutoDims=true;if(panel.rendered){if(gxui.CBoolean(this.AutoHeight)){panel.el.setHeight('auto');panel.body.setHeight('auto');if(panel.header&&(panel.headerPosition=="top"||panel.headerPosition=="bottom")){panel.body.setStyle('margin-bottom',Ext.dom.AbstractElement.addUnits(panel.header.getHeight(),"px"));}} if(gxui.CBoolean(this.AutoWidth)){panel.el.setWidth('auto');panel.body.setWidth('auto');if(panel.header&&(panel.headerPosition=="top"||panel.headerPosition=="bottom")){Ext.defer(panel.header.setWidth,50,panel.header,['auto']);}}} this.fixingAutoDims=false;}},getListeners:function(){return{'collapse':function(){this.Collapsed="true";},'expand':function(){this.Collapsed="false";},'hide':function(){this.Visible=false;if(this.OnClose){this.OnClose();}},'add':this.fixAutoDimensions,'afterrender':this.fixAutoDimensions,scope:this};},methods:{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(this.CollapseDirection,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();}}}}); Ext.define('gxui.Toolbar',{extend:'gxui.UserControl',initialize:function(){this.callParent();this.ButtonPressedId="";this.EditFieldValue="";this.addEvents({"beforebuttonpressed":true,"buttonpressed":true,"editfieldkeypress":true,"editfieldblur":true});gxui.Toolbar.ItemResolvers.register({"Button":function(toolbar,button){var config={id:toolbar.getUniqueButtonId(button.Id),gxConfirmation:gxui.CBoolean(button.AskConfirmation)?button.Confirmation:false,cls:toolbar.getBtnCls(button),enableToggle:gxui.CBoolean(button.EnableToggle),pressed:gxui.CBoolean(button.Pressed),disabled:gxui.CBoolean(button.Disabled),hidden:gxui.CBoolean(button.Hidden),handler:toolbar.buttonClickHandler,isDropTarget:gxui.CBoolean(button.IsDropTarget),scope:toolbar,RefreshData:gxui.CBoolean(button.RefreshData)};gxui.tryPropertyMapping(config,button,{"gxid":"Id","text":"Text","tooltip":"Tooltip","icon":"Icon","iconCls":"IconCls","rowspan":"RowSpan","colspan":"ColSpan","iconAlign":{property:"IconAlign",ignoreEmpty:true},"arrowAlign":{property:"ArrowAlign",ignoreEmpty:true},"scale":{property:"Scale",ignoreEmpty:true},"width":{property:"Width",ignoreEmpty:true}});return config;},"Text":function(toolbar,button){return button.Text;},"Edit":function(toolbar,button){var edit=Ext.create('Ext.form.field.Text',{id:toolbar.getUniqueButtonId(button.Id),cls:button.Cls,width:button.Width||180,disabled:gxui.CBoolean(button.Disabled),hidden:gxui.CBoolean(button.Hidden),enableKeyEvents:true,value:button.Value||undefined});if(edit.Text!='') edit.emptyText=button.Text;edit.on({"keypress":{fn:function(field,e){this.fireEvent("editfieldkeypress",this,field,e);if(e.getKey()==Ext.EventObject.ENTER){e.stopEvent();this.editActionHandler(field);}},scope:toolbar},"blur":{fn:function(field){this.fireEvent("editfieldblur",this,field);this.editActionHandler(field);},scope:toolbar}});edit.gxid=button.Id;return edit;},"Fill":function(){return Ext.create('Ext.toolbar.Fill');},"Separator":function(){return"-";},"Menu":function(toolbar,button){var menuItems=[];if(button.Items){Ext.each(button.Items,function(item,index,allItems){menuItems.push(toolbar.getConfig(item));});} var config={hidden:gxui.CBoolean(button.Hidden),menu:{items:menuItems,ignoreParentClicks:true},cls:toolbar.getBtnCls(button),disabled:gxui.CBoolean(button.Disabled)};gxui.tryPropertyMapping(config,button,{"text":"Text","tooltip":"Tooltip","icon":"Icon","iconCls":"IconCls","rowspan":"RowSpan","colspan":"ColSpan","iconAlign":{property:"IconAlign",ignoreEmpty:true},"arrowAlign":{property:"ArrowAlign",ignoreEmpty:true},"scale":{property:"Scale",ignoreEmpty:true},"width":{property:"Width",ignoreEmpty:true}});return config;},"SplitButton":function(toolbar,button){var splitButton=gxui.Toolbar.ItemResolvers.get(gxui.Toolbar.ItemType.Menu)(toolbar,button);splitButton.gxid=button.Id;splitButton.gxConfirmation=gxui.CBoolean(button.AskConfirmation)?button.Confirmation:false;splitButton.xtype='splitbutton';splitButton.enableToggle=gxui.CBoolean(button.EnableToggle);splitButton.pressed=gxui.CBoolean(button.Pressed);if(gxui.CBoolean(button.EnableToggle)){splitButton.toggleHandler=toolbar.buttonClickHandler;} else{splitButton.handler=toolbar.buttonClickHandler;} splitButton.scope=toolbar;return splitButton;},"Group":function(toolbar,button){var groupItems=[];if(button.Items){Ext.each(button.Items,function(item,index,allItems){groupItems.push(toolbar.getConfig(item));});} var config={xtype:'buttongroup',defaults:{},items:groupItems};gxui.tryPropertyMapping(config,button,{"title":"Text","columns":"GroupColumns"});gxui.tryPropertyMapping(config.defaults,button,{"iconAlign":{property:"IconAlign",ignoreEmpty:true},"arrowAlign":{property:"ArrowAlign",ignoreEmpty:true},"scale":{property:"Scale",ignoreEmpty:true}});return config;},"ComboBox":function(toolbar,comboBox){var config={xtype:'combobox',gxid:comboBox.Id,cls:toolbar.getBtnCls(comboBox),disabled:gxui.CBoolean(comboBox.Disabled),hidden:gxui.CBoolean(comboBox.Hidden),editable:true,triggerAction:'all',selectOnFocus:true,disableKeyFilter:false,forceSelection:true,queryMode:'local',store:{autoDestroy:true,fields:['id','dsc'],data:[]},displayField:'dsc',valueField:'id',listeners:{'select':function(field){this.editActionHandler(field);},scope:toolbar}};if(comboBox.Items){for(var i=0,len=comboBox.Items.length;i=0) return this.getMargins(regionKey,value);else if(propName.indexOf("Border")>=0) return gx.lang.gxBoolean(value)?undefined:0;else if(propName=="Layout") return value=="default"?undefined:value;else return value;},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 config={id:this.getUniqueId()+"-"+regionKey,itemId:regionKey.toLowerCase(),region:regionKey.toLowerCase(),contentEl:this.getChildContainer(regionKey),autoScroll:(this.getProperty(regionKey,"Layout")!="fit")?this.getProperty(regionKey,"AutoScroll"):false,cls:"x-region-"+regionKey.toLowerCase(),bodyCls:"gxui-noreset",duration:this.getProperty(regionKey,"Duration")/1000,listeners:{'collapse':function(p){this.setRegionProperty(p.region,"Collapsed","true");},'expand':function(p){this.setRegionProperty(p.region,"Collapsed","false");},scope:this},stateful:gxui.CBoolean(this.Stateful),stateId:(this.StateId!="")?this.StateId+"-"+regionKey:undefined,stateEvents:gxui.CBoolean(this.Stateful)?['collapse','expand']:undefined};if(!this.getProperty(regionKey,"TitleBar")){config.header=false;} gxui.tryPropertyMapping(config,Ext.bind(this.getProperty,this,[regionKey],0),{"hidden":"Hidden","split":"Split","title":"Title","width":"Width","height":"Height","minWidth":"MinWidth","minHeight":"MinHeight","maxWidth":"MaxWidth","maxHeight":"MaxHeight","margins":"Margins","collapsible":"Collapsible","collapsed":"Collapsed","floatable":"Floatable","animate":"Animate","animFloat":"Animate","layout":"Layout","border":"Border"});return config;},displayRegions:function(){var layout=this.m_layout;var displayRegion=function(region){Ext.fly(layout.child('#'+region.toLowerCase()).contentEl).setDisplayed(true);};Ext.each(regions,displayRegion);},registerAsContainer:function(){Ext.each(regions,function(regionName){var region=this.getRegion(regionName);this.registerCt(region.contentEl,region.add,region.doLayout,region);},this);},getRegion:function(regionKey){return this.m_layout.child('#'+regionKey.toLowerCase())},refreshRegion:function(regionKey){var region=this.getRegion(regionKey);if(region){region.setTitle(this.getProperty(regionKey,"Title"));}},methods:{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");}}}};}()); Ext.define('gxui.Treeview',{extend:'gxui.UserControl',initialize:function(){this.callParent(arguments);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){this.CheckedNodes=[];if(this.m_tree){var checkedNodes=this.m_tree.getChecked();this.CheckedNodes=Ext.Array.map(checkedNodes,function(node){return node.data.id;},this);} return this.CheckedNodes},SetUncheckedNodes:function(data){this.UncheckedNodes=data;},GetUncheckedNodes:function(data){this.UncheckedNodes=[];if(this.m_tree){var root=this.m_tree.getRootNode();if(root){var nodes=[];root.cascadeBy(function(){if(this.data.checked===false){nodes.push(this.data.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;},SetSelectedNodes:function(data){this.SelectedNodes=data;},GetSelectedNodes:function(){return this.SelectedNodes;},onRender:function(){var Tree=Ext.tree;var ddGroup=this.DragDropGroup||undefined;this.Width=parseInt(this.Width);this.Height=parseInt(this.Height);this.EnableCheckbox=gxui.CBoolean(this.EnableCheckbox);this.LazyLoading=gxui.CBoolean(this.LazyLoading);var store=this.createStore();var config={id:this.getUniqueId(),title:this.Title,frame:gxui.CBoolean(this.Frame),border:gxui.CBoolean(this.Border)?undefined:0,cls:this.Cls,animate:gxui.CBoolean(this.Animate),rootVisible:gxui.CBoolean(this.RootVisible),lines:gxui.CBoolean(this.ShowLines),store:store,folderSort:gxui.CBoolean(this.Sort),viewConfig:{},autoScroll:gxui.CBoolean(this.AutoScroll),stateful:gxui.CBoolean(this.Stateful),stateId:(this.StateId&&this.StateId!="")?this.StateId:this.getUniqueId(),stateEvents:gxui.CBoolean(this.Stateful)?['itemcollapse','itemexpand']:undefined,getState:gxui.CBoolean(this.Stateful)?this.getState:undefined,applyState:gxui.CBoolean(this.Stateful)?this.applyState(this.LazyLoading):undefined,listeners:this.getListeners()};if(this.Width!=100) config.width=this.Width;else config.autoWidth=true;if(this.Height!=100) config.height=this.Height;else config.autoHeight=true;if(gxui.CBoolean(this.EnableDragDrop)){config.viewConfig.plugins={ptype:'treeviewdragdrop',appendOnly:gxui.CBoolean(this.AppendOnly),ddGroup:ddGroup};config.viewConfig.listeners=this.getDDListeners();} if(gxui.CBoolean(this.Multiselection)){config.selModel={mode:'MULTI',listeners:{'selectionchange':function(selModel,nodes){this.SelectedNodes=[];Ext.each(nodes,function(node){this.SelectedNodes.push(node.data.id);},this);},scope:this}};} this.m_tree=Ext.create('Ext.tree.Panel',config);},onRefresh:function(){var selNodes=this.m_tree.getSelectionModel().getSelection();if(selNodes&&selNodes[0]){this.setSelectedNode(selNodes[0]);}},onAfterRender:function(){if(gxui.CBoolean(this.ExpandRoot)){Ext.defer(function(){this.m_tree.getRootNode().expand(gxui.CBoolean(this.ExpandAll));},300,this);}},getUnderlyingControl:function(){return this.m_tree;},addToParent:function(){return gxui.CBoolean(this.AddToParentGxUIControl);},createRootNode:function(){return{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:!this.LazyLoading?this.cloneNodes(this.Children):undefined,expanded:gxui.CBoolean(this.ExpandRoot)};},createStore:function(){var config={root:this.createRootNode(),_enableCheckbox:this.EnableCheckbox};if(this.LazyLoading){config.proxy={type:'ajax',url:this.LoaderURL,reader:{type:'json'},actionMethods:{create:"POST",read:"POST",update:"POST",destroy:"POST"}};} return config;},cloneNodes:function(children){children=gxui.clone(children);return children.length&&children.length>0?children:[children]},getRowDropData:function(data){if(data&&data.gxRow){var gxGrid=data.gxGrid,gxRow=data.gxRow,gxCols=data.gxColumns;var dropData={};for(var i=0,len=gxCols.length;i0){this.DropNode=data.records[0].data.id;if(this.NodeDrop){this.NodeDrop();}}},scope:this};},getListeners:function(){var listeners={'itemclick':function(view,node,item,index,e){this.setSelectedNode(node);if(!node.data.href){if(this.NotifyContext=="true"){this.notifyContext([this.NotifyDataType],{id:node.id,text:node.text,leaf:node.leaf,icon:node.attributes.icon});} if(this.Click&&(!node.hasChildNodes()||!gxui.CBoolean(this.DisableBranchEvents))){this.Click();}}},'itemdblclick':function(view,node){this.setSelectedNode(node);if(this.DoubleClick&&(!node.hasChildNodes()||!gxui.CBoolean(this.DisableBranchEvents))){this.DoubleClick();}},'checkchange':function(node){if(this.CheckChange){this.setSelectedNode(node);this.CheckChange();}},scope:this};if(this.ContextMenu){listeners['itemcontextmenu']=function(view,node){if(this.ContextMenu){this.setSelectedNode(node);this.m_tree.getSelectionModel().select(node);this.ContextMenu();}};} return listeners;},setSelectedNode:function(node){this.SelectedNode=node.data.id;this.SelectedText=node.data.text;this.SelectedIcon=node.data.icon;this.SelectedNodeData=node.data.data;this.SelectedNodeChecked=node.data.checked||false;},endEdit:function(){if(this.m_treeEditor){this.m_treeEditor.completeEdit();}},getState:function(){var nodes=[],state=Ext.tree.Panel.prototype.getState.apply(this,arguments);this.getRootNode().eachChild(function(child){var storeTreeState=function(node,expandedNodes){if(node.isExpanded()&&node.childNodes.length>0){expandedNodes.push(node.getPath("id"));node.eachChild(function(child){storeTreeState(child,expandedNodes);});}};storeTreeState(child,nodes);});Ext.apply(state,{expandedNodes:nodes});return state;},applyState:function(lazyLoading){return function(state){var nodes=state.expandedNodes||[],len=nodes.length;this.collapseAll(function(){for(var i=0;i0){var node=this.findChildNode(id,nodes[i].children);if(node){return node;}}} return null;},setNodeProperty:function(nodeId,name,value){var node=this.getNodeById(nodeId);if(node){node.set(name,value);}},methods:{SelectNode:function(nodeId){var node=this.getNodeById(nodeId);if(node){this.setSelectedNode(node) this.m_tree.getSelectionModel().select(node);this.m_tree.expandPath(node.getPath("id"),"id");}},SelectNextNode:function(){this.m_tree.getSelectionModel().selectNext();},SelectPreviousNode:function(){this.m_tree.getSelectionModel().selectPrevious();},DeleteNode:function(nodeId){var node=this.getNodeById(nodeId);if(node){node.remove();}},ExpandNode:function(nodeId){var node=this.getNodeById(nodeId);if(node){node.expand();}},ExpandAllNodes:function(){this.m_tree.expandAll();},CollapseNode:function(nodeId){var node=this.getNodeById(nodeId);if(node){node.collapse();}},CollapseAllNodes:function(){this.m_tree.collapseAll();},Reload:function(node,expand){var tree=this.m_tree;var n=node?((typeof node=='object')?node:this.getNodeById(node)):tree.getRootNode();if(n){var loadCallback=function(node,initState){node=node||n;if(expand||expand===undefined){node.expand();} if(initState!==false){tree.initState();}};var store=tree.getStore();if(this.LazyLoading){var loadCfg={callback:Ext.bind(loadCallback,this),node:n};store.getProxy().url=this.LoaderURL;if(store.isLoading()) Ext.defer(store.load,500,store,[loadCfg]);else store.load(loadCfg);} else{if(n==tree.getRootNode()){tree.setRootNode(this.createRootNode());} else{var rawNode=this.findChildNode(node,this.Children),newNode=n.parentNode.replaceChild(rawNode,n);} loadCallback(newNode,false);} if(this.SelectedNode!=undefined){this.SelectNode(this.SelectedNode);}}},Refresh:function(){var tree=this.m_tree;tree.setHeight((this.Height!=100)?this.Height:undefined);tree.setWidth((this.Width!=100)?this.Width:undefined);tree.setTitle(this.Title);this.Reload(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.data.id;} return"";},SetNodeData:function(nodeId,nodeData){var node=this.getNodeById(nodeId);if(node){node.data.data=nodeData;}},GetNodeData:function(nodeId){var node=this.getNodeById(nodeId);if(node){return node.data.data;}},SetNodeText:function(nodeId,text){this.setNodeProperty(nodeId,'text',text);},SetNodePropertyBoolean:function(nodeId,name,value){this.setNodeProperty(nodeId,name,value);},SetNodePropertyString:function(nodeId,name,value){this.setNodeProperty(nodeId,name,value);},SetNodePropertyNumber:function(nodeId,name,value){this.setNodeProperty(nodeId,name,value);},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();root.removeAll();delete root.data.children;},NodeExists:function(nodeId){var node=this.getNodeById(nodeId);return(node?true:false);}}});Ext.tree.ViewDropZone.override({isValidDropPoint:function(node,position,dragZone,e,data){if(this.callOverridden(arguments)===false) return false;if(this.view.fireEvent('dragover',node,data,this.view.getRecord(node),position,e)===false) return false;return true;}});Ext.data.TreeStore.override({fillNode:function(node,records){if(records){for(var i=0,len=records.length;i ';}}); Ext.define('Skirtle.grid.AutoWidther',{mixins:{observable:'Ext.util.Observable'},pendingCount:0,constructor:function(config){var me=this;Ext.apply(me,config);me.addEvents('beforecolumnresize','columnresize');me.mixins.observable.constructor.call(me);},autoWidthColumn:function(column,config){var me=this,grid=me.grid,empty=grid.getStore().getCount()===0,els,originalColumnElWidth,newWidth;config=config||{};if(column.isHidden()||!grid.rendered){return false;} if(empty){if(!Ext.isNumber(newWidth=me.getEmptyWidth(column,config))){return false;}} else{newWidth=(config.includeHeader&&me.calculateHeaderWidth(column,config))||1;els=me.getColumnResizers(column,config);if(els.length){me.start();Ext.each(els,function(el){el=Ext.fly(el);originalColumnElWidth=el.dom.style.width;el.setStyle('width','auto');newWidth=Math.max(el.getWidth(),newWidth);el.setStyle('width',originalColumnElWidth);});me.end();}} config.newWidth=newWidth;if(me.beforeColumnResize(column,config)===false||me.fireEvent('beforecolumnresize',me,column,config)===false){return false;} if(column.flex){column.flex=null;} column.setWidth(config.newWidth,!me.isPending());column.width=config.newWidth;me.onColumnResize(column,config);me.fireEvent('columnresize',me,column,config);return config.newWidth;},beforeColumnResize:function(column,config){if(config.minWidth){config.newWidth=Math.max(config.newWidth,config.minWidth);} if(config.maxWidth){config.newWidth=Math.min(config.newWidth,config.maxWidth);}},calculateHeaderWidth:function(column,config){var me=this,grid=me.grid,selector=me.headerCellSelector(column,config),triggerSelector=me.headerTriggerSelector(column,config),el=grid.getEl(),headerCell=el.down(selector),trigger=headerCell?headerCell.down(triggerSelector):null;return headerCell?me.calculateWidth(headerCell)+(trigger?trigger.getComputedWidth():0):false;},calculateWidth:function(cell){var el=Ext.fly(cell);return el.getTextWidth()+el.getFrameWidth('lr');},destroy:function(){this.clearListeners();this.grid=null;},end:function(){if(!--this.pendingCount){Ext.iterate(this.originalWidths,function(id,width){var tableEl=Ext.fly(id);tableEl.setStyle('table-layout','');tableEl.setWidth(width);});}},getColumnResizers:function(column,config){var els=this.grid.getEl().query('.x-grid-col-resizer-'+column.id);if(els.length>1&&Ext.fly(els[0]).parent('table').contains(els[1])){els.shift();} return els;},getEmptyWidth:function(column,config){if(config.emptyWidth==='header'){return this.calculateHeaderWidth(column,config);} return config.emptyWidth;},getTableResizers:function(){var els=this.grid.getView().getEl().query('.x-grid-table-resizer');if(els.length>1&&Ext.fly(els[0]).contains(els[1])){els.shift();} return els;},headerCellSelector:function(column,config){return Ext.String.format('#{0} .x-column-header-inner',column.id);},headerTriggerSelector:function(column,config){return'.x-column-header-trigger';},isPending:function(){return this.pendingCount!==0;},onColumnResize:Ext.emptyFn,start:function(){var me=this;if(!me.pendingCount++){me.originalWidths={};Ext.each(me.getTableResizers(),function(tableEl){tableEl=Ext.fly(tableEl);me.originalWidths[Ext.id(tableEl)]=tableEl.getWidth();tableEl.setStyle({'table-layout':'auto',width:'auto'});});}}}); Ext.define('Skirtle.grid.plugin.AutoWidthColumns',{alias:'plugin.autowidthcolumns',extend:'Ext.AbstractPlugin',mixins:{observable:'Ext.util.Observable'},requires:['Skirtle.grid.AutoWidther'],cfgCopy:['emptyWidth','includeHeader','maxWidth','minWidth'],emptyWidth:'header',includeHeader:true,pluginId:'autowidthcolumns',init:function(grid){var me=this;me.addEvents('beforecolumnresize','columnresize');me.mixins.observable.constructor.call(me);me.bindGrid(grid);},autoWidthColumn:function(col,configOverrides){var me=this,column=Ext.isNumber(col)?me.getCmp().columns[col]:col,config=me.resolveColumnConfig(column,configOverrides),width=me.autoWidther.autoWidthColumn(column,config);if(width){me.handleSingle(column);} return width;},bindGrid:function(grid){var me=this,disabled=me.disabled,autoWidther;me.disable();me.cmp=grid;if(autoWidther=me.autoWidther){autoWidther.destroy();} if(autoWidther=me.autoWidther=grid?me.createAutoWidther(grid):null){me.registerRelayedEvents(autoWidther);} if(!disabled){me.enable();}},createAutoWidther:function(grid){return Ext.create('Skirtle.grid.AutoWidther',Ext.apply({grid:grid},this.autoWidtherConfig));},destroy:function(){this.bindGrid(null);this.clearListeners();},disable:function(){var me=this,grid=me.getCmp();if(grid){me.unregisterListeners(grid);} me.callParent();},enable:function(){var me=this,grid=me.getCmp();if(me.disabled&&grid){me.registerListeners(grid);} me.callParent();},getGridViewChangeEvents:function(){return['refresh','itemadd','itemremove','itemupdate'];},handleSingle:function(column){if(column.autoWidth==='single'){column.autoWidth=false;}},onGridColumnShow:function(ct,column){if(column.autoWidth){this.autoWidthColumn(column);}},onGridViewChange:function(){this.refresh();},registerListeners:function(grid){var me=this;Ext.each(me.getGridViewChangeEvents(),function(eventName){grid.getView().on(eventName,me.onGridViewChange,me);});grid.on('columnshow',me.onGridColumnShow,me);},registerRelayedEvents:function(autoWidther){var me=this;autoWidther.on('beforecolumnresize',function(aw,column,config){return me.fireEvent('beforecolumnresize',me,column,config);});autoWidther.on('columnresize',function(aw,column,config){return me.fireEvent('columnresize',me,column,config);});},refresh:function(){var me=this,grid=me.getCmp(),columns=grid.columns,index=0,len=columns.length,updated=false;if(!grid.rendered||!grid.getView().rendered){return;} me.autoWidther.start();for(;index0){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.gridUC.DragDropGroup,notifyOver:function(){return this.dropAllowed;},notifyDrop:function(){return true;}});}},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;}}); Ext.define('gxui.GridExtension',{extend:'gxui.UserControl',onRender:function(){var cmConf=this.getColumnsConfig(),storeConf=this.getStoreConfig(cmConf.fields),smConf=this.getSelModelConfig(),viewConf=this.getViewConfig(),plugins=this.getPlugins(),features=this.getFeatures();this.m_grid=this.createGridPanel(cmConf,storeConf,smConf,viewConf,plugins,features);},onRefresh:function(){if((!this.editable&&this.isEditable(true))||this.columnModelChanged(this.m_grid)){this.m_grid.destroy();this.forceRendering();this.show();this.keepSelection(this.m_grid);} else{var grid=this.m_grid,view=grid.getView();if(gx.lang.gxBoolean(this.Grouping)){var groupingFeature=view.getFeature(this.getUniqueId()+'-grouping');if(groupingFeature&&groupingFeature.ftype=='groupingsummary') groupingFeature.toggleSummaryRow(gx.lang.gxBoolean(this.ShowGroupingSummary));} grid.getStore().loadRawData(this.properties);this.updatePagingToolbar(grid.getDockedComponent('toolbar'));this.keepSelection(grid);if(gx.lang.gxBoolean(this.gxAllowCollapsing)){if(gx.lang.gxBoolean(this.gxCollapsed)){grid.collapse();} else{grid.expand();}} if(this.Visible!=undefined){if(gx.lang.gxBoolean(this.gxVisible)&&!grid.isVisible()){grid.show();} else{if(!gx.lang.gxBoolean(this.gxVisible)&&grid.isVisible()){grid.hide();}}} if(!grid.ownerCt){if(this.gxHeight&&grid.getBox().height!=this.gxHeight){grid.setHeight(this.gxHeight);} if(this.gxWidth&&grid.getBox().width!=this.gxWidth){grid.setWidth(this.gxWidth);}} grid.setTitle(this.Title);}},onAfterRender:function(){if(gx.lang.gxBoolean(this.ownerGrid.defaultDragable)){this.m_DD=Ext.create('gxui.GridExtension.DragDrop',this,this.m_grid,{DragDropText:this.DragDropText,PrimaryButtonOnly:this.PrimaryButtonOnly});}},onDestroy:function(){if(this.m_DD){this.m_DD.destroy();} gxui.GridExtension.superclass.onDestroy.call(this);},getUnderlyingControl:function(){return this.m_grid;},addToParent:function(){return gx.lang.gxBoolean(this.AddToParentGxUIControl);},createGridPanel:function(cmConf,storeConf,smConf,viewConf,plugins,features){this.gxWidth=parseInt(this.gxWidth);this.gxHeight=parseInt(this.gxHeight);var config={id:this.getUniqueId(),features:features,plugins:plugins,store:storeConf,columns:cmConf.columns,viewConfig:viewConf,selType:smConf.selType,selModel:smConf.selModel,dockedItems:[],forceFit:gx.lang.gxBoolean(this.ForceFit),enableColumnHide:gx.lang.gxBoolean(this.EnableColumnHide),enableColumnMove:gx.lang.gxBoolean(this.EnableColumnMove),enableLocking:gx.lang.gxBoolean(this.EnableColumnLocking),collapsible:gx.lang.gxBoolean(this.gxAllowCollapsing),collapsed:gx.lang.gxBoolean(this.gxCollapsed),header:gx.lang.gxBoolean(this.gxAllowCollapsing),height:this.gxHeight?this.gxHeight:undefined,width:this.gxWidth?this.gxWidth:undefined,title:this.Title?this.Title:undefined,listeners:this.gridListeners(),stateful:gx.lang.gxBoolean(this.Stateful),stateId:this.StateId||undefined};if(gx.lang.gxBoolean(this.UseThemeClasses)){config.cls=(config.cls||'')+' '+this.gxCssClass;} if(this.usePagingToolbar()){config.dockedItems.push(this.getPagingToolbarConfig());} var grid=Ext.create('Ext.grid.GridPanel',config);return grid;},getPlugins:function(){var plugins=[{ptype:'autowidthcolumns'}];if(this.isEditable()){var editingPlugin={clicksToEdit:parseInt(this.ClicksToEdit),listeners:{'edit':this.afterEditHandler,'beforeedit':this.beforeEditHandler,scope:this}};plugins.push(editingPlugin);if(this.EditModel=='CellEditModel'){editingPlugin.ptype='cellediting';editingPlugin.pluginId=this.getUniqueId()+'-celledit';} else{editingPlugin.ptype='rowediting';editingPlugin.pluginId=this.getUniqueId()+'-rowedit';}} return plugins;},getFeatures:function(){var features=[];if(gx.lang.gxBoolean(this.Grouping)){features.push({id:this.getUniqueId()+'-grouping',ftype:gx.lang.gxBoolean(this.ShowGroupingSummary)?'groupingsummary':'grouping',groupHeaderTpl:this.GroupTemplate});} return features;},getSelModelConfig:function(){if(this.isEditable()&&this.EditModel=='CellEditModel'){return{selType:'cellmodel'};} else if(this.SelectionModel=='CheckBoxSelectionModel') return{selType:'checkboxmodel',selModel:{injectCheckbox:'first',mode:'SINGLE'}};else return{selType:'rowmodel',selModel:{mode:'SINGLE'}};},getViewConfig:function(){var viewConf={plugins:[],disableSelection:!gx.lang.gxBoolean(this.gxAllowSelection),trackOver:gx.lang.gxBoolean(this.gxAllowHovering),stripeRows:(this.gxTitleBackstyle==gx.grid.styles.report)};if(gx.lang.gxBoolean(this.ownerGrid.defaultDragable)&&gx.lang.gxBoolean(this.gxAllowSelection)) viewConf.plugins.push({pluginId:this.getUniqueId()+'-dd',ptype:'gridviewdragdrop',enableDrop:false,ddGroup:this.DragDropGroup||"",dragText:this.DragDropText});return viewConf;},getColumnsConfig:function(){var columns=this.columns;var conf={headers:{},columns:[],fields:[]};for(var i=0,len=this.columns.length;i0) storeConfig.pageSize=this.pageSize;if(this.SortField){storeConfig.sorters={property:this.SortField,direction:this.SortOrder||"ASC"};} if(gx.lang.gxBoolean(this.Grouping)){if(!storeConfig.sorters){storeConfig.sorters={property:this.GroupField};} storeConfig.groupField=this.GroupField;} return storeConfig;},usePagingToolbar:function(){return this.hasPagingButtons()||!!this.OnFirstPage||!!this.OnPreviousPage||!!this.OnNextPage||!!this.OnLastPage;},getPagingToolbarConfig:function(){var items=[],usePaging=this.hasPagingButtons();if(usePaging||this.OnFirstPage){items.push({itemId:'first',tooltip:this.FirstText,overflowText:this.FirstText,iconCls:"x-tbar-page-first",disabled:usePaging&&this.isFirstPage(),handler:this.OnFirstPage||Ext.bind(this.goToPage,this,["first"]),scope:this});} if(usePaging||this.OnPreviousPage){items.push({itemId:'previous',tooltip:this.PreviousText,overflowText:this.PreviousText,iconCls:"x-tbar-page-prev",disabled:usePaging&&this.isFirstPage(),handler:this.OnPreviousPage||Ext.bind(this.goToPage,this,["prev"]),scope:this});} if(usePaging||((this.OnFirstPage||this.OnPreviousPage)&&(this.OnNextPage||this.OnLastPage))){items.push("-");} if(usePaging||this.OnNextPage){items.push({itemId:'next',tooltip:this.NextText,overflowText:this.NextText,iconCls:"x-tbar-page-next",disabled:usePaging&&this.isLastPage(),handler:this.OnNextPage||Ext.bind(this.goToPage,this,["next"]),scope:this});} if(usePaging||this.OnLastPage){items.push({itemId:'last',tooltip:this.LastText,overflowText:this.LastText,iconCls:"x-tbar-page-last",disabled:usePaging&&this.isLastPage(),handler:this.OnLastPage||Ext.bind(this.goToPage,this,["last"]),scope:this});} if(usePaging||this.OnFirstPage||this.OnPreviousPage||this.OnNextPage||this.OnLastPage){items.push("-");} items.push({itemId:'refresh',tooltip:this.RefreshText,overflowText:this.RefreshText,iconCls:Ext.baseCSSPrefix+'tbar-loading',handler:this.refreshGrid,scope:this});if(this.StatusText){items.push('->');items.push({itemId:'status',xtype:'tbtext',text:this.StatusText,overflowText:this.StatusText});} return{itemId:'toolbar',xtype:'toolbar',dock:'bottom',items:items};},updatePagingToolbar:function(tb){if(tb){var usePaging=this.hasPagingButtons(),first=tb.child('#first'),previous=tb.child('#previous'),next=tb.child('#next'),last=tb.child('#last'),status=tb.child('#status');if(usePaging){if(first){first.setDisabled(this.isFirstPage());} if(previous){previous.setDisabled(this.isFirstPage());} if(next){next.setDisabled(this.isLastPage());} if(last){last.setDisabled(this.isLastPage());}} if(status){status.setText(this.StatusText);}}},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().select(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{'itemclick':function(view,record,el,rowIndex,e){var actualRowIndex=this.getActualRowIndex(view.panel,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.hdl.call(setter.obj,row));}}}},'cellclick':function(view,cellEl,columnIndex,record,rowEl,rowIndex,e){var cell=this.getPropertiesCell(view.panel,rowIndex,columnIndex,false);if(this.isCellEventEnabled(cell)) this.fireCellClickEvent(rowIndex,columnIndex);},'itemcontextmenu':function(view,record,rowEl,rowIndex,e){if(this.ContextMenu){this.setSelectedRow(rowIndex);this.ContextMenu();e.preventDefault();}},'sortchange':function(ct,column,direction){if(this.m_grid){var remoteSort=gx.lang.gxBoolean(this.RemoteSort);this.SortField=column.dataIndex;this.SortOrder=direction;if(remoteSort){this.m_grid.saveState();} if(this.OnSortChange){this.OnSortChange();} else{if(remoteSort){Ext.defer(this.goToPage,30,this,["FIRST"]);}} return!remoteSort;}},'columnresize':function(){if(!this.fixingWidth) this.fixGridWidth(this.m_grid);},'beforestaterestore':function(grid,state){if(gx.lang.gxBoolean(this.RemoteSort)){delete state.sort;} return true;},'afterlayout':function(grid){if(!this.fixingWidth) this.fixGridWidth(grid);},scope:this};},isEditable:function(force){if(this.editable===undefined||force){var editable=false;for(var i=0,rows=this.properties.length;i0){og.callAsyncRefresh(og.getRefreshParmsUrl())} else{po.executeServerEvent('RFR',true);}},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;},isCellEventEnabled:function(cell){var gxControlTypes=gx.html.controls.types;return cell.type==gxControlTypes.checkBox||(cell.type==gxControlTypes.image&&cell.enabled&&(cell.readOnly===undefined||cell.readOnly===true))||(cell.type!=gxControlTypes.image&&!cell.enabled);},fireCellClickEvent:function(rowIndex,columnIndex){var grid=this.m_grid;var actualColIndex=this.getActualColumnIndex(grid,columnIndex);var actualRowIndex=this.getActualRowIndex(grid,rowIndex);var cell=this.getPropertiesCell(grid,actualRowIndex,actualColIndex,true);if(this.executeEvent){this.executeEvent(actualColIndex,actualRowIndex);}},getSelectedRow:function(){return this.SelectedRow;},beforeEditHandler:function(grid,e){var cell=e.record.raw[e.column.actualColIndex];return cell.enabled;},afterEditHandler:function(editor,e){var actualColIndex=this.getActualColumnIndex(e.grid,e.colIdx),cell=this.getPropertiesCell(e.grid,e.rowIdx,actualColIndex,true),gxControl=cell.column.gxControl,controlTypes=gx.html.controls.types,columns=e.grid.columns;if(this.EditModel=='CellEditModel'){this.setCellValue(cell,e.value);if(gxControl.type==controlTypes.checkBox||gxControl.type==controlTypes.comboBox){this.fireCellClickEvent(e.rowIdx,e.colIdx)}} else{for(var i=0,len=columns.length;i3,nDec==8,nDec>1);}} if(typeof(value)=="number"){cell.value=gxui.GridExtension.Column.prototype.formatNumber(value,gxControl.vStruct);}},fixGridWidth:function(grid){if(!grid.ownerCt){var columns=grid.columns,width=grid.lockable?3:2;if(!this.gxWidth){for(var i=0,len=columns.length;i3,seconds=nDec==8,hours=nDec>1;if(gx.timeFormat==12){if(hours&&minutes&&seconds) return"h:i:s A";if(hours&&minutes) return"h:i A";if(hours) return"h A";} else{if(hours&&minutes&&seconds) return"H:i:s";if(hours&&minutes) return"H:i";if(hours) return"H";}} return"h:i";},defineEditor:function(gxColumn,actualColIndex){var types=gx.types;switch(gxColumn.type){case types.numeric:var colData=this.gxGrid.ParentObject.GXValidFnc[gxColumn.gxId];return{xtype:'numberfield',allowDecimals:colData.dec>0?true:false,minValue:colData.sign?Number.NEGATIVE_INFINITY:0,decimalPrecision:colData.dec,decimalSeparator:gx.decimalPoint,enforceMaxLength:true,maxLength:colData.len,maxValue:Math.pow(10,colData.len-colData.dec-(colData.dec>0?1:0))-(colData.dec>0?1/Math.pow(10,colData.dec):0)};case types.date:return{xtype:'datefield',format:this.mapDateFormat()};case types.dateTime:return{xtype:'xdatetime',dateFormat:this.mapDateFormat(),timeFormat:this.mapTimeFormat(gxColumn)};default:if(gxColumn.gxControl.type==gx.html.controls.types.multipleLineEdit) return{xtype:'textareafield',maxLength:gxColumn.gxControl.maxLength};return{xtype:'textfield',maxLength:gxColumn.gxControl.maxLength};}},formatNumber:function(value,colData){var picture=colData.pic;var numberFormat="";var integerPart="0" if(picture.indexOf(gx.thousandSeparator)>=0){integerPart+=gx.thousandSeparator+"000";} if(colData.dec>0) numberFormat=integerPart+gx.decimalPoint+(Ext.util.Format.leftPad("",colData.dec,'0')||'0');else numberFormat=integerPart;v=Ext.util.Format.number(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+"";},mapDatePictureToFormat:function(vStruct){var dateFormat=function(FormatPart,Picture){if(FormatPart=='Y'&&Picture.substr(0,10)=='99/99/9999') return'Y';else if(FormatPart=='Y') return'y';else if(FormatPart=='M') return'm';else if(FormatPart=='D') return'd';else return'';};var dateTimeFormat=function(Dec){var timeFmt=gx.timeFormat;var DPTF='',AMPM='',TimeFmt;if(timeFmt==12){DPTF='h';AMPM=' A';}else if(timeFmt==24){DPTF='H';AMPM='';} if(Dec==2) TimeFmt='';else if(Dec==5) TimeFmt=':i';else if(Dec==8) TimeFmt=':i:s';else return'';return DPTF+TimeFmt+AMPM;};var Picture=vStruct.dp.pic,Dec=vStruct.dp.dec,Len=vStruct.len,dateFmt=gx.dateFormat,D1=dateFmt.substr(0,1),D2=dateFmt.substr(1,1),D3=dateFmt.substr(2,1),DD1=dateFormat(D1,Picture),DD2=dateFormat(D2,Picture),DD3=dateFormat(D3,Picture),DT=dateTimeFormat(Dec);if(Len>0&&Dec>0) return DD1+'/'+DD2+'/'+DD3+' '+DT;else if(Len>0) return DD1+'/'+DD2+'/'+DD3;else return DT;},formatDate:function(value,vStruct){var gxdate=value.gxdate;if(value-new Date(0,0,0,0,0,0,0)===0&&gxdate){var gxFormat=gxdate.SFmt,dp=vStruct.dp;if(dp&&dp.pic&&dp.pic.indexOf("9999")>=0){gxFormat="Y4";} return gxdate.emptyDateString(gxFormat);} else{var format=this.mapDatePictureToFormat(vStruct);return Ext.util.Format.date(value,format);}},renderer:function(value,metadata,record,rowIndex,colIndex,store){if(record.isSummary){return value;} var cell=record.raw[this.actualColIndex],col=this.gxColumn,gxControl=cell.column.gxControl,controlTypes=gx.html.controls.types;var v=value;if(col.type==gx.types.date||col.type==gx.types.dateTime){v=this.formatDate(value,gxControl.vStruct);} 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(!metadata.tdCls){metadata.tdCls='';} if(gx.lang.gxBoolean(this.gxGrid.UseThemeClasses)&&cell.cssClass){metadata.tdCls+=' '+cell.cssClass} if(cell.link){v=Ext.String.format('{1}',cell.link||"",v||"",cell.alt||"",cell.linkTarget||"");} var style="";if(cell.style) style+=this.extractCssProperties(["text-decoration","color","background-color","font-weight"],cell.style);if(cell.grid.grid.isCellEventEnabled(cell)){style+='cursor:pointer;';} if(style) metadata.style=style;if(cell.title){v=Ext.String.format("{1}",cell.title,v);} return v;} return"";},extractCssProperties:function(properties,inputStyle){var buffer=[];for(var i=0,len=properties.length;i',cell.value,cell.cssClass,cell.title,styleBuffer.join(""));} return this.callParent([value,metadata,record,rowIndex,colIndex,store]);}});Ext.define('gxui.GridExtension.CheckColumn',{extend:'Ext.ux.CheckColumn',alias:'widget.gxui.checkcolumn',processEvent:function(type,view,cell,recordIndex,cellIndex,e){if(type=='mousedown'||(type=='keydown'&&(e.getKey()==e.ENTER||e.getKey()==e.SPACE))){var record=view.panel.store.getAt(recordIndex),cell=record.raw[this.actualColIndex];if(cell.enabled) return this.callParent(arguments);} else{return this.callParent(arguments);}},listeners:{'checkchange':function(column,rowIndex,checked){var grid=column.ownerCt.ownerCt,editorPlugin=grid.getPlugin(grid.id+'-celledit'),editingContext=editorPlugin.getEditingContext(rowIndex,column);if(editorPlugin) editorPlugin.fireEvent('edit',this,editingContext);grid.fireEvent('cellclick',grid.getView(),null,editingContext.colIdx,editingContext.record,null,editingContext.rowIdx,editingContext);}}});Ext.define('gxui.GridExtension.RadioColumn',{extend:'gxui.GridExtension.Column',alias:'widget.gxui.radiocolumn',defineEditor:Ext.emptyFn,renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.raw[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 this.callParent([value,metadata,record,rowIndex,colIndex,store]);}});Ext.define('gxui.GridExtension.ComboColumn',{extend:'gxui.GridExtension.Column',alias:'widget.gxui.combocolumn',defineEditor:function(gxColumn,actualColIndex){return{xtype:'combobox',editable:false,triggerAction:'all',selectOnFocus:true,disableKeyFilter:false,forceSelection:true,store:[["",""]],queryMode:'local',getActiveRecord:function(column){var plugin=column.getEditorPlugin();if(column.gxGrid.EditModel=='CellEditModel') return plugin.getActiveRecord();return plugin.context.record;},populateCombo:function(column){var record=this.getActiveRecord(column) cell=record.raw[column.actualColIndex];this.getStore().loadData(cell.possibleValues);if(typeof cell.value=="string") this.select(cell.value.trim());else this.select(cell.value);},listeners:{'beforerender':function(combo){if(this.gxGrid.EditModel=='CellEditModel'){combo.populateCombo(this);} else{combo.ownerCt.on('show',Ext.bind(combo.populateCombo,combo,[this]));}},'beforequery':function(queryEvent){queryEvent.combo.populateCombo(this);},'select':function(){if(this.gxGrid.EditModel=='CellEditModel'){this.getEditorPlugin().completeEdit();}},scope:this}};},renderer:function(value,metadata,record,rowIndex,colIndex,store){var cell=record.raw[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 this.callParent([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]='gxui.imagecolumn';renderers[types.checkBox]='gxui.checkcolumn';renderers[types.radio]='gxui.radiocolumn';renderers[types.comboBox]='gxui.combocolumn';renderers.get=function(t){if(this[t]){return this[t];} return'gxui.column';};return renderers;}(); Ext.define('gxui.TabPanel',{extend:'gxui.UserControl',initialize:function(){this.callParent(arguments);this.HandleUniqueId=true;},m_tabPanel:null,m_designTabs:[],m_activeTab:0,SetRunTimeTabs:function(data){if(data){if(Ext.isArray(data)) this.RunTimeTabs=data;else this.RunTimeTabs=[data];} else this.RunTimeTabs=[];},GetRunTimeTabs:function(){return this.RunTimeTabs;},onRender:function(){this.m_designTabs=Ext.JSON.decode(this.DesignTimeTabs);this.RunTimeTabs=[];var tabCount=0;if(this.m_designTabs&&this.m_designTabs.length) tabCount=this.m_designTabs.length;if(tabCount>0){this.displayTabPanels();this.m_tabPanel=Ext.create('Ext.tab.Panel',this.getConfig());this.registerAsContainer();}},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);}},onAfterRender:function(){this.m_tabPanel.setActiveTab(this.m_activeTab);this.m_tabPanel.on('tabchange',this.handlers.tabChanged,this);},onDestroy:function(){if(this.m_tabPanel){this.m_tabPanel.items.each(function(tab){this.unregisterCt(tab);},this);} this.callParent(arguments);},getUnderlyingControl:function(){return this.m_tabPanel;},addToParent:function(){return gxui.CBoolean(this.AddToParentGxUIControl);},getConfig:function(){var config={id:this.getUniqueId(),cls:this.Cls,tabPosition:this.TabPosition||"top",deferredRender:false,border:gx.lang.gxBoolean(this.Border)?undefined:0,frame:gx.lang.gxBoolean(this.Frame),autoWidth:gxui.CBoolean(this.AutoWidth),autoHeight:gxui.CBoolean(this.AutoHeight),enableTabScroll:(this.TabPosition=="top")?gxui.CBoolean(this.EnableTabScroll):false,minTabWidth:parseInt(this.MinTabWidth),items:this.getTabPanelsList(),listeners:{'activate':this.handlers.tabItemActivated,'deactivate':this.handlers.tabItemDeactivated,'remove':this.handlers.tabItemClosed,'beforeremove':this.handlers.tabItemBeforeClosed,'afterrender':this.handlers.tabAfterRender,scope:this}};if(!gxui.CBoolean(this.AutoWidth)) config.width=parseInt(this.Width);if(!gxui.CBoolean(this.AutoHeight)) config.height=parseInt(this.Height);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){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);}} if(tab.isRuntimeTab){if(!tab.HTML){tab.InternalName=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?this.getChildContainer(tab.id):undefined,bodyCls:"gxui-noreset",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),autoWidth:gxui.CBoolean(this.AutoWidth),autoHeight:gxui.CBoolean(this.AutoHeight),listeners:{'activate':this.handlers.tabItemActivated,'deactivate':this.handlers.tabItemDeactivated,'render':this.handlers.tabItemRendered,scope:this}};if(this.TabCls) config.cls=this.TabCls;if(gxui.CBoolean(this.AutoHeight)) if(!tab.HTML) Ext.fly(this.getChildContainer(tab.id)).setHeight('auto');panel=Ext.create('Ext.panel.Panel',config);tab.rendered=true;tabPanels.push(panel);} else return;} if(gxui.CBoolean(tab.selected)||gxui.CBoolean(tab.Selected)) this.m_activeTab=panel;},this);return tabPanels;},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();}},tabItemRendered:function(panel){panel.tab.on('click',this.handlers.tabStripClick,this);},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(Ext.getClassName(tabPanel)=="Ext.tab.Panel"){if(this.RunTimeTabs){var rtt=[];Ext.each(this.RunTimeTabs,function(tab,index,allTabs){if(this.getTabUniqueId(tab.InternalName)!=tabItem.id){rtt.push(tab);}},this);this.SetRunTimeTabs(rtt);} if(this.TabClosed){this.ClosedTabId=tabItem.id;this.TabClosed();}}},tabItemBeforeClosed:function(tabPanel,tabItem){if(Ext.getClassName(tabPanel)=="Ext.tab.Panel"){if(this.BeforeTabClosed){this.ClosedTabId=tabItem.id;this.CancelEvent=false;this.BeforeTabClosed();return!this.CancelEvent;}}},tabStripClick:function(tab,e){if(this.TabClick){this.ActiveTabId=tab.card.id;this.TabClick();}},tabAfterRender:function(tabPanel){if(gxui.CBoolean(this.AutoHeight)||gxui.CBoolean(this.AutoWidth)){var task=Ext.TaskManager.start({run:function(){var doLayout=false;tabPanel.items.each(function(panel){if(panel.body.isScrollable()){tabPanel.doLayout();return false;}},this);},interval:500,scope:this});}}},getTabUniqueId:function(tabId){if(gxui.CBoolean(this.HandleUniqueId)) return this.getUniqueId()+"_tab_"+tabId;else return tabId;},methods:{OpenTab:function(tabId,title,tabHTMLContent,closable,layout){if(this.IsTabOpen(tabId)){this.m_activeTab=this.getTabUniqueId(tabId);} else{var tab={Name:title,InternalName:tabId,HTML:tabHTMLContent,Selected:true,closable:closable};if(layout) tab.layout=layout;this.RunTimeTabs.push(tab);Ext.each(this.getTabPanelsList(),function(tab,index,allTabs){var tabPanel=this.m_tabPanel;tabPanel.add(tab);tabPanel.doLayout();this.registerAsContainer(tab);},this);} this.m_tabPanel.setActiveTab(this.m_activeTab);},CloseTab:function(tabId){var tabPanel=this.m_tabPanel;if(this.IsTabOpen(tabId)){var tab=tabPanel.child("#"+this.getTabUniqueId(tabId));if(tab){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.child("#"+this.getTabUniqueId(tabId));return(tab)?true:false;},ShowTab:function(i){var panel=this.m_tabPanel.items.get(i);if(panel) panel.tab.show();},HideTab:function(i){var panel=this.m_tabPanel.items.get(i);if(panel) panel.tab.hide();},ShowTabById:function(tabId){var panel=this.m_tabPanel.child("#"+this.getTabUniqueId(tabId));if(panel) panel.tab.show();},HideTabById:function(tabId){var panel=this.m_tabPanel.child("#"+this.getTabUniqueId(tabId));if(panel) panel.tab.hide();},SetTabDirty:function(tabId,dirty){var tab=this.m_tabPanel.child("#"+this.getTabUniqueId(tabId));if(tab){tab.dirty=dirty;var tabTextEl=tab.tab.btnInnerEl if(tabTextEl){if(Ext.isIE){var tabTextHtmlEl=tabTextEl.dom;if(dirty){tabTextHtmlEl.innerHTML+="*";} else{if(tabTextHtmlEl.innerHTML.charAt(tabTextHtmlEl.innerHTML.length-1)=="*") tabTextHtmlEl.innerHTML=tabTextHtmlEl.innerHTML.substring(0,tabTextHtmlEl.innerHTML.length-1);}} else{if(dirty){tabTextEl.addCls("x-tab-strip-dirty");} else{tabTextEl.removeCls("x-tab-strip-dirty");}}}}},IsTabDirty:function(tabId){var tab=this.m_tabPanel.child("#"+this.getTabUniqueId(tabId));return tab&&(tab.dirty==true);},SetTabTitle:function(tabId,title){var tab=this.m_tabPanel.child("#"+this.getTabUniqueId(tabId));if(tab){tab.setTitle(title);this.SetTabDirty(tabId,tab.dirty||false);}}}}); Ext.define('gxui.Message',function(){var msgCt;return{extend:'gxui.UserControl',initialize:function(){this.callParent(arguments);},onRender:function(){if(gxui.CBoolean(this.Show)){this.ShowMessage();}},onRefresh:function(){if(gxui.CBoolean(this.Show)){this.ShowMessage();}},createBox:function(t,s){return['
','
','

',t,'

',s,'
','
','
'].join('');},methods:{ShowMessage:function(title,message,type){type=type||this.Type;message=message||this.Message;title=title||this.Title;if(type=="alert"){var msgBox=Ext.create('Ext.window.MessageBox');Ext.defer(msgBox.show,100,msgBox,[{title:title,msg:message,buttons:Ext.MessageBox.OK,icon:this.Icon=="info"?Ext.MessageBox.INFO:(this.Icon=="question"?Ext.MessageBox.QUESTION:(this.Icon=="warning"?Ext.MessageBox.WARNING:Ext.MessageBox.ERROR))}]);} else{var titleMsgs=(title||"").split("|");Ext.each((message||"").split("|"),function(msg,i){if(!msgCt){msgCt=Ext.DomHelper.insertFirst(document.body,{id:'msg-div'},true);if(this.Cls!="") msgCt.addClass(this.Cls);} msgCt.alignTo(document,this.Position+'-'+this.Position);var m=Ext.DomHelper.append(msgCt,{html:this.createBox(titleMsgs[i],msg)},true);var timeoutId;var hideMessage=function(){var f;if(this.Position=='c'){f=function(){m.fadeOut({opacity:0,easing:'easeOut',remove:true});};}else{f=Ext.bind(function(){m.ghost(this.Position,{remove:true});},this);} timeoutId=setTimeout(f,this.Duration*1000);};m.slideIn(this.Position,{callback:hideMessage,scope:this});m.on('mouseover',function(e){if(timeoutId){clearTimeout(timeoutId);timeoutId=null;}},this);m.on('mouseout',function(e){var box=m.getBox();var x=e.getPageX();var y=e.getPageY();if(x&&y){if(x>box.x&&xbox.y&&y