Estou fazendo uma aplicação que lida com vários dados e que algumas
pessoas podem modificar ao mesmo tempo.

Um problema que encontrei foi o cursor do relógio toda vez que preciso
atualizar a lista na tela.

Para resolver isso, resolvi manter todos os dados na memória ram! Pelo
menos é o que estou tentando implementar. Provavelmente virão outras
sugestões, eu aceito. Mas no entanto gostaria de entender o problema
da minha tentativa.

Tenho um objeto  que contém um Remote Object. Sempre que esse remote
object me retorna dados do banco ( dados atualizados ) eu disparo um
evento que é capturado por outro objeto.

Essa parte está correta! Pelo debug eu vejo que no evento vem os dados
corretamente.

Esse outro objeto (FavorecidosAC) contém um Array Collection. Quando o
evento é disparado, junto com o evento vem um array collection com os
dados atualizados. Eu atualiza o ac do meu objeto.

package components.auxiliar
{
        import mx.collections.ArrayCollection;
        import mx.controls.Alert;

        [Bindable]
        public class FavorecidosAC
        {

                [Bindable] public var ac:ArrayCollection = new ArrayCollection;

                public function FavorecidosAC(source:Array=null)
                {

                        var obj:CacheObj = 
CacheDP.getCacheObj('listaFavorecidos');
                        if (!obj) Alert.show('erro obj nulo');
                        obj.addEventListener('listaFavorecidosResult',
function(event:CacheEvent)
                        {
                                var arr:Array = event.dp.source;
                                this.ac = new ArrayCollection(arr);
                                Alert.show('listaFavorecidos atualizado'); 
//brakpoint aqui
                        });
                }
        }
}

E ainda tenho um datagrid onde favac é do tipo FavorecidoAC

favac =  new FavorecidosAC;

<mx:DataGrid dataProvider="{favac.ac}" >
                        <mx:columns>
                                <mx:DataGridColumn headerText="nome" 
dataField="nome" />
                        </mx:columns>
                </mx:DataGrid>

Quando executo minha aplicação passa-se um tempo e em seguida o Alert
é disparado ('listaFavorecidos atualizado') no entando meu datagrid
não atualiza os dados. Na linha anterior do Alert eu coloquei um
breakpoint e no debug eu vejo meu this.ac atualizado. Mas no corpo da
aplicação, tenho um botão e no click dele

<mx:Button y="200">
                <mx:click>
                        <![CDATA[
                                favac.ac.refresh();
                                favac.ac; //brakpoint aqui
                        ]]>
                </mx:click>
        </mx:Button>

nesse contexto, no debug, quando olho minha propriedade ac, ela está
vazia. Não atualizada como esperado.

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a