Ola pessoal
Estou tentando fazer um menu para escolher quais colunas da grid.
Já tenho ate ele funcionando mais quando coloco dentro de um mdi ele
não funciona.
Se algem poder me ajudar. Abaixo estão os 3 fonts.

<--Meu componente para selecionar a coluna da grid-->
<?xml version="1.0" encoding="utf-8"?>

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml";
                >
    <mx:Script>
        <![CDATA[
                import mx.controls.DataGrid;
            import mx.utils.ObjectUtil;
            import mx.controls.dataGridClasses.DataGridColumn;

                        [Bindable]
                        private var _dataGrid:DataGrid;

                        [Inspectable(category="WebInovacoes")]
                        public function set dataGrid (value:DataGrid):void{
                                if (value!=null){
                                        if (_dataGrid==null){
                                                _dataGrid= value;
                                        }
                                }
                        }

            private function coluna(evento:Event):void{
                    var estadoAtual:Boolean;
                    var child:DataGridColumn;
                    var i:int=0;
                    var colunas:Array=_dataGrid.columns;
                        for (i; i<=colunas.length-1;i++){
                                        child= colunas[i];
                                        if 
(child.headerText==evento.target.label){
                                                estadoAtual= child.visible;
                                                child.visible= !estadoAtual;
                                                continue;
                                                break;
                                        }
                        }
            }
        ]]>
    </mx:Script>

    <mx:PopUpButton label="Escolha suas colunas" >
            <mx:popUp>
                                <mx:Tile direction="horizontal" verticalGap="2" 
left="0"
right="0" bottom="0" backgroundColor="white" >
                    <mx:Repeater id="list"
dataProvider="{_dataGrid.columns}">
                                        <mx:CheckBox id="checkbox"
label="{list.currentItem.headerText}"
selected="{list.currentItem.visible}" change="coluna(event)"
width="120"/>
                                </mx:Repeater>
                        </mx:Tile>
            </mx:popUp>
                </mx:PopUpButton>

 </mx:Canvas>





<-- aqui esta a grid  -->
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns="br.com.webinovacoes.componentes.flexmdi.*"
        xmlns:mx="http://www.adobe.com/2006/mxml";
        xmlns:utils="br.com.webinovacoes.componentes.utils.*"
        width="600" height="480"
        xmlns:grid="br.com.webinovacoes.componentes.grid.*"
        xmlns:formularios="br.com.webinovacoes.componentes.formularios.*"
        creationComplete="inicia();" >

                <mx:Script source="../../../componentes/utils/lib.as"/>
                <utils:Conexao id="cn"/>
                <mx:Script>
                        <![CDATA[
                                import mx.controls.Alert;
                                import 
br.com.webinovacoes.eventos.financeiro.EventContextCP;
                                import 
br.com.webinovacoes.entity.financeiro.ContasPagarVO;

                            private var vo:ContasPagarVO;
                            private var evtContextCP:EventContextCP;
                            [Bindable]
                                private var cm:ContextMenu;


                                /**
                                * Inicia o Form
                                */
                                private function inicia():void{
                                          //Cria instancia
                            this.vo = new ContasPagarVO;
                            cn.service.destination="ContasPagarService";
                        // Atualiza Grid
                        cn.service.todos();

                            // Novo Lançamento
                            var cmNovoLancamento:ContextMenuItem = new
ContextMenuItem("Novo lançamento",true);

cmNovoLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
cmNovoLancamento_menuItemselect);

                            // Editar Lançamento
                            var cmEditarLancamento:ContextMenuItem = new
ContextMenuItem("Editar lançamento");

cmEditarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
cmEditarLancamento_menuItemselect);
                            // Estornar
                            var cmEstornarLancamento:ContextMenuItem = new
ContextMenuItem("Estornar lançamento");

cmEstornarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
cmEstornarLancamento_menuItemselect);
                            // Baixar Lançamento
                            var cmBaixarLancamento:ContextMenuItem = new
ContextMenuItem("Baixar lançamento");

cmBaixarLancamento.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
cmBaixarLancamento_menuItemselect);
                            // Antecipar Data de vencimento do titulo
                            var cmAnteciparLancamento:ContextMenuItem = new
ContextMenuItem("Antecipar vencimento",true);

                                //Context Menu
                            cm = new ContextMenu();
                                cm.hideBuiltInItems();
                            cm.customItems.push(cmNovoLancamento);
                            cm.customItems.push(cmEditarLancamento);
                            cm.customItems.push(cmEstornarLancamento);
                            cm.customItems.push(cmBaixarLancamento);
                            cm.customItems.push(cmAnteciparLancamento);

                            dgGrid.contextMenu=cm;
                        }
                        /**
                         * Evento NovoLançamento
                         */
                        private function
