…方法は、ちょっと簡単にはいかない感じ…
GalleryListが、qx.ui.basic.Terminatorの派生クラスで、アイテム自体はdiv要素を並べているだけなのでインデックスとか取れないようだ。
とりあえず試行錯誤の記録。最終的には、numberプロパティとして設定した#01とかの文字をDOM要素から抜き出して判断するという、微妙な対応に。
var galleryList = new qx.ui.embed.GalleryList(galleryData);
galleryList.getManager().addEventListener("changeSelection", function(e) {
alert(e.getData()); // DIV
alert(e.getTarget()); // DomSelectionManager
alert(e.getTarget().getItemHashCode( e.getTarget().getSelectedItem() )); // 550
alert(e.getTarget().getSelectedItem().firstChild); // DIV
alert(e.getTarget().getSelectedItem().firstChild.innerHTML); // #01
alert(e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue); // #01
var num = Number( e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue.match(/#0?([0-9]+)/i)[1] );
…
});
うーむ、使いにくい。
VerticalLayoutに自分でオブジェクト突っ込んでいった方が楽かも…
マネージャにqx.manager.selection.DomSelectionManagerクラスが指定されているので、getItems()でdivリスト取得して、上から順にisEqual(var vItem1, var vItem2)とかした方が確実だとは思う。
遅いと思うけど。
ちなみに、リストの並べ替えもGalleryListでやろうとして地獄を見た。