[Wicket-ja-user 33] Re: AutoCompleteTextField での値の取得

Back to archive index

maeda aaake****@gmail*****
2008年 3月 6日 (木) 20:56:15 JST


maedaです。

David Leangenさま、木村さま、返信ありがとうございます。

こちら自分の説明が下手ですみません。

ソースの一部なのですが
下記の用な感じにgetChoices()メソッドの戻値のiteratorの元のListに対して
Listをaddし画面で表示されているデータを選択し
その後submit等でaddしたListがCompoundPropertyModelで指定したBeanに
セットできないかと思い質問してみました。

autoCompleteTextField = new AutoCompleteTextField("autoCompleteTextField"){
	@Override
	protected Iterator getChoices(String input) {
		if (Strings.isEmpty(input))
		{
		    return Collections.EMPTY_LIST.iterator();
		}
		
		List choices = new ArrayList();
		ListModel listMode;
		//どんな文字が入力されても適当に5つ出力
		//本番はデータベースなどから検索取得
		for(int i=1;i<5;i++){
			listMode = new ListModel();
			listMode.setId(String.valueOf(i));
			listMode.setName("name"+String.valueOf(i));
			choices.add(listMode);
		}
		return choices.iterator();
	}
};

/**
 * autoCompleteTextFieldにaddするクラス
 * 
 */
public class ListModel implements Serializable {

	private static final long serialVersionUID = 1L;
	private String name;
	private String id;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	//画面に表示される項目
	@Override
	public String toString(){
		return name; 
	}
}


/**
 * 画面項目保持
 * CompoundPropertyModelでformに設定するクラス
 * 
 */
public class formDate implements Serializable {

	private ListModel autoCompleteTextField;

	public ListModel getAutoCompleteTextField() {
		return autoCompleteTextField;
	}
	public void setAutoCompleteTextField(ListModel autoCompleteTextField) {
		this.autoCompleteTextField = autoCompleteTextField;
	}
}

しかし、このソースですとformDateのautoCompleteTextFieldには何もセットされずセッターメソッドも呼出されませんでした。(nullのままでした)
ListModelをStringに変更すれば表示している文字だけは取得できました・・・。

具体的には
ListModelクラスのnameを表示、選択させてId(できれば更に複数のデータ)をsubmit時やajaxイベント時に使用して
別の項目に設定したりしたいのです。

この様な機能の実現はautoCompleteTextFieldで可能でしょうか?
それとも自分でコンポーネントを作成しないと実現できないでしょうか?

分かりにくい説明ですがよろしくお願いします。

David Leangen <wicke****@leang*****> wrote:

> 
> こんにちは
> 
> > レベルの低い質問すみませんがお答えいただけないでしょうか?
> 
> レベル低い質問がありません。
> 質問しないことの方がレベル低いだと思います。 
> (^−^)
> 
> > オートコンプリートについて質問なのですが
> > 選択された文字列に連動する項目を別のTextFieldに設定したいのですが
> > 可能でしょうか?
> 
> よくわかりませんがモデル(IModel)を使えばどうで 
> しょうか?
> 
> コードを見せればもうちょっとわかりやすいかもし 
> れません。
> 
> 
> David
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user




Wicket-ja-user メーリングリストの案内
Back to archive index