[[IOP-toolの使い方]] *機能拡張2:選択リストをカスタマイズ [#z87341aa] **1.選択リスト カスタマイズクラス作成 [#vaf7ce92] ***選択リストクラスを継承したクラスを作成する。 [#cb05ca5d] /** * 所属部門マスター 選択リスト カスタマイズクラス<BR> * @author * */ public class GroupmasterSelectListEx extends GroupmasterSelectList{ } ***選択リストをデータベースより取得する直前にDAOに対して検索条件や並び順を設定するとき、又は選択リストに未選択項目が必要なとき [#l4d39d72] 選択リスト カスタマイズクラスに protected void preSearch(DaoBase dao) のオーバーライドを行う @Override /** * 選択リストを部門コードの降順にする * 選択リストの先頭に全部門を追加 * */ protected void preSearch(DaoBase dao){ // DBから取得のソート順を部門コードの降順に設定 dao.addSortDescParameter("groupcode"); // 選択リストの先頭に全部門を追加 selectList.add("全部門", ""); } ***表示される選択リストの値を編集したいとき [#wa69b101] 選択リスト カスタマイズクラスに 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); } ***データベースより取得した選択リストに対して何らかの処理を行いたいとき [#c0bde18d] 選択リスト カスタマイズクラスに 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クラス画面でカスタマイズした選択リストの設定 [#l17c15f4] 入力画面/変更画面Javaクラスの、コンストラクタ // 選択リストの設定 // 所属部門マスター 選択リスト カスタマイズクラス GroupmasterSelectListEx groupItem = new GroupmasterSelectListEx(); SelectList field_groupCode_select_list = groupItem.getSelectList(); fm.setSelectList("field_groupCode", field_groupCode_select_list); // 所属部門 &ref(SELECTCUSTOM_01.png,wrap); &size(40){&color(red){→};}; &ref(SELECTCUSTOM_02.png,wrap);