Bonjour,

J'ai une application flex avec une datagrid définie comme ça

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<mx:DataGrid id="vListTpt" width="100%" height="121" change="ctrlModif()"
						click="{clickListTpt();}" editable="true"
						itemEditEnd="{itemEditEndTpt(event);}" tabIndex="11" textAlign="left" tabFocusEnabled="true" >
		<mx:columns>
				<mx:DataGridColumn headerText="N°" width="23" dataField="Rangtpt" editable="false" itemRenderer="renderer.TptRenderer" textAlign="center"/>
				<mx:DataGridColumn headerText="Date départ" width="76" dataField="DatedepV" editable="true" itemRenderer="renderer.TptRenderer" id="TptDateDeb" textAlign="center">
					<mx:itemEditor>
						<mx:Component>
							<Renderer:DateEditor formatString="DD/MM/YYYY" yearNavigationEnabled="true" dayNames="[Dim,Lun,Mar,Mer,Jeu,Ven,Sam]" monthNames="             [Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre]" change="{MajDateDepV();}" DefVal="1" tabEnabled="true"/>
						</mx:Component>
					</mx:itemEditor>
				</mx:DataGridColumn>
				<mx:DataGridColumn headerText="Ressource" width="68" dataField="Ressource" editable="false" showDataTips="true" dataTipField="Ressource" itemRenderer="renderer.ResTptRenderer" textAlign="center"/>
				<mx:DataGridColumn headerText="H. Départ" width="68" dataField="Hdep" editable="true" itemRenderer="renderer.HeureDebRenderer" rendererIsEditor="true" editorDataField="Heure" textAlign="center" />
				<mx:DataGridColumn headerText="Date arrivée" width="76" dataField="DatearrV" editable="true" itemRenderer="renderer.TptRenderer"  id="TptDateArr" textAlign="center">
					<mx:itemEditor>
						<mx:Component>
							<Renderer:DateEditor formatString="DD/MM/YYYY" yearNavigationEnabled="true" dayNames="[Dim,Lun,Mar,Mer,Jeu,Ven,Sam]"
												 monthNames="[Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre]" change="{MajDateArrV();}" DefVal="2"/>
						</mx:Component>
					</mx:itemEditor>
				</mx:DataGridColumn>
				<mx:DataGridColumn headerText="H. Arrivée" width="68" dataField="Harr" editable="true" itemRenderer="renderer.HeureFinRenderer" rendererIsEditor="true" editorDataField="Heure" textAlign="center"/>
				<mx:DataGridColumn headerText="UF Arrivée" width="73" dataField="Numsrvarr" editable="false" showDataTips="true" dataTipField="Numsrvarr" itemRenderer="renderer.TptRenderer" textAlign="center"/>
				<mx:DataGridColumn headerText="Distance" width="58" rendererIsEditor="true" editorDataField="newDist" itemRenderer="renderer.DistRenderer" textAlign="center"/>
		</mx:columns>
</mx:DataGrid>
Mon problème est en plusieurs parties. Je voudrais que l'utilisateur puisse se déplacer de champs éditable en champ éditable via tab.
Au départ ça ne fonctionne qu'avec les champs de date ( et encore seul la zone se sélectionne, elle ne réponds pas à un événement clavier)

Donc j'ai 3 objets différents dans cette datagrid dont je voudrais gérer le focus:

les dates :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<mx:DataGridColumn headerText="Date départ" width="76" dataField="DatedepV" editable="true" itemRenderer="renderer.TptRenderer" id="TptDateDeb" textAlign="center">
		<mx:itemEditor>
			<mx:Component>
				<Renderer:DateEditor formatString="DD/MM/YYYY" yearNavigationEnabled="true" dayNames="[Dim,Lun,Mar,Mer,Jeu,Ven,Sam]" monthNames="[Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre]" change="{MajDateDepV();}" DefVal="1" tabEnabled="true"/>
			</mx:Component>
		</mx:itemEditor>
</mx:DataGridColumn>
les heures :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<mx:DataGridColumn headerText="H. Arrivée" width="68" dataField="Harr" editable="true" itemRenderer="renderer.HeureFinRenderer" rendererIsEditor="true" editorDataField="Heure" textAlign="center"/>
dont le renderer a cette tête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" textAlign="right" height="20" width="50%" horizontalGap="0" scaleX="0.5" scaleY="1" 
focusEnabled="false" tabChildren="true" tabFocusEnabled="false" implements="mx.managers.IFocusManagerComponent" >
        <mx:Script>
		<![CDATA[ ....
                ]]>
	</mx:Script>
	<mx:NumericStepper id="vHeure" change="HeureChange();" valueCommit="HeureChange();" minimum="0" maximum="24" stepSize="1" tabFocusEnabled="true" focusEnabled="true" tabEnabled="true" tabIndex="1" />	
	<mx:Label text=":" />
	<mx:NumericStepper id="vMin"   change="HeureChange();" valueCommit="HeureChange();" minimum="0" maximum="59" stepSize="1" tabFocusEnabled="true" focusEnabled="true" tabEnabled="true" tabIndex="2"/>	
</mx:HBox>
La "CASE" de la datagrid reçoit le focus de tabulation depuis que j'ai ajouté "implements="mx.managers.IFocusManagerComponent"" mais les Numstepper ne reçoivent pas le focus dans le détail , et si j'appuie sur TAB quand ma case de renderer a le focus ça passe à la prochaine case focusable. Je voudrais que ça aille jusqu'au stade où l'utilisateur peut faire: tab 15 tab 30 tab pour renseigner 15h30 par exemple.

et les distances:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<mx:DataGridColumn headerText="Distance" width="58" rendererIsEditor="true" editorDataField="newDist" itemRenderer="renderer.DistRenderer" textAlign="center"/>
avec renderer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"  verticalAlign="middle" textAlign="right" height="20" width="60" horizontalGap="0" implements="mx.managers.IFocusManagerComponent" focusEnabled="false" tabEnabled="false" tabFocusEnabled="false">
   <mx:Script>
        <![CDATA[....
         ]]>
    </mx:Script>    
  <mx:TextArea id="distGlob" width="35" height="20" editable="true" themeColor="#009DFF" change="this.newDist=new Number(distGlob.text);"
  	            updateComplete="this.newDist=new Number(distGlob.text);" text="{data.newDistTot}" tabFocusEnabled="true" focusEnabled="true" tabEnabled="true" tabIndex="1"/>	
  <mx:Label text="km" width="25" height="20"/>    
</mx:HBox>
où là même comportement constaté la case de la datagrid se focusse mais pas le textarea et rentrer un chiffre au clavier ne fait rien.

J'ai vu qu'il existait un IFocusManagerComplexComponent mais si j'essaie de le mettre en implements Flash Builder met une erreur sans donner de message explicatif ( une croix d'erreur générale sans ligne pointée)

J'espère que je suis claire et que quelqu'un aura une idée pour m'indiquer une piste !

Merci à tous!