[flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-04 Thread Claudiu Ursica
The problem here is that the default behaviour sends the focus outside
the list in the document that contains the list... ie the
txtAdaugaItem textfield in the code below... I managed before to switch
the tab between the 2 steppers catching the focusOut event of the first
stepper (stepperOne), but I had the same problem when the focus leaves
the second stepper (stepperTwo). It goes outside the list. If I prevent
default I don't know how to send the focus to the second renderer on the
first stepper (stepperOne). I can get it's index, but that is as far as
I got ...

Another strange thing is that I traced getNextFocusManagerComponent() on
the focusOut event of the stepperTwo and it displays the button
(btnAdaugaItem) which is after the textfield that is actually focused
(see bold id's below).

Sorry for being such a apin in the a** but this is getting a little
frustrating  and I am under pressure here te meet a deadline.


Thanks,
Claudiu


?xml version=1.0 encoding=utf-8?
mx:Application
 xmlns:mx=http://www.adobe.com/2006/mxml;
 layout=absolute
 initialize=appInitializeHandler(event)

 mx:Script
 ![CDATA[
 import mx.events.FlexEvent;
 import mx.collections.ArrayCollection;

 [Bindable]
 private var listDataProvider : ArrayCollection;

 /** EVENT HANDLERS **/

 private function appInitializeHandler(event:FlexEvent) :
void {
 listDataProvider = new
ArrayCollection([unu,doi,trei]);
 }

 private function btnAdaugaItemHandler(event:MouseEvent) :
void {
 (txtAdaugaItem.text.length  1) ?
listDataProvider.addItem(txtAdaugaItem.text) : txtAdaugaItem.text = ;
 txtAdaugaItem.text = ;
 }


 ]]
 /mx:Script

 mx:VBox
 width=100%
 height=100%
 verticalGap=0

 mx:Canvas
 id=listHolder
 width=100%
 height=100%
 mx:List
 selectable=false
 id=fxList
 width=100%
 height=100%
 dataProvider={listDataProvider}

itemRenderer=ro.fxcodex.itemRenderers.fxListItemRenderer
 /
 /mx:Canvas

 mx:Canvas
 id=toolsHolder
 width=100%
 height=70
 mx:TextInput
 id=txtAdaugaItem   - this gets highlightet as having
the focus
 x=40
 y=24
 /
 mx:Button
 id=btnAdaugaItem - this is displayed as being the next
focusable
 x=208
 y=24
 label=Adauga item
 click=btnAdaugaItemHandler(event)/

 /mx:Canvas

 /mx:VBox

/mx:Application




--- In flexcoders@yahoogroups.com, Alex Harui [EMAIL PROTECTED] wrote:

 You'll need more code in keyFocusChangeHandler.  It has to not call
 preventDefault when it is time to transfer the tab to the next
renderer.

 

 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On
 Behalf Of Claudiu Ursica
 Sent: Sunday, August 03, 2008 5:52 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Re: Tabbing children from custom item renderer
 inside List



 Ok, I managed to send the focus to the second numeric stepper, but
when
 I hit tab again I loose the tab and cannot sent the focus to the
second
 item in the list on the first numeric stepper.

 Now my code looks something like this:

 mx:HBox
 xmlns:mx=http://www.adobe.com/2006/mxml;
 implements=mx.managers.IFocusManagerComponent
 width=100%
 height=100%
 verticalAlign=middle

 .. skins and other stuff ..

 mx:Script
 ![CDATA[
 import mx.managers.IFocusManagerComponent;
 import mx.collections.ArrayCollection;
 import mx.controls.List;

 nb! sp;
 /** EVENT HANDLERS **/

 private function itemRendererDeleteButtonHandler(event:MouseEvent) :
 void {

 // lista va fi tot timpul si in toate situatiile
 itemRenderer.parent.parent

 var parentList : List = this.parent.parent as List;

 var parentListDataProvider:ArrayCollection = parentList.dataProvider
as
 ArrayCollection;

 var itemIndex:int = parentList.itemRendererToIndex(this);
 parentListDataProvider.removeItemAt(itemIndex);
 }


 public override function set data (val : Object) : void
 {
   super.data = val;
 }


 override protected function focusInHandler(even! t:FocusEvent):void
 {
 trace(Focu! sHandler );
 addEventListener(keyFocusChange, keyFocusChangeHandler);
 }

 protected function keyFocusChangeHandler(event:FocusEvent):void
 {
 event.preventDefault();
 trace(event.target);
 stepperTwo.setFocus();
 }

 ]]
 /mx:Script




 mx:Spacer width=10 /

 mx:NumericStepper id=stepperOne
 minimum=2
 maximum=100
 width=46
 height=20
 cornerRadius=3
 nbs

RE: [flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-04 Thread Alex Harui
tabbing in a DG is not handled by the FocusManager.  If the FocusManager
gets involved then something else is wrong.  The DG has its own
keyFocusChangeHandler that should be picking up the event when you don't
call preventDefault when you get keyFocusChange.  The DG will take care
of switching focus to the next editable renderer.



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Claudiu Ursica
Sent: Monday, August 04, 2008 12:13 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Tabbing children from custom item renderer
inside List



The problem here is that the default behaviour sends the focus outside
the list in the document that contains the list... ie the 
txtAdaugaItem textfield in the code below... I managed before to switch
the tab between the 2 steppers catching the focusOut event of the first
stepper (stepperOne), but I had the same problem when the focus leaves
the second stepper (stepperTwo). It goes outside the list. If I prevent
default I don't know how to send the focus to the second renderer on the
first stepper (stepperOne). I can get it's index, but that is as far as
I got ... 

Another strange thing is that I traced getNextFocusManagerComponent() on
the focusOut event of the stepperTwo and it displays the button
(btnAdaugaItem) which is after the textfield that is actually focused
(see bold id's below).

Sorry for being such a apin in the a** but this is getting a little
frustrating  and I am unde! r pressure here te meet a deadline.


Thanks, 
Claudiu


?xml version=1.0 encoding=utf-8?
mx:Application 
xmlns:mx=http://www.adobe.com/2006/mxml;
layout=absolute
initialize=appInitializeHandler(event)

mx:Script
![CDATA[
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;

[Bindable]
private var listDataProvider : ArrayCollection;

   ! /** EVENT HANDLERS **/  ;   
private function appInitializeHandler(event:FlexEvent) :
void {
listDataProvider = new
ArrayCollection([unu,doi,trei]);
}

private function btnAdaugaItemHandler(event:MouseEvent) :
void {
(txtAdaugaItem.text.length  1) ?
listDataProvider.addItem(txtAdaugaItem.text) : txtAdaugaItem.text = ;
txtAdaugaItem.text = ;
}
 !

]]
/mx:Script

mx:VBox
width=100%
height=100%
verticalGap=0

mx:Canvas
id=listHolder
width=100%
height=100%
mx:List
selectable=false
nbs! p;   id=fxList
  ! nbsp; n bsp;   width=100%
height=100%
dataProvider={listDataProvider}
 
itemRenderer=ro.fxcodex.itemRenderers.fxListItemRenderer
/
/mx:Canvas

mx:Canvas
id=toolsHolder
width=100%
height=70
mx:TextInp! ut
id=txtAdaugaItem   - this gets highlightet as having
the focus
x=40 
y=24 
/
mx:Button 
id=btnAdaugaItem - this is displayed as being the next
focusable
x=208 
y=24 
label=Adau! ga item
  !nbsp;   click=btnAdaugaItemHandler(event)/

/mx:Canvas

/mx:VBox

/mx:Application




--- In flexcoders@yahoogroups.com, Alex Harui [EMAIL PROTECTED] wrote:

 You'll need more code in keyFocusChangeHandler. It has to not call
 preventDefault when it is time to transfer the tab to the next
renderer.
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On
 Behalf Of Claudiu Ursica
 Sent: Sunday, August 03, 2008 5:52 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Re: Tabbing children from custom item renderer
 inside List
  
 
 Ok, I managed to send the focus to the second numeric stepper, but
when
 I hit tab again I loose the tab and cannot sent the focus to the
second
 item in the list on the first numeric stepper. 
 
 Now my code looks something like this:
 
 mx:HBox 
 xmlns:mx=http://www.adobe.com/2006/mxml;
 implements=mx.managers.IFocusManagerComponent
 width=100% 
 height=100%
 verticalAlign=middle
 
 .. skins and other stuff ..
 
 mx:Script
 ![CDATA[
 import mx.managers.IFocusManagerComponent;
 import mx.collections.ArrayCollection;
 import mx.controls.List;
 
 nb! sp; 
 /** EVENT HANDLERS **/
 
 private function it! emRendererDeleteButtonHandler(event:MouseEvent)!
:
g t; void {
 
 // lista va fi tot timpul si in toate situatiile
 itemRenderer.parent.parent
 
 var parentList : List = this.parent.parent as List; 
 
 var parentListDataProvider:ArrayCollection = parentList.dataProvider
as
 ArrayCollection;
 
 var itemIndex:int

RE: [flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-04 Thread Alex Harui
I posted a quick attempt to get something like this working.  It uses
DataGrid though.
 
http://blogs.adobe.com/aharui/2008/08/datagrid_itemeditor_with_two_i.htm
l



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Claudiu Ursica
Sent: Monday, August 04, 2008 12:13 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Tabbing children from custom item renderer
inside List



The problem here is that the default behaviour sends the focus outside
the list in the document that contains the list... ie the 
txtAdaugaItem textfield in the code below... I managed before to switch
the tab between the 2 steppers catching the focusOut event of the first
stepper (stepperOne), but I had the same problem when the focus leaves
the second stepper (stepperTwo). It goes outside the list. If I prevent
default I don't know how to send the focus to the second renderer on the
first stepper (stepperOne). I can get it's index, but that is as far as
I got ... 

Another strange thing is that I traced getNextFocusManagerComponent() on
the focusOut event of the stepperTwo and it displays the button
(btnAdaugaItem) which is after the textfield that is actually focused
(see bold id's below).

Sorry for being such a apin in the a** but this is getting a little
frustrating  and I am unde! r pressure here te meet a deadline.


Thanks, 
Claudiu


?xml version=1.0 encoding=utf-8?
mx:Application 
xmlns:mx=http://www.adobe.com/2006/mxml;
layout=absolute
initialize=appInitializeHandler(event)

mx:Script
![CDATA[
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;

[Bindable]
private var listDataProvider : ArrayCollection;

   ! /** EVENT HANDLERS **/  ;   
private function appInitializeHandler(event:FlexEvent) :
void {
listDataProvider = new
ArrayCollection([unu,doi,trei]);
}

private function btnAdaugaItemHandler(event:MouseEvent) :
void {
(txtAdaugaItem.text.length  1) ?
listDataProvider.addItem(txtAdaugaItem.text) : txtAdaugaItem.text = ;
txtAdaugaItem.text = ;
}
 !

]]
/mx:Script

mx:VBox
width=100%
height=100%
verticalGap=0

mx:Canvas
id=listHolder
width=100%
height=100%
mx:List
selectable=false
nbs! p;   id=fxList
  ! nbsp; n bsp;   width=100%
height=100%
dataProvider={listDataProvider}
 
itemRenderer=ro.fxcodex.itemRenderers.fxListItemRenderer
/
/mx:Canvas

mx:Canvas
id=toolsHolder
width=100%
height=70
mx:TextInp! ut
id=txtAdaugaItem   - this gets highlightet as having
the focus
x=40 
y=24 
/
mx:Button 
id=btnAdaugaItem - this is displayed as being the next
focusable
x=208 
y=24 
label=Adau! ga item
  !nbsp;   click=btnAdaugaItemHandler(event)/

/mx:Canvas

/mx:VBox

/mx:Application




--- In flexcoders@yahoogroups.com, Alex Harui [EMAIL PROTECTED] wrote:

 You'll need more code in keyFocusChangeHandler. It has to not call
 preventDefault when it is time to transfer the tab to the next
renderer.
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On
 Behalf Of Claudiu Ursica
 Sent: Sunday, August 03, 2008 5:52 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Re: Tabbing children from custom item renderer
 inside List
  
 
 Ok, I managed to send the focus to the second numeric stepper, but
when
 I hit tab again I loose the tab and cannot sent the focus to the
second
 item in the list on the first numeric stepper. 
 
 Now my code looks something like this:
 
 mx:HBox 
 xmlns:mx=http://www.adobe.com/2006/mxml;
 implements=mx.managers.IFocusManagerComponent
 width=100% 
 height=100%
 verticalAlign=middle
 
 .. skins and other stuff ..
 
 mx:Script
 ![CDATA[
 import mx.managers.IFocusManagerComponent;
 import mx.collections.ArrayCollection;
 import mx.controls.List;
 
 nb! sp; 
 /** EVENT HANDLERS **/
 
 private function it! emRendererDeleteButtonHandler(event:MouseEvent)!
:
g t; void {
 
 // lista va fi tot timpul si in toate situatiile
 itemRenderer.parent.parent
 
 var parentList : List = this.parent.parent as List; 
 
 var parentListDataProvider:ArrayCollection = parentList.dataProvider
as
 ArrayCollection;
 
 var itemIndex:int = parentList.itemRendererToIndex(this);
 parentListDataProvider.removeItemAt(itemIndex);
 }
 
 
 public override function set data (val : Object) : void
 {
 super.data = val

[flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-03 Thread Claudiu Ursica
Ok, I managed to send the focus to the second numeric stepper, but when
I hit tab again I loose the tab and cannot sent the focus to the second
item in the list on the first numeric stepper.

Now my code looks something like this:

mx:HBox
 xmlns:mx=http://www.adobe.com/2006/mxml;
 implements=mx.managers.IFocusManagerComponent
 width=100%
 height=100%
 verticalAlign=middle

.. skins and other stuff ..

 mx:Script
 ![CDATA[
 import mx.managers.IFocusManagerComponent;
 import mx.collections.ArrayCollection;
 import mx.controls.List;


/** EVENT HANDLERS **/

private function itemRendererDeleteButtonHandler(event:MouseEvent) :
void {

// lista va fi tot timpul si in toate situatiile
itemRenderer.parent.parent

var parentList : List = this.parent.parent as List;

var parentListDataProvider:ArrayCollection = parentList.dataProvider as
ArrayCollection;

var itemIndex:int = parentList.itemRendererToIndex(this);
parentListDataProvider.removeItemAt(itemIndex);
}


public override function set data (val : Object) : void
{
   super.data = val;
}


override protected function focusInHandler(event:FocusEvent):void
{
 trace(FocusHandler);
 addEventListener(keyFocusChange, keyFocusChangeHandler);
}

protected function keyFocusChangeHandler(event:FocusEvent):void
{
 event.preventDefault();
 trace(event.target);
 stepperTwo.setFocus();
}

]]
/mx:Script




 mx:Spacer width=10 /

 mx:NumericStepper id=stepperOne
 minimum=2
 maximum=100
 width=46
 height=20
 cornerRadius=3
 backgroundColor=white
 borderStyle=solid
 borderThickness=0
 tabEnabled=true
 /mx:NumericStepper

 mx:Spacer width=10 /

 mx:NumericStepper id=stepperTwo
 minimum=2
 maximum=100
 width=46
 height=20
 cornerRadius=3
 backgroundColor=white
 borderStyle=solid
 borderThickness=0
 tabEnabled=true
 /mx:NumericStepper

 mx:Button
 tabEnabled=false
 id=buttonRemoveItem
 width=15
 height=14
 styleName=removeItemButtonSkin
 click=itemRendererDeleteButtonHandler(event)
 buttonMode=true
 /

 mx:Spacer width=5 /

/mx:HBox


As said before the only components that I am interested in being in the
tabloop are the 2 numeric steppers.  Maybe I'm missing something but
when the focus is on the stepperTwo and I hit tab it goes away. I have
no idea how to send the focus on the second item in the list, eg the
first numeric stepper of the second item...

I have tried to do stuff in the focuOut evt handler for the second
numeric stepper but it doesn't seem to work 


TIA,
Claudiu



[flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-03 Thread Claudiu Ursica
Ok, I managed to send the focus to the second numeric stepper, but when
I hit tab again I loose the tab and cannot sent the focus to the second
item in the list on the first numeric stepper.

Now my code looks something like this:

mx:HBox
 xmlns:mx=http://www.adobe.com/2006/mxml;
 implements=mx.managers.IFocusManagerComponent
 width=100%
 height=100%
 verticalAlign=middle

.. skins and other stuff ..

 mx:Script
 ![CDATA[
 import mx.managers.IFocusManagerComponent;
 import mx.collections.ArrayCollection;
 import mx.controls.List;


/** EVENT HANDLERS **/

private function itemRendererDeleteButtonHandler(event:MouseEvent) :
void {

// lista va fi tot timpul si in toate situatiile
itemRenderer.parent.parent

var parentList : List = this.parent.parent as List;

var parentListDataProvider:ArrayCollection = parentList.dataProvider as
ArrayCollection;

var itemIndex:int = parentList.itemRendererToIndex(this);
parentListDataProvider.removeItemAt(itemIndex);
}


public override function set data (val : Object) : void
{
   super.data = val;
}


override protected function focusInHandler(event:FocusEvent):void
{
 trace(FocusHandler);
 addEventListener(keyFocusChange, keyFocusChangeHandler);
}

protected function keyFocusChangeHandler(event:FocusEvent):void
{
 event.preventDefault();
 trace(event.target);
 stepperTwo.setFocus();
}

]]
/mx:Script




 mx:Spacer width=10 /

 mx:NumericStepper id=stepperOne
 minimum=2
 maximum=100
 width=46
 height=20
 cornerRadius=3
 backgroundColor=white
 borderStyle=solid
 borderThickness=0
 tabEnabled=true
 /mx:NumericStepper

 mx:Spacer width=10 /

 mx:NumericStepper id=stepperTwo
 minimum=2
 maximum=100
 width=46
 height=20
 cornerRadius=3
 backgroundColor=white
 borderStyle=solid
 borderThickness=0
 tabEnabled=true
 /mx:NumericStepper

 mx:Button
 tabEnabled=false
 id=buttonRemoveItem
 width=15
 height=14
 styleName=removeItemButtonSkin
 click=itemRendererDeleteButtonHandler(event)
 buttonMode=true
 /

 mx:Spacer width=5 /

/mx:HBox


As said before the only components that I am interested in being in the
tabloop are the 2 numeric steppers.  Maybe I'm missing something but
when the focus is on the stepperTwo and I hit tab it goes away. I have
no idea how to send the focus on the second item in the list, eg the
first numeric stepper of the second item...

I have tried to do stuff in the focuOut evt handler for the second
numeric stepper but it doesn't seem to work 


TIA,
Claudiu



RE: [flexcoders] Re: Tabbing children from custom item renderer inside List

2008-08-03 Thread Alex Harui
You'll need more code in keyFocusChangeHandler.  It has to not call
preventDefault when it is time to transfer the tab to the next renderer.



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Claudiu Ursica
Sent: Sunday, August 03, 2008 5:52 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Tabbing children from custom item renderer
inside List



Ok, I managed to send the focus to the second numeric stepper, but when
I hit tab again I loose the tab and cannot sent the focus to the second
item in the list on the first numeric stepper. 

Now my code looks something like this:

mx:HBox 
xmlns:mx=http://www.adobe.com/2006/mxml;
implements=mx.managers.IFocusManagerComponent
width=100% 
height=100%
verticalAlign=middle

.. skins and other stuff ..

mx:Script
![CDATA[
import mx.managers.IFocusManagerComponent;
import mx.collections.ArrayCollection;
import mx.controls.List;

nb! sp;   
/** EVENT HANDLERS **/

private function itemRendererDeleteButtonHandler(event:MouseEvent) :
void {

// lista va fi tot timpul si in toate situatiile
itemRenderer.parent.parent

var parentList : List = this.parent.parent as List; 

var parentListDataProvider:ArrayCollection = parentList.dataProvider as
ArrayCollection;

var itemIndex:int = parentList.itemRendererToIndex(this);
parentListDataProvider.removeItemAt(itemIndex);
}


public override function set data (val : Object) : void
{
  super.data = val;
}


override protected function focusInHandler(even! t:FocusEvent):void
{
trace(Focu! sHandler );
addEventListener(keyFocusChange, keyFocusChangeHandler);
}

protected function keyFocusChangeHandler(event:FocusEvent):void
{
event.preventDefault();
trace(event.target);
stepperTwo.setFocus();
}

]]
/mx:Script




mx:Spacer width=10 /

mx:NumericStepper id=stepperOne
minimum=2
maximum=100
width=46
height=20
cornerRadius=3
nbs! p;   backgroundColor=white
borderStyle=solid
borderThickness=0
tabEnabled=true
/mx:NumericStepper

mx:Spacer width=10 /

mx:NumericStepper id=stepperTwo
minimum=2
maximum=100
width=46
height=20
cornerRadius=3
backgroundColor=white
borderStyle=solid
borderThickness=0
tabEnabled=true
   ! /mx:NumericStepper

 n! bsp;nbs p; mx:Button
tabEnabled=false
id=buttonRemoveItem
width=15
height=14
styleName=removeItemButtonSkin
click=itemRendererDeleteButtonHandler(event)
buttonMode=true
/

mx:Spacer width=5 /

/mx:HBox


As said before the only components that I am interested in being in the
tabloop are the 2 numeric steppers.  Maybe I'm missing something but
when the focus is on the stepperTwo and I hit tab it goes away. I have
no idea how to send the focus on the second item in the list, eg the
first numeric stepper of! the second item...

I have tried to do stuff in the focuOut evt handler for the second
numeric stepper but it doesn't seem to work 


TIA,
Claudiu