sprakash
1 Aug 2012, 12:17 AM
I am building a dynamic form builder with EXTJS 4.1
I have a property grid with some properties. and a preview of a component (in this case a number field).
On edit of the properties, i would like to see the updated property values.
for example, initially no min value is set in the preview.
if i edit th min value in property grid, it should be set to the component used for preview.
see the image below.
37658
I use the code as:
var numberEditorProperties=[
{configName:'fieldLabel',name:'Field Label',value:'',type:'string'},
{configName:'minValue',name:'Min Value',value:'',type:'number'},
{configName:'minText',name:'Min Value Text',value:'',type:'number'},
{configName:'maxValue',name:'Max Value',value:'',type:'number'},
{configName:'maxText',name:'Max Value Text',value:'',type:'string'},
{configName:'formatPattern',name:'Number Format',value:'0,000',type:'string'}
];
var propertyStore = Ext.create('Ext.data.Store', {
model: 'OptionProperties',
data:numberEditorProperties,
autoLoad: true
});
var properties=Ext.create('Ext.grid.property.Grid', {
title: 'Option Configuration',
width: 300,
store:propertyStore,
listeners:{
edit:function(ed,e,eo){
e.record.commit();
e.grid.applyPreview();
}
},
applyPreview:function(){
var config={};
this.store.each(function(r){
config[r.data.configName]=r.data.configName;
config[r.data.configName]=r.data.value;
});
var target=Ext.getCmp('numberFieldPreview');
if(target)// I tried the following.
{
//var targetCmp=target.cloneConfig();
//Ext.apply(config,{id:'numberFieldPreview'})
//Ext.apply(targetCmp,config);
//target.setConfig(targetConfig);
//Ext.getCmp('numberFieldPreview').destroy();
//Ext.getCmp('numberEditorContainer').insert(1,targetCmp);
//Ext.getCmp('numberFieldPreview').doComponentLayout( );
}
}
});
var numberEditorContainer={
xtype:'container',
id:'numberEditorContainer',
items:[properties,{
xtype:'numberfield',
id:'numberFieldPreview',
padding:3,
anchor:'100%',
msgTarget:'qtip',
height:'55',
fieldLabel:'Number Field'
}]
};
I have a property grid with some properties. and a preview of a component (in this case a number field).
On edit of the properties, i would like to see the updated property values.
for example, initially no min value is set in the preview.
if i edit th min value in property grid, it should be set to the component used for preview.
see the image below.
37658
I use the code as:
var numberEditorProperties=[
{configName:'fieldLabel',name:'Field Label',value:'',type:'string'},
{configName:'minValue',name:'Min Value',value:'',type:'number'},
{configName:'minText',name:'Min Value Text',value:'',type:'number'},
{configName:'maxValue',name:'Max Value',value:'',type:'number'},
{configName:'maxText',name:'Max Value Text',value:'',type:'string'},
{configName:'formatPattern',name:'Number Format',value:'0,000',type:'string'}
];
var propertyStore = Ext.create('Ext.data.Store', {
model: 'OptionProperties',
data:numberEditorProperties,
autoLoad: true
});
var properties=Ext.create('Ext.grid.property.Grid', {
title: 'Option Configuration',
width: 300,
store:propertyStore,
listeners:{
edit:function(ed,e,eo){
e.record.commit();
e.grid.applyPreview();
}
},
applyPreview:function(){
var config={};
this.store.each(function(r){
config[r.data.configName]=r.data.configName;
config[r.data.configName]=r.data.value;
});
var target=Ext.getCmp('numberFieldPreview');
if(target)// I tried the following.
{
//var targetCmp=target.cloneConfig();
//Ext.apply(config,{id:'numberFieldPreview'})
//Ext.apply(targetCmp,config);
//target.setConfig(targetConfig);
//Ext.getCmp('numberFieldPreview').destroy();
//Ext.getCmp('numberEditorContainer').insert(1,targetCmp);
//Ext.getCmp('numberFieldPreview').doComponentLayout( );
}
}
});
var numberEditorContainer={
xtype:'container',
id:'numberEditorContainer',
items:[properties,{
xtype:'numberfield',
id:'numberFieldPreview',
padding:3,
anchor:'100%',
msgTarget:'qtip',
height:'55',
fieldLabel:'Number Field'
}]
};