追加・削除リストコンポーネント
を「パレット」の「複合」カテゴリからビジュアルデザイナーにドラッグすることによって、ユーザーがリストから項目を選択し、別のリストに追加、または別のリストから削除できるコンポーネントを作成できます。
このコンポーネントは、2 つのリストボックスと、リスト間でオプションを移動するためのボタンから構成されます。リストボックスは、1 つは選択可能なオプション用で、もう 1 つは選択されたオプション用です。選択されたオプションを並べ替えるボタンを追加することもできます。
追加・削除コンポーネントの「プロパティー」ウィンドウ で、コンポーネントのプロパティーを設定できます。
このコンポーネントでは、次のことを行うことができます。
items 」プロパティーを使用して、Web アプリケーションのユーザーが選択できるオプションを指定します。詳細については、このあとの データにバインド を参照してください。 selected 」プロパティーの値を管理 Bean のプロパティーに対応する式に設定することで、コンポーネントを現在の選択項目を表すモデルオブジェクトに関連付けます。「 selected 」プロパティーをバインドするには、コンポーネントを右クリックし、「プロパティーのバインド」を選択します。
コンポーネントがはじめて描画されると、モデルオブジェクトに equals メソッドが使用され、モデルオブジェクトの「 selected 」プロパティーの値に対応するオプションが選択状態で示されます。
label 」プロパティーを設定するか、またはラベルコンポーネントをコンポーネントに関連付けます。validate メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値の妥当性を検査するコードを挿入できます。processValueChange メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値が変化したときに実行するコードを挿入できます。コンポーネントの値は、たとえばこのコンポーネントの値を制御する別のコンポーネントの値をユーザーが変更したときに変化します。common_timeoutSubmitForm(this.form, '<コンポーネント ID>'); に設定されます。このコードによって、実行時にユーザーがコンポーネントの値を変更した場合に自動的にフォームが送信されます。フォームが送信されたら、サーバーで変換と妥当性検査が行われ、値変更のリスナーメソッドがある場合はそのメソッドが実行されてから、ページが再表示されます。
「変更時に自動送信」が設定されているコンポーネントには、仮想フォームを使用して、フォームの送信時に処理される入力フィールドを制限できます。自動送信するコンポーネントを、仮想フォームを送信するように定義した場合、自動送信時には仮想フォームに含まれるフィールドだけが処理されます。
items」プロパティーを、オブジェクト、データベース表のデータプロバイダ、Web サービス、またはエンタープライズ JavaBeans オブジェクトのデータプロバイダにバインドします。
items」プロパティーをオブジェクトにバインドするには、「オブジェクトにバインド」タブを選択し、リストの生成に使用する Bean プロパティーを選択します。この Bean プロパティーは、メンバーがすべて com.sun.rave.web.ui.model.Option のサブクラスである Object 型の配列、マップ、またはコレクションである必要があります。
items 」プロパティーを、リストの生成に使用するデータプロバイダにバインドするには、「データプロバイダにバインド」タブを選択し、データプロバイダを選択します。データプロバイダがない場合は、データベース表、Web サービス、またはエンタープライズ JavaBean オブジェクトをページに追加する必要があります。詳細は、 「データにバインド」ダイアログ: リストコンポーネント を参照してください。selected」プロパティーを Object 配列、プリミティブの配列、または ArrayList にバインドします。配列をプロパティーとしてセッション Bean などの管理 Bean に追加している必要があります。この Bean プロパティーを使用して、ページ送信後にユーザーの選択内容を評価できます。addRemoveList#defaultOptions オブジェクトを編集し、表示するリスト項目を変更できます。通常は、上記の「データにバインド」の項で説明したように、「 items 」プロパティーを、使用するデータベースまたはオブジェクトにバインドして、リスト項目を設定します。 Iterator を返す getSelectedItems() メソッドが表示されます。このメソッドは内部描画専用で、実際に選択されている項目を反映するわけではないため、使わないでください。