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

4 レッスン

4.5.1 設定内容

============================================================

プロジェクト:

Portlet Factory プロジェクト名: DF_AjaxTypeAhead 追加する機能セット:

なし

作成しておくモデル:

モデル名: sample1(モデルタイプは空にする)

============================================================

図 63 sample1モデル設定画面

1. sample1モデル作成

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

1.Variableビルダーの追加

「先行入力」の候補一覧をあらかじめ作成しておきます。

設定値

名前 MonthList

タイプ XML

初期値 <Rowset>

<Row><Value>January</Value></Row>

<Row><Value>February</Value></Row>

<Row><Value>March</Value></Row>

<Row><Value>April</Value></Row>

<Row><Value>May</Value></Row>

<Row><Value>June</Value></Row>

<Row><Value>July</Value></Row>

<Row><Value>August</Value></Row>

<Row><Value>September</Value></Row>

<Row><Value>October</Value></Row>

<Row><Value>November</Value></Row>

<Row><Value>December</Value></Row>

</Rowset>

2.Variableビルダーの追加

テキストボックスに対して実際に入力した文字列を格納します。

設定値

名前 varInput

タイプ String

初期値 (空白のまま)

78/88 3.Variableビルダーの追加

「先行入力」機能で選択した文字列、つまりテキストボックスに表示している文字列を格 納します。

設定値

名前 varTextBox

タイプ String

初期値 (空白のまま)

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

名前 lookupMonth

データ・ソース XMLデータ

XMLデータ ${Variables/MonthList/Rowset}

変数タイプ 値タグおよびラベル・タグ

値タグ Value

ラベル・タグ Value

図 64 Lookup Tableビルダー設定画面

5.Pageビルダーの追加

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

設定値

名前 startPage

ページ・コンテンツ (HTML)

<html>

<body>

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

<div>入力:<span name="area_input" /> <span name="ar ea_button" /></div>

<hr>

<div>実際に入力した文字列=<span name="area_result1" /

></div>

<hr>

<div>テキストボックスの文字列=<span name="area_result 2" /></div>

</form>

</body>

</html>

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

名前 main

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

7.Text Inputビルダーの追加

「先行入力」機能を利用するテキストボックスを作成します。

設定値

名前 textInput

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

ページ startPage

ページの場所

タグ area_input

テキスト (空白のまま)

80/88 8.Ajax Type-Aheadビルダーの追加

「先行入力」機能の本体です。フィルター・モードや比較タイプ等、任意の設定変更が可 能です。「先行入力」の候補一覧をルックアップ・テーブルで指定します。

設定値

名前 ajaxTypeAhead

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

ページ startPage

ページの場所

タグ area_input

使用されるルックアップ・テーブル lookupMonth

フィルター・モード データで始まる値を表示 比較タイプ 大/小文字を区別しない

図 65 Ajax Type-Aheadビルダー設定画面

9.Action Listビルダーの追加

「先行入力」機能で表示している文字列ではなく、実際に入力した文字列を取得する為に、

Ajax Type-Ahead ビ ル ダ ー の メ ソ ッ ド getCurrentUserData()を 実 行 し ま す 。Ajax

Type-Aheadビルダーのフィルター・モードに「すべての値を表示」を指定して、独自のフ

ィルタリング・ロジックを利用することが出来ます。その際、独自のフィルタリング・ロ ジックに引き渡す値として、メソッドgetCurrentUserData()の戻り値が最適です。

設定値

名前 actEvent

アクション アクション・リスト Assignment!Variables/varInput=${MethodCall/aj axTypeAhead.getCurrentUserData}

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

82/88 10.HTML Event Actionビルダーの追加

「先行入力」機能で表示している文字列を選択すると、このイベントが呼ばれます。ここ では、実際に入力した文字列を取得する為に、アクションactEventを呼び出しています。

設定値

名前 htmlEventAction

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

ページ startPage

ページの場所

タグ area_input

イベント名 onChange

アクション・タイプ アクションへのリンク アクション actEvent

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

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

アクション後 の操作

最新表示する場所

タグ: myForm

図 67 HTML Event Actionビルダー設定画面(一部)

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

名前 result1

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

ページ startPage

ページの場所

タグ area_result1

テキスト ${Variables/varInput}

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

名前 actSubmit

アクション・リスト1 Assignment!Variables/varTextBox=${Inputs/area _input}

アクション

アクション・リスト2 startPage

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

84/88 13.Buttonビルダーの追加

設定値

名前 buttonSubmit

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

ページ startPage

ページの場所

タグ area_button

ラベル サブミット

アクション・タイプ フォームをサブミットしてアクションを呼び出す アクション actSubmit

図 69 Buttonビルダー設定画面(一部)

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

名前 result2

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

ページ startPage

ページの場所

タグ area_result2

テキスト ${Variables/varTextBox}

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

名前 samplePortlet

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

86/88

関連したドキュメント