Segue um exemplo que fiz.

http://diegofeijo.wordpress.com/2010/02/19/flex3-tree-dinamico-com-xml/

On 18 ago, 10:12, Samuel Soares <samuelesoa...@gmail.com> wrote:
> Bom dia, tenho que montar o menubar da minha aplicação de forma
> dinâmica: o usuário faz o login, após isso o menu é montado de acordo
> com as pemissões de acesso do usuário. Se o usuário não tem acesso a
> uma opcao o menu aparece desabilitado. Sei que tenho que passar o
> parametro 'enabled' como false;
>
> Estou tentando com ArrayCollection:
>
> 1. se eu montar primeiro o arraycollection na inicialização, ele
> funciona, mas não consigo alterar o 'enabled' do menu:
>
> [Bindable]
> private var menuArrc:ArrayCollection = new ArrayCollection(
>         [{label:"Cadastros" enabled:'false', children:[{label:" Clientes "},
> {label:" Outros ",children:[{label:" Qqualuqer coisa"}]}]},
>         {label:" Vendas ", children:[{label:"Teste "}]},
>         {label:"Consultas ", children:[{label:"Teste "}]},
>         {label:"Relatórios ", children:[{label:" Teste "}]}
>         ]);
>
> <mx:MenuBar id="menu" y="93" left="10" right="10" height="25"
> dataProvider="{menuArrc}" itemClick="Menu_Click(event);"></mx:MenuBar>
>
> 2. se eu montar o arraycollection após o login, o menu fica [object
> Object] e aparece somente o menu principal, seus sub-menus nem
> aparecem:
>
> private var menuArrc:ArrayCollection = new ArrayCollection();
>
> private function login():void
> {
>         ...
>
>         MontaMenu();
>
>         ...
>
> }
>
> private function MontarMenu():void
> {
>         menuArrc.addItem([{label:"Cadastros", children:[{label:" Clientes "},
> {label:" Outros ",children:[{label:" Qqualuqer coisa"}]}]}]);
>
> }
>
> <mx:MenuBar id="menu" y="93" left="10" right="10" height="25"
> dataProvider="{menuArrc}" itemClick="Menu_Click(event);"></mx:MenuBar>
>
> 3. Eu até usei o xmllist, como na documentação, mas o problema sempre,
> como nos outros, é que tenho que alterar os dados do menu após o
> login. Eu não consegui alterar o item do menu, usando o xmllist. Por
> exemplo, alterar o atributo 'enabled';
>
> alguém tem alguma idéia de como resolver? Obrigado.

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

Responder a