コード・サンプル・アイコン サンプル・コード

Javaソース・エディタで、次のimport文をpublic class行の前に追加します。

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import oracle.adf.view.rich.datatransfer.DataFlavor;
import oracle.adf.view.rich.dnd.DnDAction;
import oracle.adf.view.rich.event.DropEvent;

次の行の後ろにカーソルを移動します。

public class MyPage {
    public MyPage() {
    }

次のメソッドを追加します。このメソッドは、プログラムでリスト・ボックスに移入するSelectItemアイテムのリストを戻します。

/**
 * @return the beverage items
 */
private List<SelectItem> _choices;

public List<SelectItem> getChoices() {
    if (_choices == null) {
        _choices = new ArrayList<SelectItem>();
        _choices.add(new SelectItem("Cocoa", "Cocoa"));
        _choices.add(new SelectItem("Tea", "Tea"));
        _choices.add(new SelectItem("Wine", "Wine"));
    }
    return _choices;
}  

次のDndActionメソッドを追加します。このメソッドは、ドロップ・イベントを処理します。

/**
* Drop event handler
*/
public DnDAction handleItemDrop(DropEvent dropEvent) {
    try {
        DataFlavor<String> df = DataFlavor.getDataFlavor(String.class);
        String droppedValue = dropEvent.getTransferable().getData(df);
        if (droppedValue == null) {
            return DnDAction.NONE;
        } else {
            _choices.add(new SelectItem(droppedValue, droppedValue));
        }
        return DnDAction.COPY;
    } catch (Exception ex) {
        System.out.println("item drop failed with : " + ex.getMessage());
        return DnDAction.NONE;
    }
}

このサンプルでは、アイテムがリスト・ボックスにドロップされると、リスト・ボックスがリフレッシュされて、新しいアイテム・リストが表示されます。

サンプル・コードを入力するかわりに、このウィンドウのコードをコピーしてJavaソース・エディタに貼り付けることができます。