Hi Kiran, Thank for the suggestion, but I did not understand your comments about finite/infinite number completely. Could you please elaborate a little more on that?
I also tried adding XMLList to the dataprovider of the menuBar, but that did not help. Regards, Kapil On Mon, May 30, 2011 at 5:58 PM, kiran reddy <[email protected]> wrote: > Hi Kapil, > > As per my Knowledge, better to specify xmllist as dataprovider to menubar > and getMenuByID function doesnt have finite number. It is better to write > code that when you click on some component it has to activate. Because if it > has infinite number it will compile fast and get stuck somewhere. In if > condition you need to wirte as > > if(condition1) > { > menuBarXML.DataProvider = menuItem.id; > } > > I think this will help you a little bit to solve your issue. > > > Regards, > Kiran > > On Mon, May 30, 2011 at 4:30 PM, kapil kaushik < > [email protected]> wrote: > >> Hi Kiran, >> >> Please find the code snippet below. The function of interest is >> "updateVisibleMenuItems". Based on certain condition it tries to >> enable/disable one menuitem or other. In future there may be more menuitems >> and the conditions may get complex, but this in essence reflects what I am >> trying to implement. >> >> As you can see, I have tried both the approaches: >> 1. Trying to change the XML structure >> 2. Get an individual menuItem and set its enable/visible property to >> false. >> >> Regards, >> Kapil >> >> <?xml version="1.0" encoding="utf-8"?> >> <mx:MenuBar xmlns:fx="http://ns.adobe.com/mxml/2009" >> xmlns:s="library://ns.adobe.com/flex/spark" >> xmlns:mx="library://ns.adobe.com/flex/mx" >> change="onItemClick(event)" >> chromeColor="{Palette.RED}" >> creationComplete="init()" >> > >> <fx:Declarations> >> <!-- Place non-visual elements (e.g., services, value objects) here --> >> </fx:Declarations> >> <fx:Script> >> <![CDATA[ >> >> private function init():void { >> updateVisibleMenuItems(); >> } >> private function onItemClick(event:MenuEvent):void { >> updateVisibleMenuItems(); >> } >> private function updateVisibleMenuItems():void { >> var menuItem:MenuBarItem = null; >> var menu_item_1:MenuBarItem = getMenuByID("menuItem1"); >> var menu_item_2:MenuBarItem = getMenuByID("menuItem2"); >> if(condition1) { >> //menuBarXML.menuitem.(@id=="menuItem1").@enabled = "false"; >> //menuBarXML.menuitem.(@id=="menuItem2").@enabled = "true"; >> menu_item_1.visible = false; >> menu_item_1.enabled = false; >> menu_item_2.visible = true; >> } else { >> //menuBarXML.menuitem.(@id=="menuItem1").@enabled = "true"; >> //menuBarXML.menuitem.(@id=="menuItem2").@enabled = "false"; >> menu_item_1.visible = true; >> menu_item_2.visible = false; >> menu_item_2.enabled = false; >> } >> } >> private function getMenuByID(id:String):MenuBarItem { >> var menuItem:MenuBarItem = null; >> for(var i:uint = 0; i < this.menuBarItems.length; ++i) { >> menuItem = this.menuBarItems[i] as MenuBarItem; >> if(menuItem.id == id) { >> break; >> } >> } >> return menuItem; >> } >> ]]> >> </fx:Script> >> <fx:XMLList id="menuBarXML"> >> <menuitem id="menuItem1" label="Label1"></menuitem> >> <menuitem label="|" /> >> <menuitem id="menuItem2" label="Label2"></menuitem> >> <menuitem label="|" /> >> </fx:XMLList> >> </mx:MenuBar> >> >> >> On Mon, May 30, 2011 at 1:27 PM, kiran reddy <[email protected]>wrote: >> >>> Hi, >>> >>> It is not possible to explain you without seeing your code.Because where >>> you went wrong we cant imagine so please paste your code. >>> >>> >>> Kiran. >>> >>> On Sun, May 29, 2011 at 1:40 PM, kapil kaushik >>> <[email protected]>wrote: >>> >>>> Hi All, >>>> >>>> I am trying to hide a menu item at runtime in Flex4, but even if I find >>>> the relevant menuBarItem and do "item.visible = false" or "item.enabled = >>>> false", it does not work. >>>> Any comments/suggestions?? >>>> >>>> Thanks, >>>> Kapil >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Flex India Community" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/flex_india?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Flex India Community" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/flex_india?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Flex India Community" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/flex_india?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Flex India Community" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/flex_india?hl=en. > -- You received this message because you are subscribed to the Google Groups "Flex India Community" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/flex_india?hl=en.

