ウィザードを使用して、アプリケーションとプロジェクト、シンプルなレイアウトを使用したJSF初期ページを素早く作成します。 その後、ドラッグとドロップという2つの簡単な操作でドラッグ・コンポーネントとして使用するイメージ・コンポーネントをページに追加します。 ドラッグされたイメージのドロップ・ターゲットとして動作するのは、ページ上の入力テキスト・コンポーネントとリストボックスです。
詳細を表示/非表示詳細表示
目的 所要時間 アプリケーション
このチュートリアルでは、Oracle ADF Facesコンポーネントをドラッグ・ソースおよびドロップ・ターゲットとして定義することによって、ドラッグ・アンド・ドロップ機能を追加する方法を説明します。 これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終的なアプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍してください。 40分 dndapp.zipのダウンロード
ステップ1: 新規アプリケーションとプロジェクトの作成
  1. メイン・メニューから「File」→「New」を選択します。 New Galleryで、「General」を開いて「Applications」を選択します。 Itemsリストで「Custom Application」を選択し、「OK」をクリックします。

    New Gallery、Applications
  2. JDeveloperアプリケーションは、組織構造の最上位レベルです。 アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。 詳細を表示/非表示詳細表示
  3. この例に合わせるため、アプリケーション名としてDndAppと入力し、「Finish」をクリックします。

    汎用アプリケーションの作成
  4. 初期プロジェクト構造(アプリケーション・ワークスペース内の名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。 詳細を表示/非表示詳細表示
  5. 今作成したプロジェクトをアプリケーション・ナビゲータでダブルクリックしてProject Propertiesダイアログを開きます。 「JSP Tag Libraries」と「Distributed libraries」を選択して「Add」をクリックします。

    Project Propertiesダイアログ、JSP Tag Libraries

  6. Choose Tag Librariesダイアログで「ADF Faces Components 11」を選択し、「OK」を2回クリックしてダイアログを両方とも閉じます。

    Choose Tag Librariesダイアログ
  7. ライブラリは、Oracle JDeveloperとともにインストールされるさまざまなAPIやテクノロジーのために提供されます。 詳細を表示/非表示詳細表示
  8. Save AllアイコンSave Allをクリックして作業内容を保存します。

    アプリケーション・ナビゲータのProjectsパネルは、次のようになります。

    アプリケーション・ナビゲータ、Project1フォルダ

  9. テンプレートから作成された新規アプリケーションは、プロジェクト階層に分割されてアプリケーション・ナビゲータに表示されます。各プロジェクトには関連する機能が設定されています。 詳細を表示/非表示詳細表示
ステップ2: JSFページの作成
  1. アプリケーション・ナビゲータでプロジェクトを右クリックし、「New」→「Web Tier」→「JSF/Facelets」→「Page」の順に選択して「OK」をクリックします。

    New Gallery、JSF/Faceletsページ

  2. ファイル名としてMyPage.jsfを入力します。 ドキュメント・タイプとしてFaceletsが選択されていることを確認します。

    Create JSF Pageダイアログ
  3. JavaServer Facesを使用するアプリケーション向けに作成するJSFページには、Faceletsドキュメント(ファイル拡張子は.jsf)、またはXML構文で記述されたJSPドキュメント(ファイル拡張子は.jspx)を使用できます。 詳細を表示/非表示詳細表示
  4. Page Layoutページで「Quick Start Layout」を選択し、「Browse」をクリックします。

  5. Component Galleryで、左側にある「Two Column」カテゴリを選択します。 続いて、右側にある3番目のタイプと3番目のレイアウトを選択します。

    Component Gallery

    OptionsボックスにTwo Column Left, Partial Header (Two Splits, Stretched)と表示されます。

    Component GalleryのOptionsボックス
  6. Oracle ADF Facesには、ページの全体レイアウトを定義するときに使用できるコンポーネントが多数用意されています。 詳細を表示/非表示詳細表示
  7. OK」をクリックします。

    Create JSF Pageダイアログには、選択したクイック・スタート・レイアウトが表示されます。

    Create JSF Pageダイアログ、クイック・スタート・レイアウト

  8. Managed Bean」をクリックし、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。

  9. Create JSF Pageダイアログでは、UIコンポーネントをプログラムで操作できるようにするために、ページ上のUIコンポーネントをマネージドBean内に公開するかどうかをオプションで指定できます。 詳細を表示/非表示詳細表示
  10. OK」をクリックします。

    デフォルトでは、ビジュアル・エディタに新しいページが開き、水平パネル・スプリッタのfirstファセットが選択された状態で表示されます。

    ビジュアル・エディタ、ページ
  11. Quick Start Layoutオプションを使用すると、レイアウトの表示に必要なコンポーネントが追加されます。 詳細を表示/非表示詳細表示
  12. Save AllアイコンSave Allをクリックして作業内容を保存します。

  13. JSFページの作成ステップが完了すると、アプリケーション・ナビゲータにはプロジェクトが次のように表示されます。 詳細を表示/非表示詳細表示
ステップ3: ドラッグ・ソースとして使用するコンポーネントの定義

ドラッグするUIコンポーネントとして使用するイメージをページに挿入します。 単一のドラッグ・オブジェクトを定義するには、イメージ・コンポーネントに特殊な属性を追加し、新たに追加したこの属性をドラッグ・ソースとして指定します。

  1. コンポーネント・パレットのADF Facesページで、LayoutパネルのInteractive Containers and Headersセクションから「PanelアイコンPanel Boxをドラッグし、ページ左側にある水平パネル・スプリッタのfirstファセットにドロップします。

    ファセットにコンポーネントをドラッグすると、Facet firstという名前の長方形の領域が表示されます。これは、今ドラッグしているコンポーネントがそのターゲット内に挿入されることを意味しています。

    ビジュアル・エディタ、firstファセットへの挿入

  2. プロパティ・インスペクタのCommonセクションで、Text属性の値をDrag thisに変更します。

    プロパティ・インスペクタ、パネル・ボックスのテキスト値

  3. コンポーネント・パレットのGeneral Controls パネルで、先ほど追加したパネル・ボックスに「ImageアイコンImageをドラッグ・アンド・ドロップします。

  4. Insert Imageダイアログで、Sourceフィールドの横にある「Property Menuアイコン」ドロップダウン・メニューから「Edit」を選択します。 続いて、ダイアログを使用してイメージ・ファイルを検索し、選択します。

    Insert Imageダイアログ、ドロップダウン・メニュー
  5. Oracle JDeveloperのイメージ・ライブラリからイメージを選択するには、Edit Propertyダイアログで<jdev_home>/jdeveloper/ide/lib/フォルダを検索し、「oicons.jar」をダブルクリックして開きます。 詳細を表示/非表示詳細表示
  6. OK」をクリックします。 プロンプトが表示されたら、「Yes」をクリックしてイメージをリソース・ディレクトリの下に追加し、「Save」をクリックします。

    Sourceフィールドに#{resource['images:jdeveloper.png']}と表示されます。

    Insert Imageダイアログ

  7. OK」をクリックして、Insert Imageダイアログを閉じます。

  8. コンポーネント・パレットで、「Operations」パネルを開きます。 追加したばかりのイメージ・コンポーネントに、「AttributeアイコンClient Attributeをドラッグ・アンド・ドロップします。

  9. Client Attributeのプロパティ・インスペクタで、次の値を入力します。

    フィールド
    Name cup
    Value Coffee
  10. Oracle ADF Facesのaf:clientAttributeタグを使用すると、コンポーネントに追加する属性の名前と値を指定できます。 詳細を表示/非表示詳細表示
  11. コンポーネント・パレットのOperationsパネルにあるDrag and Dropセクションで、「ExportアイコンAttribute Drag Sourceをイメージ・コンポーネントにドラッグ・アンド・ドロップします。

  12. Insert Attribute Drag Sourceダイアログで、Attributeフィールドにcupと入力するか、ドロップダウン・リストから「cup」を選択します。 「OK」をクリックします。

    Insert Attribute Drag Sourceダイアログ
  13. af:attributeDragSourceタグでは、コンポーネント属性をドラッグ・ソースとして使用するように指定できます。 詳細を表示/非表示詳細表示
  14. Save AllアイコンSave Allをクリックして作業内容を保存します。

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタ
  15. アプリケーション・ナビゲータには、プロジェクトで保存したイメージ・ファイルが表示されます。 詳細を表示/非表示詳細表示
ステップ4: ドロップ・ターゲットとして使用するコンポーネントの定義

ドラッグされたコンポーネントを受け取るUIコンポーネントとして使用する入力フィールドを挿入します。 単一のドロップ・ターゲット・オブジェクトを定義するには、ドラッグ・ソースを受け取るためのターゲットとして使用する入力フィールドに、ある属性を指定します。

  1. ビジュアル・エディタで、水平スプリッタ・バーをページの中ほどまで引き下げます。

    ビジュアル・エディタ、スプリッタ・バーのドラッグ

  2. コンポーネント・パレットのADF FacesページにあるLayoutパネルのInteractive Containers and Headersセクションで、ページ右側にあるfirstファセットに「PanelアイコンPanel Boxをドラッグ・アンド・ドロップします。

    ビジュアル・エディタ、右側のfirstファセットへの挿入

  3. プロパティ・インスペクタのCommonセクションで、Textの値をDrop hereに変更します。

  4. コンポーネント・パレットのLayoutパネルで、先ほど追加したパネル・ボックス・コンポーネントに「panelgrouplayoutアイコンpanel Group Layoutをドラッグ・アンド・ドロップします。 プロパティ・インスペクタのCommonセクションで、Layoutの値をscrollに変更します。

  5. コンポーネント・パレットのText and Selectionパネルで、先ほど追加したパネル・グループ・レイアウト・コンポーネントに「textinputアイコンInput Textをドラッグ・アンド・ドロップします。 プロパティ・インスペクタのCommonセクションで、Labelの値をCupに変更します。

    ビジュアル・エディタ、ラベルが付いた入力テキスト

  6. コンポーネント・パレットのOperationsパネルにあるDrag and Dropセクションで、「importiconアイコンAttribute Drop Targetを入力テキスト・コンポーネントにドラッグ・アンド・ドロップします。

  7. Insert Attribute Drop Targetダイアログで、Attributeドロップダウン・リストから「value」を選択し、「OK」をクリックします。

    Insert Attribute Drop Targetダイアログ
  8. af:attributeDropTargetタグには、互換性のある値がターゲット・コンポーネントにドラッグ・アンド・ドロップされたときに設定されるコンポーネント属性(valueなど)を指定できます。 詳細を表示/非表示詳細表示
  9. アプリケーション・ナビゲータで「MyPage.jsf」を右クリックし、「Run」を選択します。

    Create Default Domainダイアログが表示されたら、PasswordフィールドとConfirm Passwordフィールドにデフォルト・パスワード(例:weblogic1)を入力し、「OK」をクリックします。

    次のようなページがブラウザに表示されます。

    ブラウザ内で実行されたページ、ドロップ前
  10. デフォルトでOracle JDeveloperは、IDEにバンドルされたOracle WebLogic Serverのユーザー固有のインスタンスを参照する、Integrated WebLogic Serverという名前の統合されたサーバーを自動的に構成します。 詳細を表示/非表示詳細表示
  11. イメージをドラッグして、Cup入力フィールドの上に配置します。

    カーソルを入力フィールドの上に置くと、フィールドの背景色が変化して、イメージのドロップを受け入れられる領域の上にマウス・カーソルがあることが示されます。

    ブラウザ内のページ、ドロップ・ターゲット

    受入れ可能なドロップ・ターゲットの上にマウス・カーソルがない場合、カーソルの形は斜線が入った円形に変わります。

    ブラウザ内のページ、ドロップ・ターゲットの外側

    マウス・ボタンを離してイメージを入力フィールドにドロップすると、Coffeeという単語がCup入力フィールドに表示されます。

    ブラウザ内のページ、ターゲット内にドロップした後
ステップ5: カスタム・ドロップ・イベント・リスナーの作成

ドロップ・イベントを処理するためのJavaクラスとリスナー・メソッドを作成します。 クラスは、アノテーションを使用してマネージドBeanとして登録されます。

  1. アプリケーション・ナビゲータで「faces-config.xml」をダブルクリックし、エディタ・ウィンドウでファイルを開きます。

    アプリケーション・ナビゲータ、faces-config.xml

  2. エディタ・ウィンドウの下部にある「Overview」タブをクリックします。 次に、概要エディタのManaged Beansセクションで、「Addアイコン」をクリックしてCreate Managed Beanダイアログを開きます。

    faces-config.xmlファイルの概要エディタ
  3. アプリケーションは、アプリケーション・ページにより表示されるテキストとメッセージを含んだファイルや、アプリケーションが使用するデータを定義するBeanなどの特定のリソースを必要とします。 アプリケーションが必要とするリソースは、JSF構成ファイルfaces-config.xmlに指定されます。 詳細を表示/非表示詳細表示
  4. Create Managed Beanダイアログで、次の値を入力するかオプションを選択して、「OK」をクリックします。

    フィールドまたはオプション
    Bean Name dnd
    Class Name MyPageInfo
    Package project1
    Extends java.lang.Object
    Scope session
    Registration Annotations
  5. Bean Name:Beanのインスタンス化に使用するクラスを特定するときにはシンボリック名を使用します。 詳細を表示/非表示詳細表示
  6. 必要に応じてエディタ・ウィンドウの上部にある「MyPageInfo.java」タブをクリックし、ドキュメントを前面に表示します。

    Oracle JDeveloperによって追加されたマネージドBeanアノテーションを確認します。

    @ManagedBean(name="dnd")
    @SessionScoped
    public class MyPageInfo implements Serializable {
      ...
    }

    Javaクラス・ファイルのソース・エディタ
  7. ソース・エディタで、編集中に使用できる機能には次のものがあります。 詳細を表示/非表示詳細表示
  8. ソース・エディタで、ドロップ・イベントを処理するためのカスタム・コードを追加します。

    たとえば、ドロップされた値をリストボックス内の項目リストに挿入するコードを追加できます。 そのためには、最初にプロパティを追加して、選択入力コンポーネントを移入するための項目リストを作成するgetterメソッドをさらに追加します。 次に、ドロップ・イベントを処理するためのDndActionメソッドを作成します。

    独自のコードを記述する代わりに、用意されているサンプル・コードを使用できます。 ソース・エディタで、生成されたコードをすべて削除し、次のコードに置き換えます。

  9. ドロップ・イベントが発生した場合にカスタム・コードを起動するには、ドロップ・ターゲット・コンポーネントにドロップ・イベント・リスナーを登録します。 詳細を表示/非表示詳細表示
  10. アプリケーション・ナビゲータで「MyPageInfo.java」を右クリックし、「Make」を選択します。

    アプリケーション・ナビゲータ、Makeコンテキスト・メニュー

    Messages Logウィンドウに、Successful compilation: 0 errors, 0 warningsというメッセージが表示されます。

ステップ6: カスタム・ドロップ・イベント・リスナーのドロップ・ターゲットへの登録

新しいドロップ・ターゲットの役割を果たすリストボックス・コンポーネントをページに追加し、ターゲットにリスナー・メソッドを登録します。

  1. エディタ・ウィンドウの上部にある「MyPage.jsf」タブをクリックし、ページを前面に表示します。

  2. コンポーネント・パレットで、ADF FacesページのText and Selectionパネルから「ListboxアイコンListboxをドラッグし、ページ上のsecondファセットにドロップします。

    ビジュアル・エディタ、secondファセットへの挿入

  3. Insert ListboxダイアログのSelectページで、「Bind to list (select items)」が選択されていることを確認します。 Valueフィールドの横にある「Bind...」をクリックします。

    Insert Listboxダイアログ
  4. 前のステップで作成したドロップ・イベント・リスナー・メソッドでは、ドロップされた値をリストボックス内の項目のリストに追加します。 したがって、このステップではaf:selectOneListboxコンポーネントを追加してドロップ・ターゲットとして使用します。 詳細を表示/非表示詳細表示
  5. Expression Builderで、「JSF Managed Beans」→「dnd」の順で展開します。 「choices」を選択して式#{dnd.choices}を作成し、「OK」をクリックします。

    Expression Builder
  6. Java EE 5.0およびJSP 2.1で導入された統合式言語(EL)は、JSP 2.0により提供される式言語とJSFテクノロジー1.0用に作成された式言語を統合したものです。 詳細を表示/非表示詳細表示
  7. 次に、「Finish」をクリックしてリストボックスの挿入を完了します。

    Insert Select One Listboxダイアログ

  8. 単一選択リストボックス・コンポーネントのプロパティ・インスペクタのCommonセクションで、Labelの値をBeverage choicesに変更し、[Enter]を押します。

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタ、リストボックスを追加した状態

  9. コンポーネント・パレットのOperationsパネルのDrag and Dropセクションにある「importIconアイコンDrop Targetを、ページ上の単一選択リストボックス・コンポーネントにドラッグ・アンド・ドロップします。

  10. ドロップ操作の発生時に実行するカスタム・コードがある場合は、コンポーネントとともにaf:dropTargetタグを使用して、そのコンポーネントでドロップを受け入れられるようにすることができます。 詳細を表示/非表示詳細表示
  11. Insert Drop Targetダイアログで、DropListenerフィールドの横にある「Property Menuアイコン」ドロップダウン・メニューから「Edit」を選択します。

  12. Edit Propertyダイアログで、Managed Beanドロップダウン・リストから「dnd」を選択し、Methodドロップダウン・リストから「handleItemDrop」を選択します。 「OK」をクリックします。

    Edit Property DropListenerダイアログ

    DropListenerフィールドに#{dnd.handleItemDrop}と表示されます。

    Insert Drop Targetダイアログ

  13. OK」をクリックして、Insert Drop Targetダイアログを閉じます。

  14. Insert Data Flavorダイアログで、FlavorClassフィールドにjava.lang.Stringと入力して、「OK」をクリックします。

    Insert Data Flavorダイアログ
  15. 異なる型のオブジェクトがドロップ・ターゲットに受け入れられるようにするには、af:dataFlavorタグをaf:dropTargetタグとともに使用して、詳細を表示/非表示詳細表示
  16. アプリケーション・ナビゲータで「MyPage.jsf」を右クリックし、「Run」を選択します。

    ブラウザには次のようなページが表示されます。

    ブラウザ内のページ、ドロップ前

  17. イメージをドラッグして、Beverage choicesのリストの上にドロップします。

    ドロップ操作が正常に完了すると、部分ページ・レンダリングによってドロップ・ターゲットがレンダリングされ、既存のBeverage choicesリストに新しい項目Coffeeが追加されてリストボックスに表示されます。

    ブラウザ内のページ、ドロップ後
まとめ
このチュートリアルでは、コンポーネント属性を使用してドラッグ・アンド・ドロップを実装しました。 このチュートリアルで学習した内容は、以下のとおりです。 Oracle ADF Facesの使用について、詳しくは以下を参照してください。

ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

このページはお役に立ちましたか。



Copyright © 2011, Oracle and/or its affiliates. All rights reserved.