pirka
IOP-toolの使い方

機能拡張2:選択リストをカスタマイズ

1.選択リスト カスタマイズクラス作成

選択リストクラスを継承したクラスを作成する。

/**
 * 所属部門マスター 選択リスト カスタマイズクラス<BR>
 * @author
 *
 */
public class GroupmasterSelectListEx extends GroupmasterSelectList{
}

選択リストをデータベースより取得する直前にDAOに対して検索条件や並び順を設定するとき、又は選択リストに未選択項目が必要なとき

選択リスト カスタマイズクラスに protected void preSearch(DaoBase dao) のオーバーライドを行う

	@Override
	/**
	 * 選択リストを部門コードの降順にする
	 * 選択リストの先頭に全部門を追加
	 * 
	 */
	protected void preSearch(DaoBase dao){
		// DBから取得のソート順を部門コードの降順に設定
		dao.addSortDescParameter("groupcode");
		// 選択リストの先頭に全部門を追加
		selectList.add("全部門", "");
	}

表示される選択リストの値を編集したいとき

選択リスト カスタマイズクラスに protected void addSelectListItem(Grouopmaster record) のオーバーライドを行う

	@Override
	/**
	 * 選択リストの表示値は、部門コード+半角スペース+部門名称にする
	 * 
	 */
	protected void addSelectListItem(Grouopmaster record) {
		String optionValue = DaoBase.changeString(record.getGroupName());
		String sendValue = DaoBase.changeString(record.getGroupCode());
		if(optionValue == null && sendValue == null){
			selectList.add("");
		} else if(optionValue == null && sendValue != null){
			selectList.add(sendValue);
		} else if(optionValue != null && sendValue == null){
			selectList.add(optionValue);
		}
		// 表示値に部門コード+半角スペースを付加
		selectList.add(sendValue + " " + optionValue, sendValue);
	}

データベースより取得した選択リストに対して何らかの処理を行いたいとき

選択リスト カスタマイズクラスに protected SelectList afterSearch(SelectList selectList) のオーバーライドを行う

	@Override
	/**
	 * 選択リストの表示値に連番を追加
	 * 
	 */
	protected SelectList afterSearch(SelectList selectList) {
		SelectList newList = new SelectList();
		String optionValue;
		String sendValue;
		int i = 0;
		for (SelectListItem item:selectList.getSelectListItems()){
			// 表示値に連番を付加
			optionValue = i + " : " + item.getOptionValue();
			sendValue = item.getSendValue();
			newList.add(optionValue, sendValue);
			i++;
		}
		return newList;
	}

2.入力画面/変更画面Javaクラス画面でカスタマイズした選択リストの設定

入力画面/変更画面Javaクラスの、コンストラクタ

		// 選択リストの設定
		// 所属部門マスター 選択リスト カスタマイズクラス
		GroupmasterSelectListEx groupItem = new GroupmasterSelectListEx();
		SelectList field_groupCode_select_list = groupItem.getSelectList();
		fm.setSelectList("field_groupCode", field_groupCode_select_list); // 所属部門

SELECTCUSTOM_01.png SELECTCUSTOM_02.png


添付ファイル: fileSELECTCUSTOM_02.png 523件 [詳細] fileSELECTCUSTOM_01.png 540件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-27 (水) 18:57:18 (3157d)