• 検索結果がありません。

4 レッスン

4.4.1 設定内容

60/88

4.4 [レッスン15]Dojoを使ったドラッグ・アンド・ドロップ

ページでのドラッグ・アンド・ドロップ機能を実現します。モデルはドラッグ用とドロッ プ用に最低でも2つ作成する必要があります。ここでは、Excelからのデータ取得用にもう 一つモデルを作成しています(計3つ)。

モデル一覧

z providerモデル: 外部から値を取り込むモデル

z sourceモデル: targetモデルにドラッグ可能 z targetモデル: sourceモデルからドロップ可能

図:データの流れ

1. providerモデルの作成

Excelからデータを取り込むためのproviderモデルにビルダーを追加します。

1.Service Definitionビルダーの追加 設定値

サービス名 provider1 サービスを公開 チェック

2.Excel Importビルダーの追加 設定値

名前 getProductSalesSource

インポートするファイル /売上げ集計.xls スキーマを生成 Designer再生成時

コンテンツ選択方法 自動(Builderにコンテンツを検索させる)

シート 集計

ヘッダー行あり チェック 空の行を保持 非チェック セルのフォーマット設定を保持 チェック

3.Service Operationビルダーの追加 設定値

データ・サービス provider1(入力済み)

操作名 getProductSales

サ ー ビ ス 操 作 プ ロ

パティー 呼び出すアクション DataServices/getProductSalesSource/execute 操作入力 入力構造処理 入力なし

結果構造処理 呼び出されたアクションからの構造を使用 操作結果

結果フィールド・マッピング 自動

これでproviderモデルの作成が終了しました。

62/88 2.sourceモデル作成

sourceモデルにビルダーを追加します。

1.Service Consumerビルダーの追加 設定値

名前 consumer1

プロバイダー・モデル provider すべてのプロバイダー操作を追加 チェック

2.Pageビルダーの追加

雛形のHTMLは全て削除して、新たにHTMLを書き直します。

設定値

名前 sourcePage

ページ・コンテンツ <html>

<body>

[Drag]

<form name="myForm" method="post">

<div><span name="drag_table" /></div>

</form>

</body>

</html>

3.Action Listビルダーの追加 設定値

名前 main

アクション・リスト1 DataServices/consumer1/getProductSales アクション

アクション・リスト2 sourcePage

4.Data Pageビルダーの追加 設定値

名前 datapage1

変数 DataServices/consumer1/getProductSales/results

モデル内のページ sourcePage ページ・タイプ HTMLから推測

データからUIを作成 チェック 作成済みエレメントの設定値

新規タグの場所 drag_table

図 51 Data Pageビルダー設定画面

64/88 5.Data Column Modifierビルダーの追加

設定値

名前 columnModifier

コンテナー・フィールド [sourcePage]datapage1/ExcelContent/Row

追加列 dragImage

行の追加操作と行の削除操作の

設定値 列を管理 チェック

1 列名: dragImage 状況: 変更しない 列見出し: アイコン 2 列名: 商品名 状況: 変更しない 列見出し: 今年度 3 列名: 今年度 状況: 変更しない 列名: 今年度 4 列名: 昨年度 状況: 変更しない 列名: 昨年度 5 列名: 一昨年度 状況: 変更しない 列名: 一昨年度

図 52 Data Column Modifierビルダー設定画面(一部)

追加した列を一番上にもってくる

6.Imageビルダーの追加

Data Column Modifierビルダーで追加した列'dragImage'にドラッグ用の画像を配置しま

す。

設定値

名前 image1

位置指定の方法 名前付きタグ上

ページ sourcePage

ページの場所

タグ dragImage

イメージ・ソース /factory/images/tree/closenode.gif

図 53 Imageビルダー設定画面

66/88 7.Dojo Drag Sourceビルダーの追加

ドラッグ・タイプは、ドロップ・ターゲットに渡されるデータの名前です。任意の半角英 数字で指定します。また、Dojo Drop Targetビルダーで指定するドロップ・タイプと一致 している必要があります。

設定値

名前 dojoDragSource

位置指定の方法 名前付きタグ上

ページ sourcePage

ページの場所

タグ dragImage

ドラッグ・ソース・データ ${Variables/RowLoopVar/Row/商品名}

ドラッグ・タイプ product

図 54 Dojo Drag Sourceビルダー設定画面

8.Portlet Adapterビルダーの追加 設定値

名前 samplePortlet1

ポートレットのタイトル dojoDragSourceポートレット ポートレットの短いタイトル dojoDragSourceポートレット デフォルト・ロケール ja

68/88 3.targetモデル作成

targetモデルにビルダーを追加します。

1.Pageビルダーの追加

雛形のHTMLは全て削除して、新たにHTMLを書き直します。

設定値

名前 targetPage

ページ・コンテンツ <html>

<body>

[Drop]

<div><span name="drop_area" /></div>

<hr>

<div><span name="message_area" /></div>

<hr>

</body>

</html>

2.Action Listビルダーの追加 設定値

名前 main

アクション アクション・リスト targetPage

3.Variableビルダーの追加 設定値

名前 varDropMessage

タイプ String

初期値 何もDropされていません。

図 55 Variableビルダー設定画面

4.Textビルダーの追加 設定値

名前 textMessage

位置指定の方法 名前付きタグ上

ページ targetPage

ページの場所

タグ message_area

テキスト ${Variables/varDropMessage}

70/88

5.Imageビルダーの追加

データを受け取る為に、ドロップ先の画像を配置します。

設定値

名前 image1

位置指定の方法 名前付きタグ上

ページ targetPage

ページの場所

タグ drop_area

イメージ・ソース /factory/images/peoplepicker/Search.gif

図 56 Imageビルダー設定画面

6.Action Listビルダーの追加

このアクションはDojo Drop Targetビルダーから呼ばれることを前提にしています。その 為、単一のストリング引数を受け取れるように定義します。この引数にはドラッグ・ソー スから受け取った値が格納されています。

設定値

名前 actSelectItem

名前 product

引数

データ型 String

アクション・リスト1 Assignment!Variables/varDropMessage=${Ar guments/product}

アクション

アクション・リスト2 Assignment!Variables/varDropMessage+=が Dropされました。

図 57 Action Listビルダー設定画面

72/88 7.Dojo Drop Targetビルダーの追加

ドロップ・アクションで呼び出すメソッドは、単一のストリング引数を受け取れる必要が あります。ドロップされた際に呼ばれ、ドラッグ・ソースからデータを引数に渡します。

ドロップ・タイプは、ドラッグ・ソースから受け取るデータの名前です。任意の半角英数 字で指定します。また、Dojo Drag Sourceビルダーで指定するドラッグ・タイプと一致し ている必要があります。

設定値

名前 dojoDropTarget

位置指定の方法 名前付きタグ上

ページ targetPage

ページの場所

タグ drop_area

ドロップ・アクション actSelectItem ドロップ・タイプ product

拡張オプションの表示 非チェック

アクション後の操作 アクション実行後に指定ページ場所を最新表示 アクション後

の操作

最新表示する場所 ページ: targetPage タグ: message_area

図 58 Dojo Drop Targetビルダー設定画面(一部)

8.Portlet Adapterビルダーの追加 設定値

名前 samplePortlet2

ポートレットのタイトル dojoDropTargetポートレット ポートレットの短いタイトル dojoDropTargetポートレット デフォルト・ロケール ja

74/88

関連したドキュメント