extjs4 - docs - ExtJs 4… ¿Cómo extender componentes Extjs 4?
extjs docs (4)
¿Por qué no ver el src de los componentes de extjs4 como Grid, Table ...
y aquí están los documentos:
http://docs.sencha.com/ext-js/4-0/#/guide/components <== important
http://docs.sencha.com/ext-js/4-0/#/guide/class_system
Ext.define(''My.custom.Component'', {
extend: ''Ext.Component''
});
alguien puede ayudarme con la forma de extender los componentes extjs utilizando la versión 4 de extjs. Estoy buscando una sintaxis adecuada para la misma. por favor ayuda..!!
A continuación se muestra un código de ejemplo de campo de texto extendido en ExtJS 4.
Además de usar las configuraciones y métodos existentes, este componente extendido también tiene una nueva propiedad de configuración creada y un nuevo método creado y asociado con un evento.
El propósito del componente es simple: muestra la etiqueta en color rojo si el valor es obligatorio, modifica el color de fondo del campo si se lee solo y también cambia el color de fondo del campo cuando está enfocado.
El código está debidamente comentado. Espero eso ayude.
Ext.define(''Ext.pnc.Textfield'', {
extend: ''Ext.form.field.Text'',//Extending the TextField
alias: ''widget.pnctextfield'',//Defining the xtype
config:{
focusCls:''focusClassFieldPnC'',//Providing value for existing config property.
testConfig:''testConfigValue''//Creating a new config. Accessor functions will be created for this one by ExtJS engine
},
constructor:function(cnfg){
this.callParent(arguments);//Calling the parent class constructor
this.initConfig(cnfg);//Initializing the component
this.on(''beforerender'',this.beforeRender);//Associating a new defined method with an event
},
//Defining a method below and associating this with an event in the constructor above
beforeRender:function(){
if(!this.allowBlank){
this.labelStyle = ''color:#FF0000'';
}
if(this.readOnly){
this.fieldCls = ''readOnlyClass'';
}
},
//Over-riding a function which already exists in parent class. Note that this has not been associated with any event in constructor as it already defined in parent class
afterRender:function(){
console.log(''after render function'');
this.callParent();//Calling the parent class method. This can be omitted if not required and is not a must
}
});
.readOnlyClass{
background:#FF0000 !important
}
.focusClassFieldPnC{
background:#00ff00 !important
}
Ext.define(''BS.view.MyGrid'' , {
extend: ''Ext.grid.Panel'',
alias: ''widget.my-grid'',
// Non-complex config types (booleans, integers, strings) go here
width: 1000,
autoHeight: true
initComponent: function() {
Ext.apply(this, {
// complex configs (objects / arrays) go here
columns: colModel,
});
this.callParent(arguments);
}
});
Ext.define(''myApp.Grid'', {
extend: ''Ext.Grid'',
alias: ''widget.mygrid''
....
....
}
ahora puedes usar xtype: ''mygrid''