Hi. An issue that I had with DropDownList is the exclusion of selectedItems in the DropDownListBase. I had to do some workarounds to be able to have multiple selections in a DropDownList.
Regards, Andrei. On Fri, Jan 20, 2012 at 12:01 AM, Ryan Frishberg <fri...@gmail.com> wrote: > Hey Tink, > > I can't say for sure if I'll be here or not in May. My current lease > expires in April, and if it's easy to find a short lease, I may stay a bit > longer. Otherwise, I'll pack myself back to the states :-) I'll > stay-tuned for the Spoon announcement and attempt to atleast make one > London flex user group meeting. If I can't make anything, I'll try and > arrange some drinks for the PPMC members here. > > Cheers, > Ryan > > On Wed, Jan 18, 2012 at 8:07 AM, Tink <f...@tink.ws> wrote: > > > On 18 Jan 2012, at 02:27, Jeffry Houser wrote: > > > > > >> The Flextras Mobile DropDownList extends the Flex DropDownList. The > >> problems related to how the drop down opens and closes with mouse up and > >> mouse down events. I had a lot of weird issues trying to get that to > work. > >> I ended up remapping everything to mouse click. > >> > >> This is how we got it working on mobile: > >> > >> 1) In partAdded, I added event listeners for [partRemoved removed said > >> listeners]: > >> > >> > dataGroup.addEventListener(**RendererExistenceEvent.**RENDERER_ADD, > >> dataGroup_rendererAddHandler_**Extended); > >> > dataGroup.addEventListener(**RendererExistenceEvent.**RENDERER_REMOVE, > >> dataGroup_**rendererRemoveHandler_**Extended); > >> > >> [These lines are 'from' the similar to what happens in the list > class--up > >> the hierarchy. The dataGroup adds event listeners for the > >> dataGroup_rendererAddHandler method which adds an event listener to a > >> **private** method item_mouseEventHandler. I'm pretty sure the private > >> mouse event handler was the problem; but memory is hazy. > >> > >> 2) The dataGroup_rendererAddHandler_**Extended method is based on the > >> dataGroup_RendererAddHandler method. Except I'm listening for the click > >> event. > >> > >> protected function > dataGroup_rendererAddHandler_**Extended(event:** > >> RendererExistenceEvent):void > >> { > >> var index:int = event.index; > >> var renderer:IVisualElement = event.renderer; > >> > >> if (!renderer) > >> return; > >> > >> renderer.addEventListener(**MouseEvent.CLICK, > >> item_clickHandler); > >> } > >> > >> > >> 3) the item_ClickHandler makes use of the super methods for handling the > >> opening and closing the DropDownList: > >> > >> protected function item_clickHandler(event:**MouseEvent):void{ > >> // this is a replacement for the mouse down handler; > >> // so we do actualy want to run the mouse down handler code in > >> this mouse click event > >> super.item_mouseDownHandler(**event); > >> > >> // immediately call the mouse up handler; because it seems to > >> be holding off selection until the > >> // mouse up event fires; which doesn't appear to happen > >> super.mouseUpHandler(event); > >> } > >> > >> > >> 4) And then make sure the mouse down handler does nothing: > >> > >> override protected function item_mouseDownHandler(event:** > >> MouseEvent):void > >> { > >> // do nothing because mouse up and mouse down handlers don't > >> work quite right on mobile devices > >> // rewrote all of this to use the click event > >> } > >> > >> > >> I've had clients use our extended component both in web and mobile > >> projects. > >> > >> You can see our web sample: https://www.flextras.com/** > >> MobileComponents/Samples/**MobileDropDownList/< > https://www.flextras.com/MobileComponents/Samples/MobileDropDownList/> > >> The default is like a traditional Flex DropDownList. > >> But, click the Change Renderer button and select Radio Button Renderer; > >> then select Change Skins and select Pop Up Skin 2. that is my > preferred > >> approach. > >> > >> We ended up adding a bunch of extra skin parts; and a handful of > >> ActionScript skin options; but I'd love to make the SDK handle the > mobile / > >> touch use case a lot easier. > >> > >> I'll see if I can get something simple checked in either tomorrow or > >> Thursday. Unfortunately today slipped by without me trying to figure > out > >> my SVN access and all that. > >> > >> -- > >> Jeffry Houser > >> Technical Entrepreneur > >> 203-379-0773 > >> -- > >> http://www.flextras.com?c=104 > >> UI Flex Components: Tested! Supported! Ready! > >> -- > >> http://www.theflexshow.com > >> http://www.jeffryhouser.com > >> http://www.asktheflexpert.com > >> -- > >> Part of the DotComIt Brain Trust > >> > > > > Hey Jeffry > > > > I'm proposing we fix the bug in DropDownListBase. > > > > This fix requires 2 additional 'if' statements and 2 extra lines of code. > > > > It means the DropDownList will continue to work the same on desktop, but > > will also work on mobile. > > > > As with all Spark based Lists in Flex, users can specify a custom > > itemRenderer or custom skin. > > > > Tink > > > > > > P.S. Ryan, sorry I missed your note. I've been thinking of getting a > > special event together at LFPUG in May on 'The Future of Flex' and > thought > > I'd see if I could get the London PPMC members down (you, me , Espen & > > Peter are all in London), although I might see If I can try and involve > > Spoon as well (see "Spoon Community Call Feb 2nd" thread). Are you still > > around in May, and you be up for that? Maybe I should create a separate > > thread. > > > > >