Comunidad de diseño web y desarrollo en internet online

Flex: Acceder a valor de atributo desde otro atributo.

Citar            
MensajeEscrito el 23 Ene 2009 11:52 am
Hola, me presento.

Mi nombre es Carlos, hace un tiempo leo CL que me ha resolvido ciertos problemas en mis dudas de programación. Espero estar activamente en el foro solucionando problemas :)

Tengo actualmente una duda y no he encontrado información en ninguna parte, espero que me puedan ayudar.

Tengo un TileList el cual debe calcular automáticamente el número de filas a mostrar (rowCount), para esto debo hacer el cálculo dependiendo de los objetos que tenga en mi TileList tomando columnCount y dividirlo por dataProvider.length, además hacerle un ceil.

Ejemplo

Código :

               <mx:TileList
                  id="pend"
                  width="230" rowCount="{Math.ceil(pend.dataProvider.length/3)}"
                  columnCount="3"
                  variableRowHeight="true"
                  itemRenderer="renderers.desarrollo_scrum_taskBox_renderer"
                  dataProvider="{pendiente}"
                  dragEnabled="true"
                  dropEnabled="true"
                  dragMoveEnabled="true"
                  allowMultipleSelection="true"
               />


Eso funciona sin problemas, pero necesito hacerlo lo del rowCount sin identificador, es decir sin id porque esto va dentro de una grilla.
Un ejemplo sería rowCount="{Math.ceil(this.dataProvider.length/this.columnCount)}" si es que con this pudiera llegar al TileList, pero this es el componente.

Les dejo el código de mi componente.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
   <mx:Script>
      <![CDATA[
         import mx.controls.Alert;
      ]]>
   </mx:Script>
   <mx:Array id="pendiente">
      <mx:Object label="Le molesto un segundo con un par pequeñeces, desde su cambio de domicilio he tenido algunos conflictos con el correo, según paso a detallar: 1.- ha estado intermitente la posibilidad de lectura de correos vía outlook pues indica el siguiente error: 'La tarea' 'Enviando y recibiendo mail.cmgi.cl' ha notificado el error (0x80042108) : 'Outlook no puede conectar con el servidor de correo entrante (POP3). Si sigue recibiendo este mensaje, póngase en contacto con el administrador del servidor o con el proveedor de servicios de Internet (ISP).' 2.- Via webmail solo he podido revisar el correo desde correos.mitocondria.cl con la cuenta [email protected], desde que hablamos que no funciona la página mail.cmgi.cl. Aprovecho de pedirte que me actualices las cuentas [email protected] y [email protected], para ambas olvidé la password, lo ideal es que a las tres cuentas se pueda acceder por aotlook o eudora y por webmail. Espero no distraerle mucho, si quiere me da el contacto de alguno de sus secuaces y continúo con él el tema." />
      <mx:Object label="Celhex: Quitar calcular iva de las facturas" />
      <mx:Object label="CEPECH: URGENTE! la pagina se demora en cargar" />
   </mx:Array>
   <mx:Array id="progreso">
      <mx:Object label="Tarea 1" />
      <mx:Object label="Tarea 4" />
   </mx:Array>
   <mx:Array id="verificar">
      <mx:Object label="Tarea terminada" />
      <mx:Object label="hi terminado" />
      <mx:Object label="informes" />
   </mx:Array>
   <mx:Array id="terminado">
      <mx:Object label="Tarea 1" />
      <mx:Object label="Tarea 2" />
      <mx:Object label="Tarea 3" />
      <mx:Object label="Tarea 4" />
      <mx:Object label="Tarea 5" />
   </mx:Array>
   <mx:Canvas width="100%" height="100%">
      <mx:Grid width="100%" height="100%">
         <mx:GridRow width="100%">
            <mx:GridItem>
               <mx:TileList
                  id="pend"
                  width="230" rowCount="{Math.ceil(pend.dataProvider.length/3)}"
                  columnCount="3"
                  variableRowHeight="true"
                  itemRenderer="renderers.desarrollo_scrum_taskBox_renderer"
                  dataProvider="{pendiente}"
                  dragEnabled="true"
                  dropEnabled="true"
                  dragMoveEnabled="true"
                  allowMultipleSelection="true"
                  creationComplete="trace()"
               />
            </mx:GridItem>
            <mx:GridItem>
               <mx:TileList
                  width="230"
                  columnCount="3"
                  variableRowHeight="true"
                  itemRenderer="renderers.desarrollo_scrum_taskBox_renderer"
                  dataProvider="{progreso}"
                  dragEnabled="true"
                  dropEnabled="true"
                  dragMoveEnabled="true"
                  allowMultipleSelection="true"
               />
            </mx:GridItem>
            <mx:GridItem>
               <mx:TileList
                  width="230"
                  columnCount="3"
                  variableRowHeight="true"
                  itemRenderer="renderers.desarrollo_scrum_taskBox_renderer"
                  dataProvider="{verificar}"
                  dragEnabled="true"
                  dropEnabled="true"
                  dragMoveEnabled="true"
                  allowMultipleSelection="true"
               />
            </mx:GridItem>
            <mx:GridItem>
               <mx:TileList
                  width="230"
                  columnCount="3"
                  variableRowHeight="true"
                  itemRenderer="renderers.desarrollo_scrum_taskBox_renderer"
                  dataProvider="{terminado}"
                  dragEnabled="true"
                  dropEnabled="true"
                  dragMoveEnabled="true"
                  allowMultipleSelection="true"
               />
            </mx:GridItem>
         </mx:GridRow>
      </mx:Grid>
   </mx:Canvas>
</mx:Box>


Espero que me puedan ayudar.

¡Muchas gracias!

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Ene 2009 01:00 pm
Usa una variable Bindable quie refleje el length de cada dataProvider, luego usa ese dato para el rowCount

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Ene 2009 01:05 pm
Si lo pensé, pero no puedo hacerlo porque no sé cuantas filas tendré.

El código muestra solo una fila en la grilla, y tendré N filas dependiendo de otro dataProvider.

Yo creo que debe haber algo como this pero que no se refiera al componente, sino al tag. algo como self o itself, no sé.
Si this lo fuera, rowCount como dije antes:
rowCount="{Math.ceil(this.dataProvider.length/this.columnCount)}"

Gracias por responder.

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Ene 2009 01:07 pm
Prueba:

rowCount="{terminado.length}"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Ene 2009 01:20 pm
Yo creo que voy a tener que hacer un componente nuevo extendiendo el TileList. No veo otra solución :s

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Ene 2009 01:25 pm
De todas formas si le das el columnCount, las filas las calcula automáticamente, no es necesario pasárselas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Ene 2009 01:34 pm
No se calcula, está quedando con tamaño fijo.

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Ene 2009 01:40 pm
Fuerza un redraw (no me acuerdo si era con invalidate)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Ene 2009 04:42 pm
Lo solucioné haciendo un nuevo componende, extendiendo a TileList.

Gracias por las repuestas Jorge. Un saludo.

Por w00p

24 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.