Un projet m’oblige à utiliser les tree flex … c’est pas que j’veux pas mais c’est qu’il faut implémenter pas mal de chose pour le drag and drop par exemple … et que c’est pas très intuitif …
Entre autres difficultés, pouvoir éditer un noeud avec un double clic …
Il y a pourtant un evenement itemDoubleClick … çà aurait pu être pas mal … le souci c’est que l’évènement itemEditBegin est appellé en mm temps … du coup le noeud se met en mode édition avant de finir le double clic
Certains diront de mettre un event.preventDefault() dans la méthode handler de l’itemEditBegin et d’utiliser un tree.editedItemPosition = event dans la méthode handler de l’itemDoubleClick …. et ben çà marche pas … parce que le set editedItemPosition déclenche l’évènement du itemBeginClick … qui lui mm contient un event.preventDefault() .. du coup y’a rien qui se passe ….
Tout çà pour dire que ma solution consiste à placer un Boolean …. c’est crade (à mon goût) mais çà a le mérite de fonctionner
.. et çà .. c’est le principal :p (cf ci dessous)
A bon entendeur !
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.TextInput;
import mx.controls.Alert;
import mx.events.ListEvent;
private var dc:Boolean = false;
public function itemEditBeginHandler(event:ListEvent):void{
if(!dc){
event.preventDefault();
}
dc = false;
}
public function itemDoubleClickHandler(event:ListEvent):void{
dc = true;
myTree.editedItemPosition = event;
}
]]>
</mx:Script>
<mx:Tree
id="myTree"
labelField="@label"
width="100%"
height="100%"
editable="true"
itemEditBegin="itemEditBeginHandler(event)"
itemDoubleClick="itemDoubleClickHandler(event)"
doubleClickEnabled="true">
<mx:dataProvider>
<mx:XMLList id="treeData">
<node label="Mail Box">
<node label="Inbox">
<node label="Marketing"/>
<node label="Product Management"/>
<node label="Personal"/>
</node>
<node label="Outbox">
<node label="Professional"/>
<node label="Personal"/>
</node>
<node label="Spam"/>
<node label="Sent"/>
</node>
</mx:XMLList>
</mx:dataProvider>
</mx:Tree>
</mx:Application>