/**
*	A LouGIS library by Lounaispaikka.
*	@copyright Lounaispaikka, www.lounaispaikka.fi <CC BY-SA 3.0>
*	@version 2011-12-19T13:32:34+02:00
*/
Ext.namespace("Ext.ux.LouGIS.Panel");
Ext.ux.LouGIS.Panel.LayerInfo=Ext.extend(Ext.ux.LouGIS.Panel,{buttonAlign:"center",constructor:function(b){this.formType="LayerInfo";Ext.ux.LouGIS.Panel.LayerInfo.superclass.constructor.call(this,b);this.setTitle(t(""))},loadContent:function(){if(!this.contentLoaded){this.on("contentloaded",function(){this.createGrids();this.checkBoxFunction();this.doLayout()},this);this.requestFormData();this.contentLoaded=true}},processButtons:function(b,a,c){Ext.ux.LouGIS.Panel.LayerInfo.superclass.processButtons.call(this,b,
a,c);this.saveButton=c},saveContent:function(){var b=this,a=Ext.getCmp("layerInfoForm");if(a==undefined)a=Ext.getCmp("editLayerInfoForm");var c=a.getForm(),h=[];a=a.items;for(var d=1;d<=a.length;++d){var g=getJsonOfStore(Ext.getCmp("layerInfoGrid_"+d).getStore());h.push(g)}Ext.Ajax.request({url:"/run/dataset/saveLayerInfoColumns/",method:"POST",params:{store:Ext.encode(h)},success:function(e){e=Ext.decode(e.responseText);e.success||Ext.Msg.alert(t(""),e.msg)}});c.submit({method:"POST",url:"/run/dataset/saveLayerInfoForm/",
text:t(""),waitMsg:t(""),submitEmptyText:false,success:function(e,f){var i=Ext.decode(f.response.responseText);if(i.success){notify(t(""),i.msg);Ext.ux.LouGIS.Panel.LayerInfo.superclass.saveContent.call(b)}else Ext.Msg.alert(t(""),i.msg)},failure:function(e,f){var i=Ext.decode(f.response.responseText);Ext.Msg.alert(t(""),i.msg)}})},createGrids:function(){for(var b=Ext.getCmp("layerInfoForm").items,a=1;a<=b.length;++a){var c=b.items[a-1],h=new Ext.data.JsonStore({id:"LayerInfoStore_"+a,root:"columns",
url:"/run/dataset/getLayerInfoStore/?layerId="+c.id,fields:[{name:"id",type:"int"},{name:"layer_id",type:"int"},{name:"name",type:"string"},{name:"datatype",type:"string"},{name:"column_alias",type:"string"},{name:"queryable",type:"bool"}]}),d=new Ext.grid.CheckColumn({header:t(""),dataIndex:"queryable"}),g=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{dataIndex:"name",header:t("")},{dataIndex:"datatype",header:t("")},{dataIndex:"column_alias",header:t(""),editor:new Ext.form.TextField({allowBlank:false})},
d]}),e=new Ext.ux.dd.GridDragDropRowOrder({copy:false,scrollable:true}),f=new Ext.grid.RowSelectionModel({singleSelect:true});d=new Ext.grid.EditorGridPanel({id:"layerInfoGrid_"+a,fieldLabel:t(""),store:h,anchor:"95%",autoHeight:true,cm:g,sm:f,clicksToEdit:1,plugins:[d,e],enableDragDrop:true,ddText:t("")});h.load();c.insert(2,d);c.doLayout()}},checkBoxFunction:function(){for(var b=Ext.getCmp("layerInfoForm").items,a=1;a<=b.length;++a){var c=new Ext.form.Checkbox({id:"allSelect_"+a,boxLabel:t("")});
c.on("check",function(h,d){var g=h.id.split("_");g=Ext.getCmp("layerInfoGrid_"+g[1]).getStore();for(var e=g.totalLength,f=0;f<e;++f)d?g.getAt(f).set("queryable",true):g.getAt(f).set("queryable",false)});b.items[a-1].add(c)}}});

