I would suggest an extension or DropDownList for this, as its not
really common functionality.
Tink
Ryan we really should meet up!
On 20 Jan 2012, at 09:34, andrei apostolache wrote:
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.