データクラスから各コントロールに一度に値をセットすることができます。これにはset-values-to-contorlsプロシージャを利用します。下記の例では、Fooクラスから、フィールド名がコントロールのnameが一致するものへ値をセットしています。
set-values-to-controlsのset-value-proc引数は、nameが一致しない場合や、コントロールのvalueとデータクラスのフィールドの型が一致しない場合に、変換ロジックを記載できるものです。
def tf1 = {TextField name=”tf-1″} def tf2 = {TextField name=”tf-2″} def tf3 = {TextField name=”tf-3″} def tf4 = {TextField} def tf5 = {TextField name=”no-name”} def tf6 = {TextField name=”tf-1″}
def td = {TextDisplay name=”td”} def df = {DateField name=”df”} def cb = {CommandButton name=”cb”} def root-graphic = {VBox {HBox tf1, tf2, tf3}, {HBox td, tf4, tf5, tf6}, df, cb } || set values of graphic {set-values-to-controls {Foo}, root-graphic, set-value-proc = {fn v, p, c => {if p.name == c.name then {if-non-null value = {p.get-value v} then set c.value-as-any = {if p.type == int and c.value-type == String then (value * 3) & “” else value } } } } }
|
逆に、Fooオブジェクトからコントロールへ値をセットするには、set-values-from-controlsを使用します。
パッケージ名:COM.CURLAP.LIB.UI