• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

Combinando TreePanel y TabPanel

Comparte tus proyectos y aplicaciones desarrolladas con Ext.

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 29 Jul 2008, 05:16
Bueno despues de investigar un poco voy a lanzar mi primer "boceto" de mi ERP.

Podeis ver una demo online AQUÍ.
Última edición por Anonymous el 24 Ene 2010, 22:36, editado 1 vez en total
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!

Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 29 Jul 2008, 09:11
Me pide Usuario y Contraseña para poder ver la demo y lo mismo para poder descargar el ZIP. Agradecería que compartas un usuario de prueba.

Saludos.
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 29 Jul 2008, 09:21
Perdon he hecho unos cambios en el server:

Usuario: userweb
pass: userweb
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 29 Jul 2008, 19:19
Muy buen ejemplo Manolo! Creo que es un tipo de aplicación donde los usuarios acuden mucho, el tener un í
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 29 Jul 2008, 19:48
Por supuesto! No hay problema. Pero me tendras que explicar como cambio el título del post que no lo encuentro :P. Sobre el tema de capturas y tal no te preocupes que las pondré. Estoy trabajando en el proyecto como veras en otros post y cuando tenga algo mas en firme abriré un post como dios manda :)
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 30 Jul 2008, 13:41
Manolo López escribió:Por supuesto! No hay problema. Pero me tendras que explicar como cambio el título del post que no lo encuentro :P. Sobre el tema de capturas y tal no te preocupes que las pondré. Estoy trabajando en el proyecto como veras en otros post y cuando tenga algo mas en firme abriré un post como dios manda :)

Bárbaro! Ahí lo cambié y de paso lo emprolijé para que quede mejor. ;)
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 31 Jul 2008, 16:12
Nuevo cambios calentitos!! calentitos!!!

Demo : http://limestudio.es/ext/ext_test/test72/
Código:http://limestudio.es/ext/ext_test/test72/test72.zip

Cambios introducido:

- Se reorganizado el código de la aplicación para que sea más fácil su mantenimiento

- Creado una extensión del tabpanel añadiendo una función addTab

addTab(id,title,url,type)
id -> identificador de la pestaña
title -> Título
url -> url que se cargará
type -> Tipo de pestaña
iframe -> Crearemos un ifram en la pestaña y cargaremos dentro la url
load -> Cargaremos la url en un div

