カスタムのリスト項目ビューを作成しました ( http://news.qooxdoo.org/tutorial-part-4-2-custom-widgets-4に基づく)。
このリストの選択項目に問題があります。常に最初の要素が選択されています (リストのどの要素をクリックしても)。
問題を解決するにはどうすればよいですか?
これが私のリストアイテムウィジェットです:
qx.Class.define("project.MyView", { 拡張: qx.ui.core.Widget, include : [qx.ui.form.MModelProperty], 構造:関数(){ this.base(引数); var レイアウト = 新しい qx.ui.layout.Grid(4, 2); layout.setColumnFlex(1, 1); this._setLayout(レイアウト); this._createChildControl("アイコン"); this._createChildControl("日付"); this._createChildControl("説明"); }、 プロパティ : { 外観 : { 絞り込む:真、 初期化:「リスト項目」 }、 アイコン: { チェック:「文字列」、 適用: "_applyIcon", nullable : true }、 日にち : { チェック:「文字列」、 適用: "_applyDate", nullable : true }、 説明 : { チェック:「文字列」、 適用: "_applyDescription", nullable : true } }、 メンバー: { _createChildControlImpl : 関数(id) { 変数制御; スイッチ (id) { ケース "アイコン": コントロール = 新しい qx.ui.basic.Image(this.getIcon()); control.setAnonymous(真); this._add(コントロール、{ 行: 0, 列: 0, 行スパン: 2 }); 壊す; ケース「日付」: コントロール = 新しい qx.ui.basic.Label(this.getDate()); control.setAnonymous(真); this._add(コントロール、{ 行: 0, 列: 2 }); 壊す; ケース「説明」: コントロール = 新しい qx.ui.basic.Label(this.getDescription()); control.setAnonymous(真); control.setRich(真); this._add(コントロール、{ 行: 0, 列: 1 }); 壊す; } || コントロールを返す || this.base(引数、id); }、 _applyIcon : 関数(値, 古い) { var icon = this.getChildControl("icon"); icon.setSource(値); }、 _applyDescription : 関数 (値、古い) { var description = this.getChildControl("説明"); description.setValue(値); }、 _applyDate : 関数 (値、古い) { var date = this.getChildControl("date"); date.setValue(値); } }、 破壊:関数(){ } });
...そしてここで私はそれをどのように使用するか:
this.list = 新しい qx.ui.form.List(); this.listController = new qx.data.controller.List(null, this.list); this.listController.setDelegate({ createItem : 関数() { 新しいプロジェクトを返します.MyView(); }、 bindItem : function(コントローラー、アイテム、id) { controller.bindProperty("説明", "説明", null,item, id); controller.bindProperty("icon", "icon", null, item, id); controller.bindProperty("date", "date", null, item, id); }、 configureItem : 関数(項目) { item.getChildControl("アイコン").setWidth(48); item.getChildControl("アイコン").setHeight(48); item.getChildControl("アイコン").setScale(true); item.setMinHeight(52); } });