4 レッスン
4.3.1 設定内容
4.3 [レッスン14]Dojoを使ったデータテーブルの編集
Excelファイルから取り込んだ値を表示します。そしてDojo系のビルダーを利用してtable
の値を直接変更します。さらに、tableのタイトルにマウスカーソルを移動すると、ポップ アップ・テキスト・ボックスを表示する機能も追加します。外部から取り込んだ値を利用 するので、モデルを2つ作成する必要があります。
モデル一覧
z providerモデル: 外部から値を取り込むモデル
z consumerモデル: providerモデルから値を受け取り表示
「provider モデル内の Service Definition ビルダー」と「consumer モデル内の Service
Consumerビルダー」が関連付けされることで、モデル間のアクセスが可能となっています。
図:データの流れ
52/88 1. providerモデルの作成
Excelからデータを取り込むためのproviderモデルにビルダーを追加します。
1.Service Definitionビルダーの追加 設定値
サービス名 provider1 サービスを公開 チェック
2.Excel Importビルダーの追加 設定値
名前 getProductSalesSource
インポートするファイル /売上げ集計.xls スキーマを生成 Designer再生成時
コンテンツ選択方法 自動(Builderにコンテンツを検索させる)
シート 集計
ヘッダー行あり チェック 空の行を保持 非チェック セルのフォーマット設定を保持 チェック
3.Service Operationビルダーの追加 設定値
データ・サービス provider1(入力済み)
操作名 getProductSales
サ ー ビ ス 操 作 プ ロ
パティー 呼び出すアクション DataServices/getProductSalesSource/execute 操作入力 入力構造処理 入力なし
結果構造処理 呼び出されたアクションからの構造を使用 操作結果
結果フィールド・マッピング 自動
これでproviderモデルの作成が終了しました。
2.consumerモデル作成
consumerモデルにビルダーを追加します。
1.Service Consumerビルダーの追加 設定値
名前 consumer1
プロバイダー・モデル provider すべてのプロバイダー操作を追加 チェック
2.View & Formビルダーの追加
tableを表示します。
設定値
名前 form1
ビュー・データ操作 DataServices/consumer1/getProductSales ビュー・ページHTML /factory/pages/view_and_form_view.html HTMLテンプレートファイル /factory/html_templates/gridtable.html ページ単位のデータ表示 チェック
ビュー・ペ ージ・オプ ション
ページあたりの行数 10 Mainを生成 チェック 拡張
ページ送りボタンを追加する チェック
3.Textビルダーの追加
tableのタイトルを表示します。
設定値
名前 textTitle
位置指定の方法 名前付きタグ上
ページ form1_ViewPage
ページの場所
タグ search_section
テキスト 売上げ集計
54/88 4.Action Listビルダーの追加
デバッグ用です。Dojoを利用して値が変更されたことを確認する為に、Systemログに変数 の中身を出力しています。このアクションは、Dojo Inline Editビルダーから呼ばれます。
設定値
名前 actDumpData
アクション ア ク シ ョ ン・リスト
SystemOut!${DataServices/consumer1/getProductSales/re sults}
5.Dojo Tooltipビルダーの追加
tableのタイトルにマウスカーソルを移動すると、ポップアップ・テキスト・ボックスを表
示されるようにします。
設定値
名前 dojoTooltip
位 置 指 定 の 方 法
名前付きタグ上
ページ form1_ViewPage
ペ ー ジ の 場所
タグ search_section
ツールチップ・タイプ テキスト
ツールチップ・テキスト 今年度の金額を変更するには Edit アイコンをクリックして 下さい。
図 45 Dojo Tooltipビルダー設定画面
6.Dojo Inline Editビルダーの追加
table上の読み取り専用テキストを編集可能にします。ここでは「今年度」の列のみを対象
とします。
設定値
名前 dojoInlineEdit
フィールド [form1_ViewPage]form1_ViewPage/ExcelContent/Row/今 年度
フォームをサブミット チェック アクション actDumpData
拡 張 オ プ シ ョンの表示
非チェック
ア ク シ ョ ン 後の操作
アクション実行後に指定ページ場所を最新表示 ア ク シ ョ ン
後の操作
最 新 表 示 す る場所
ページ:form1_ViewPage タグ:data
図 46 Dojo Inline Editビルダー設定画面(一部)
56/88 7. Portlet Adapterビルダーの追加
設定値
名前 samplePortlet
ポートレットのタイトル dojoInlineEditポートレット ポートレットの短いタイトル dojoInlineEditポートレット デフォルト・ロケール ja
8. HTMLテンプレートファイルの修正
対象ファイル /factory/html_templates/gridtable.html
【変更前】
<table name="Table" id="_table" width="100%" class="gridTable" cellspacing="0" cel lpadding="3">
【変更後】
<table name="Table" id="_table" width="100%" class="gridTable" cellspacing="0" cel lpadding="0">
gridtable.htmlファイルの39行目の<table>タグのcellpadding属性を"0"にします。追加 したDojo 系のビルダーの影響で table に余計な隙間が出来てしまいます(ブラウザが IE の場合のみ)。レイアウト微調整の対応なので、気にしなければこの修正はとばして構いま せん。