Foro

Ventana comun en mis programas

0
Tengo un que desarrollar un proyecto algo grande en el que todas mis aplicaciones tienen este codigo comun que basicamente es una ventana con una cabecera con informacion basica, todos mis programas deben tener esta misma ventana, a la que dependiendo del programa podria cambiar ya sea el ancho, alto y el titulo de la misma. Actualmente copio todo este codigo en todos mis programas, y se me presenta el problema de que si hay algun cambio debo hacerlo en todos mis programas Se que en Extjs se puede crear una clase de la cual puedo instanciarla y asi hacer reutilizacion de codigo, pero no logro instanciar correctamente la ventana por lo que pido que me guien en como hacerlo correctamente. Lo que deseo es en cada nuevo programa que haga llamar a este codigo que crea la ventana pasandole los parametros basicos que necesite, ya que tengo tambien un dataStore al que le debo enviar un parametro llamado "codigo_modulo" y a esa ventana que instancio agregarle ya en mi programa el "form" o contenido propio del programa. Como podria realizar esto ??? Aqui esta el codigo que tengo: dsGenCargarInformacionCabecera = new Ext.data.JsonStore({ url: '../../gen/controller/gen.php', root: 'data', totalProperty: 'total', baseParams: { codigoEmpresa: codigoEmpresa, action: 'cargarInformacionCabecera', login: usuarioBD, codigo_modulo: 9 }, fields: ['codigo_empresa', 'nombre_empresa', 'codigo_usuario', 'nombre_usuario', 'codigo_modulo' , 'nombre_modulo', 'fecha_calendario', 'cadena_fecha_calendario', 'fecha_calendario_anterior', 'fecha_servidor', 'cadena_fecha_servidor'] }); btnCadenaNombreUsuario = new Ext.Button({ text: '' }); btnCadenaFechaCalendario = new Ext.Button({ text: '' }); btnCadenaFechaServidor = new Ext.Button({ text: '' }); btnCadenaNombreEmpresa = new Ext.Button({ text: '' }); btnCadenaNombrePrograma = new Ext.Button({ text: 'adm01021000' }); var statusbarEmpresa = new Ext.Toolbar({ items:[btnCadenaNombreUsuario, '->', '-', btnCadenaFechaCalendario, '-', '-', btnCadenaFechaServidor] }); var toolbarEmpresa = new Ext.Toolbar({ items:[btnCadenaNombreEmpresa, '->', '-', btnCadenaNombrePrograma] }); form = new Ext.FormPanel({ id: 'formadm01021000', border: false, width: '100%', height: '100%', frame: true, labelWidth: 100, layout: 'form', items: [...] }); win = new Ext.Window({ title: "Fideicomiso - Consulta - Bienes", width: 900, height: 500, closable: false, autoScroll: true, tbar: toolbarEmpresa, bbar: statusbarEmpresa, bodyStyle: 'background-color:#fff; padding: 10px', items: form }) win.show(); dsGenCargarInformacionCabecera.load({ callback: function(rec,o,s) { btnCadenaNombreEmpresa.setText(rec[0].get('codigo_empresa') + ' - ' + rec[0].get('nombre_empresa')); btnCadenaNombreUsuario.setText('Usuario: ' + rec[0].get('nombre_usuario')); btnCadenaFechaCalendario.setText('F. Calendario: ' + rec[0].get('cadena_fecha_calendario')); btnCadenaFechaServidor.setText('Fecha: ' + rec[0].get('cadena_fecha_servidor')); } }); Gracias ....
0
Lo ideal en situaciones como esta es crear clases abstractas, 99% de las veces yo siempre creo clases abstractas en mi aplicación para estandarizar el look and feel o bien aquellos componentes que se require mostrar en todas los componentes de mi aplicación. Para crear una clase abstracta basta con extender del componente que desees personalizar. Ext.ns('MyApp.abstract.window'); MyApp.abstract.window.Window = Ext.extend(Ext.window.Window,{ maximizable : true, resizable : false, // Todo lo que quiero hacer común entre todas las instancias que usaré }); Luego puedo instanciar esa clase en cualquiera de mis módulos! crear clases abstractas es algo muy importante para poder reutilizar código y no andar copiando/pegando porciones de código por todos lados. Saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.