Código: Seleccionar todo
addTab: function (id,title,url,type)
    {
      //alert(url);
      var open = !this.getItem(id);
      if (open)
      {

         switch (type)
         {
            case 'iframe':

               //Creamos un nuevo ifram y cargamos dentro la url
               var newPanel = new Ext.Panel({
                    id : id,
                    title: title,
                    loadScripts: true,
                    autoScroll: true,
                    closable: true,
                    iconCls:'menu_'+id,
                    layout:'fit',

                    items: [ new Ext.ux.IFrameComponent({ id: id, url: url, name: id}) ]
                  });
                 this.add(newPanel);
                  this.setActiveTab(newPanel);
            break;
            case 'load':
               //Cargamos la pestaña por ajax


                   var newPanel = new Ext.Panel({
                    id : id,
                    contentEl: 'div',
                    title: title,
                    loadScripts: true,
                    autoScroll: true,
                    closable: true,
                    iconCls:'menu_'+id,
                    layout:'fit',

                  autoLoad: {url: url, scripts: true, scope: this}

                  });
                 this.add(newPanel);
                 this.setActiveTab(newPanel);
            break;
            default:
               alert("Tipo de tab no definido");
            break;
         }
      }
      else {
         //Si ya tenemos la pestaña creada la seleccionaremos
         this.setActiveTab(id);
      }

Podemo ver el funcionamiento con clientes ( que es del tipo load y con facturas que es del tipo iframe )

- Se han modificacdo el treepanel para que cada vez que se haga click en un nodo abra la pestaña correspondiente. La notable mejora es que pasamos toda la configuran desde el archivo json que usamos para crear el árbol.

tree.php
Código: Seleccionar todo
[{

    text:'Administracion',
    expanded:true,
    children:[
    {
       id : 'clientes',
       tabType:'load',
        text:'Clientes',
        iconCls:'menu_clientes',
        leaf:true
    },{
       id : 'facturas',
       tabType:'iframe',
        text:'Facturas',
        iconCls:'menu_facturas',
        leaf:true
    }]
},
{

   text:'Web',
   expanded:true,
   children:[
   {
      id : 'google',
      tabType:'iframe',
      url: 'http://www.google.com',
       text:'Google',
       iconCls:'group',
       leaf:true
   }]
}
]

Código: Seleccionar todo
...
listeners: {
      click : {
         scope  : this,
             fn     : function( n, e ) {

                //Accedemos a los a atributod del json que usamos para crear el nodo con
                if (n.attributes.url)
                {
                   url = n.attributes.url;
                }
                else {
                   url = n.id+'/'+n.id+'.html';
                }

                //Abrimos el nuevo tab
                app.tabpanel.addTab(n.id,n.text,url,n.attributes.tabType);
             }
      }

   },
...

Podemos acceder a los atributos de la hoja mediante n.attributes.


Bueno , por ahora, esto es todo, poco a poco iré ampliando con mas cosas.


Por cierto. Si abrís la pestaña clientes vereis que la grid no ocupa todo el alto del contenedor. ¿Alguna idea para solucionar esto ?


Un saludo.
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 31 Jul 2008, 21:35
Vas bien!!! :D
Manolo López escribió:Por cierto. Si abrís la pestaña clientes vereis que la grid no ocupa todo el alto del contenedor. ¿Alguna idea para solucionar esto ?

Podes hacer:
Código: Seleccionar todo
new Ext.GridPanel({
      ,...
      ,height: Ext.getCmp('tabpanel').getInnerHeight()-1
      ,...
});

Es una de las alternativas...espero que te sirva.

Suerte. :)
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 01 Ago 2008, 02:24
Pues parece que lo de

Código: Seleccionar todo
Ext.getCmp('tabpanel').getInnerHeight()-1

no sirve
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 01 Ago 2008, 10:18
Me imagino que cambiaste el 'tabpanel' por el id de tu TabPanel, verdad?
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 01 Ago 2008, 15:27
UPS!!!! :rolleyes:

Solucionado.

Gracias
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )

Ext.foro.Novato
Mensajes: 97
Registrado: 18 Jul 2008, 06:47
NotaPublicado: 01 Ago 2008, 15:46
Por cierto, sabes como hacer para que si redimensionas la ventana se reajuste la altura ?
Manolo López Torrent
I+D
LimeStudio S.L. (( http://www.limestudio.es )
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 01 Ago 2008, 20:31
Para ese caso creo que te vendría bien usar los plugins: FitToContainer o FitToParent.

Saludos.
Última edición por Anonymous el 12 Jul 2009, 16:26, editado 1 vez en total
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Nuevo
Mensajes: 9
Registrado: 04 Jun 2008, 12:46
NotaPublicado: 07 Sep 2008, 15:11
Saludos desde mexico!
He revisado el codigo y aunque hay partes que aun no comprendo del todo hay en especial una funcion que me intriga no encontrar cual es su utilidad; me refiero a Ext.ns()

Tengo entendido que significa "namespace" y lei un poco para que sirve usar namespace en general pero no entiendo del todo en que beneficia usarlo, en el codigo viene algo como "Ext.ns('app') y he visto que crean objetos JSON (corriganme si em equivoco) escribiendo algo asi "app.miTab = .........." pero como dije, no entiendo bien que beneficios trae consigo usarlo.

Ojala puedan aclararme eso y les estare enormemente agradecido!

Hasta pronto!

Ext.foro.Nuevo
Mensajes: 2
Registrado: 19 Dic 2008, 10:28
NotaPublicado: 19 Dic 2008, 11:08
No funciona ningun link para ver o descargar el ejemplo podrias corregirlo por favor ya que me seria de mucha ayuda el aprender a hacer lo que planteas en el tema.

Saludos
Siguiente

Volver a Ejemplos y proyectos





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!