自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2010年4月28日水曜日

SmartGWT Criteriaクラスの使用方法

SmartGWTにコントロールデータバンディング処理のため、SearchFormクラスはよく使われています。例えば:

grid.fetchData(searchForm.getValuesAsCriteria());

サーチフォームの設定内容をgridウィジェットに渡して、gridは実際のデータを検索して表示する仕組みです。getValuesAsCriteria()メソッドの戻り値はCriteria型ですので、中身のロープ処理はjava.util.Map型と同じです。

ソースサンプル:
final SearchForm form = new SearchForm(); 
form.setTop(50); 
form.setNumCols(3); 
TextItem query = new TextItem(); 
query.setName("query"); 
query.setTitle("Query"); 
query.setDefaultValue("snowboarding"); 

ButtonItem button = new ButtonItem(); 
button.setTitle("Search"); 
button.setStartRow(false); 
button.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler()
{
    @Override
    public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event)
    {
        grid.fetchData(form.getValuesAsCriteria());

        Criteria objCriteria = form.getValuesAsCriteria();
        Map formValues = objCriteria.getValues();
        Iterator it = formValues.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry)it.next();
            GWT.log("VM Keys: " + pairs.getKey() + " = " + pairs.getValue());
        }
    }
});

実行結果:
VM Keys: query = snowboarding

0 件のコメント:

コメントを投稿

ホームページ