cmNovoLancamento_menuItemselect(evt:ContextMenuEvent):void{

                evtContextCP = new
EventContextCP("ContextMenuCPNovoLancamento");
                                systemManager.dispatchEvent( evtContextCP );
                        }
                        /**
                         * Evento EditarLançamento
                         */
                        private function
cmEditarLancamento_menuItemselect(evt:ContextMenuEvent):void{
                                if (dgGrid.selectedItem==null){
                                        Alert.show("Favor selecionar algum 
registro");
                                }else{
                                        if(dgGrid.selectedItem.status=="B"){
                                                Alert.show("Atualização de 
títulos, somente para titulos em
aberto. Status A");
                                        }else{
                                evtContextCP = new
EventContextCP("ContextMenuCPEditarLancamento");
                                evtContextCP.vo = dgGrid.selectedItem.valueOf();
                                                systemManager.dispatchEvent( 
evtContextCP );
                                        }
                                }
                        }

                        private function
cmEstornarLancamento_menuItemselect(evt:ContextMenuEvent):void{
                                if (dgGrid.selectedItem==null){
                                        Alert.show("Favor selecionar algum 
registro");
                                }else{
                                        if(dgGrid.selectedItem.status=="B"){
                                evtContextCP = new
EventContextCP("ContextMenuCPEstornarLancamento");
                                evtContextCP.vo = dgGrid.selectedItem.valueOf();
                                                systemManager.dispatchEvent( 
evtContextCP );
                                        }else{
                                                Alert.show("Estorno de títulos, 
somente para titulos em
baixados. Status B");
                                        }
                                }
                        }

                   private function
cmBaixarLancamento_menuItemselect(evt:ContextMenuEvent):void{
                                if (dgGrid.selectedItem==null){
                                        Alert.show("Favor selecionar algum 
registro");
                                }else{
                                        if(dgGrid.selectedItem.status=="A"){
                                evtContextCP = new
EventContextCP("ContextMenuCPBaixarLancamento");
                                evtContextCP.vo = dgGrid.selectedItem.valueOf();
                                                systemManager.dispatchEvent( 
evtContextCP );
                                        }else{
                                                Alert.show("Baixa de títulos, 
somente para titulos em aberto.
Status A");
                                        }
                                }
                        }
                        /**
                    * Atualiza Grid
                    */
                    private function atualizaGrid():void{

                }
                        ]]>
                </mx:Script>
                <mx:Canvas width="100%" height="64">
                        <formularios:Formulario id="fr">
                                <formularios:Campo x="10" y="6" label="Data 
Inicial">
                                        <formularios:CampoData/>
                                </formularios:Campo>
                                <formularios:Campo x="190" y="6" label="Data 
Final">
                                        <formularios:CampoData width="91"/>
                                </formularios:Campo>
                                <mx:RadioButtonGroup id="Status" />
                                    <mx:RadioButton x="10" y="36" label="Todas" 
groupName="Status"/
>
                                    <mx:RadioButton x="77" y="36" 
label="Abertas"
groupName="Status"/>
                                    <mx:RadioButton x="152" y="36" 
label="Baixadas"
groupName="Status"/>
                                    <mx:RadioButton x="236" y="36" 
label="Canceladas"
groupName="Status"/>
                                    <mx:RadioButton x="333" y="36" 
label="Conciliadas"
groupName="Status"/>
                        </formularios:Formulario>
                    <mx:LinkButton x="500" y="20" label="Pesquisar"
click="atualizaGrid()"/>
                </mx:Canvas>


                <mx:ApplicationControlBar id="menuGrid" width="100%" 
dock="true">
                                <mx:Spacer width="100%" />
                                <grid:SeletorColuna dataGrid="{dgGrid}"/>
                </mx:ApplicationControlBar>
                <grid:DataGridFilter id="dgGrid" width="100%" height="100%"
dataProvider="{cn.service.todos.lastResult}" y="35"
resizableColumns="true" >
                        <grid:columns>
                                <mx:DataGridColumn headerText="ID" 
dataField="id" visible="false"/
>
                                <mx:DataGridColumn headerText="Status" 
width="22"
dataField="status"/>
                                <mx:DataGridColumn headerText="Data"  
dataField="data"
labelFunction="labelFunctionData"/>
                                <grid:DataGridColumnFilter headerText="Pessoa" 
dataField="pessoa"
filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer"
width="50"/>
                                <mx:DataGridColumn headerText="Vencimento" 
dataField="vencimento"
labelFunction="labelFunctionData" width="85" />
                                <mx:DataGridColumn headerText="Venc. Real"
dataField="vencimentoReal" labelFunction="labelFunctionData"
width="85" />
                                <grid:DataGridColumnFilter headerText="Valor" 
dataField="valor"
filterRenderer="br.com.webinovacoes.componentes.grid.RelacionalFilterRenderer"
width="65" textAlign="right"/>
                                <grid:DataGridColumnFilter headerText="Natureza"
dataField="natureza"
filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer"/
>
                                <grid:DataGridColumnFilter headerText="Origem" 
dataField="filial"
filterRenderer="br.com.webinovacoes.componentes.grid.BeginWithFilterRenderer"/
>
                        </grid:columns>
                </grid:DataGridFilter>

</mx:VBox>






<-- e aqui o mdi -->

<?xml version="1.0" encoding="utf-8"?>
<MDIWindow
        xmlns="br.com.webinovacoes.componentes.flexmdi.containers.*"
        xmlns:mx="http://www.adobe.com/2006/mxml";
        xmlns:utils="br.com.webinovacoes.componentes.utils.*"
        width="630" height="480" title="Contas a pagar"
        xmlns:grid="br.com.webinovacoes.componentes.grid.*"
        xmlns:formularios="br.com.webinovacoes.componentes.formularios.*"
        creationComplete="inicia();"

xmlns:contaspagar="br.com.webinovacoes.apps.financeiro.contaspagar.*">

        <mx:ApplicationControlBar id="menu" width="100%">
                <mx:LinkBar id="linkbar" dataProvider="{telas}"/>
        </mx:ApplicationControlBar>


        <mx:Script source="../../../componentes/utils/lib.as"/>

        <mx:ViewStack id="telas" creationPolicy="all" height="100%"
width="100%">
                <!-- Lançamento -->
                <mx:Panel label="Lançamento">
                        <contaspagar:CPLancamento id="lancamento"/>
                </mx:Panel>
                <!-- Baixas -->
                <contaspagar:CPBaixas id="baixas"  label="Baixas" width="100%"/>
                <!-- Estorno -->
                <mx:Panel label="Estorno" title="Estorno"  >
                        <contaspagar:CPEstorno id="estorno" />
                </mx:Panel>
                <!-- Consulta -->
                <contaspagar:CPConsulta id="Consulta" label="Consultas" />
                <!-- Bordero -->
                <contaspagar:CPBordero id="Bordero" label="Borderô" 
width="100%"/>
                <!-- Relatorios -->
                <mx:Panel label="Relatórios">
                        <contaspagar:CPRelatorios id="Relatorios"/>
                </mx:Panel>

        </mx:ViewStack>

        <utils:Conexao id="cn"/>
                <mx:Script>
                        <![CDATA[
                                import 
br.com.webinovacoes.eventos.financeiro.EventContextCP;

                                /**
                                * Inicia o Form
                                */
                                private function inicia():void{

                                //

systemManager.addEventListener("ContextMenuCPNovoLancamento",eventoCPNovoLancamento);

systemManager.addEventListener("ContextMenuCPEditarLancamento",eventoCPEditarLancamento);

systemManager.addEventListener("ContextMenuCPEstornarLancamento",eventoCPEstornarLancamento);

systemManager.addEventListener("ContextMenuCPBaixarLancamento",eventoCPBaixarLancamento);

                        }
                        // Evento para novo Lançamento
                                [Inspectable(category="WebInovacoes")]
                                private function
eventoCPNovoLancamento(event:EventContextCP):void{
                                        lancamento.fr.limparForm();
                                        telas.tabIndex = 0;
                                        linkbar.selectedIndex =0;
                                }
                        // Evento para Editar Lançamento
                                [Inspectable(category="WebInovacoes")]
                                private function
eventoCPEditarLancamento(event:EventContextCP):void{
                                        telas.selectedIndex = 0;
                                        lancamento.atualizaForm(event.vo);
                                }

                                // Evento para Estornar lançamento
                                [Inspectable(category="WebInovacoes")]
                                private function
eventoCPEstornarLancamento(event:EventContextCP):void{
                                        telas.selectedIndex = 2;
                                        estorno.atualizaForm(event.vo);
                                }

                                // Evento para Baixar lançamento
                                [Inspectable(category="WebInovacoes")]
                                private function
eventoCPBaixarLancamento(event:EventContextCP):void{
                                        telas.selectedIndex = 1;
                                        baixas.atualizaForm(event.vo);
                                }

                        ]]>
                </mx:Script>



</MDIWindow>

--~--~---------~--~----~------------~-------~--~----~
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