“5.11.6 ユーザデータの定義(マッシュアップ開発例)”でユーザデータを定義した画面フォームに、Ajaxページエディタを利用して、画面部品の定義を記述します。
Ajaxページエディタの操作方法については、“付録F Ajaxページエディタ”を参照してください。
画面部品の定義では、ユーザデータをモデルとして利用するための機能定義と、UI部品を使用するための定義を記述します。
認証部の機能定義とUI部品定義
機能定義の記述内容
<!-- 認証部のユーザデータをモデルとして利用するための機能定義 -->
<div rcf:type="Model" rcf:id="authinfoModel" rcf:object="authData"></div>
UI部品定義の記述内容
<div rcf:id="authinfoContainer" rcf:type="ViewStack" rcf:width="700px" rcf:height="50px" style="left: 0px; top: 5px; position: absolute" rcf:selectedIndex="0"> <!-- ログイン認証前 --> <div rcf:id="beforeauthContainer" rcf:type="ViewContainer" rcf:label="ログイン認証前" rcf:width="620px" rcf:height="30px" style="left: 5px; top: 10px; position: absolute"> <!-- 認証部のUI部品定義とモデルバインディング --> <div id="before_div" style="visibility: hidden; width: 620px; height: 30px; left: 0px; top: 0px; position: absolute"> <div rcf:id="label_userid" rcf:type="Text" rcf:value="ユーザID" style="left: 5px; top: 8px; position: absolute"></div> <!-- userid入力 テキスト入力フィールド定義 --> <div rcf:id="userid" rcf:type="TextInput" rcf:width="155px" rcf:height="20px" style="left: 80px; top: 5px; position: absolute" rcf:value="{authinfoModel.userid}"></div> (1) <div rcf:id="label_password" rcf:type="Text" rcf:value="パスワード" style="left: 260px; top: 8px; position: absolute"></div> <!-- password入力 テキスト入力フィールド定義 --> <div rcf:id="password" rcf:type="TextInput" rcf:width="155px" rcf:height="20px" style="left: 340px; top: 5px; position: absolute" rcf:value="{authinfoModel.password}" (2) rcf:password="true"></div> <!-- ログインボタン定義 --> <div rcf:id="loginButton" rcf:type="Button" rcf:label="ログイン" rcf:width="80px" rcf:height="24px" style="left: 515px; top: 5px; position: absolute"></div> </div><!-- id="before_div" --> </div> <!-- ログイン認証後 --> <div rcf:id="afterauthContainer" rcf:type="ViewContainer" rcf:label="ログイン認証後" rcf:width="620px" rcf:height="30px" style="left: 5px; top: 10px; position: absolute"> <!-- 認証部のUI部品定義とモデルバインディング --> <div id="after_div" style="visibility: hidden; width: 620px; height: 30px; left: 0px; top: 0px; position: absolute"> <!-- userid テキストフィールド定義 --> <div rcf:id="userid_Text" rcf:type="Text" rcf:value=" " style="left: 5px; top: 8px; position: absolute"></div> <div rcf:id="label_message" rcf:type="Text" rcf:value=" さん、こんにちは。認証されました。" style="left: 50px; top: 8px; position: absolute"></div> <!-- ログアウトボタン定義 --> <div rcf:id="logoutButton" rcf:type="Button" rcf:label="ログアウト" rcf:width="80px" rcf:height="24px" style="left: 515px; top: 5px; position: absolute"></div> </div><!-- id="after_div" --> </div> </div>
1) モデルオブジェクトauthinfoModelのuseridプロパティをTextInputの値にバインディング
2) モデルオブジェクトauthinfoModelのpasswordプロパティをTextInputの値にバインディング
一覧部の機能定義とUI部品定義
機能定義の記述内容
<!-- 一覧部のユーザデータをモデルとして利用するための機能定義 -->
<div rcf:type="Model" rcf:id="listModel" rcf:object="listData"></div>
UI部品定義の記述内容
<!-- 一覧部のUI部品定義とモデルバインディング -->
<div rcf:id="list_Title" rcf:type="Text" rcf:value="公開カレンダ(認証不要)"
style="left: 10px; top: 70px; position: absolute" rcf:fontWeight="bold"></div>
<div rcf:id="list" rcf:type="TableView" rcf:width="610px" rcf:height="200px"
style="left: 10px; top: 95px; position: absolute" rcf:data="{listModel.list}" (1)
rcf:showRowHeader="true" rcf:multipleSelect="false" rcf:showDummyColumn="false">
<div rcf:type="ViewColumn" rcf:name="date" rcf:label="日付" rcf:columnWidth="120"></div> (2)
<div rcf:type="ViewColumn" rcf:name="timerange" rcf:label="時間帯" rcf:columnWidth="120"></div> (2)
<div rcf:type="ViewColumn" rcf:name="subject" rcf:label="予定" rcf:columnWidth="220"></div> (2)
<div rcf:type="ViewColumn" rcf:name="secret" rcf:label="Private" rcf:columnWidth="90"></div> (2)
</div>
1) モデルオブジェクトlistModelのlistプロパティをTableViewの値にバインディング
2) 列情報(1行分のデータ項目)を定義