DropdownList へのListValueItem の設定方法は? - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: DropdownList へのListValueItem の設定方法は? (/showthread.php?tid=1019) |
DropdownList へのListValueItem の設定方法は? - umemura - 12-19-2013 DropdownList に対して、ListValueItem を設定する際に、 下記のコードで設定すると、実行は出来るのですが、 リストを選んだ際に、エラーが発生します。 Code: def dl = {DropdownList} ■エラー内容 アプレット [9-34] - DropdownList 内の ListValueItem のラベル '[ListValueItem @0x074141D4]' をクローンできません。の為、例外Errorで停止 しかし、下記のような記述であれば、問題ありませんでした。 Code: {for itm in dm do また、DefaultListModel の値が、String であれば、 DoropdownList.data-model に設定しても、問題ありませんでした。 (ただし、ラベル=値 になってしまいますが) Code: def dm = DoropdownList に ListValueItem を設定する方法としては、 append を使うのが正しい、ということなのでしょうか。 for 文を使わなければいけない、という点に違和感を感じています。 もし、よりシンプルで正しい方法があれば、教えてください。 RE: DropdownList へのListValueItem の設定方法は? - dyoshida - 02-02-2014 よりシンプルな設定方法が見つかっていないのでご参考までなのですが data-modelはListItem そのものではなくListItem.init-valueを格納しているようです。 data-modelに値を登録した場合は関連付けられているListModelControlのlist-item-creation-procが 呼ばれ、登録した値よりListItemを生成してListModelControl.items:{Array-of ListItem}に格納されるので 挙げられているコードだとvalueにListValueItem、labelにVisualとしてListValueItemを設定したListValueItemが リスト項目として登録され、表示時にlabelがらみでエラーがおきているのでは。 COM.CURL.OPEN.GUI.CONTROL-LOGICAL.ListModelControl.appendのコードを見ると、ListItemが指定された 場合は、list-item-creation-procが呼び出されないようにしつつ、data-modelにListItem.init-value、itemsに 指定されたListItemを登録するということを行っていました。 DropdownList オブジェクトの生成後にリスト項目を一括してappendさせる手法があればよいのですが 残念ながら見つけられていません。 |