2008年3月11日火曜日

ZK: jdbcManager Seasar変数(3)

jdbcManagerを使いながらデザインとロジックを分離したいときは
こんな感じでいけそうです。

listboxのモデルにEmpWindowのプロパティemps、selectedItemにselectedをセットします。


...
<window id="win" title="Emplyee list" use="zkseasar.view.EmpWindow">
<listbox id="lb" model="@{win.emps}" selectedItem="@{win.selected}">



EmpWindow.java

public class EmpWindow extends Window {
private JdbcManager jdbcManager;
private List<Emp> emps;
private Emp selected;

public EmpWindow(){
DelegatingVariableResolver variableResolver = new DelegatingVariableResolver();
jdbcManager = (JdbcManager)variableResolver.resolveVariable("jdbcManager");

emps = jdbcManager.from(Emp.class)
.where("sal between ? and ?", 2000, 3000)
.orderBy("sal").getResultList();
}

public List<Emp> getEmps(){
return emps;
}

public void setSelected(Emp emp){
selected = emp;
}

public Emp getSelected(){
return selected;
}


/*
* listboxにempを追加する
* http://sourceforge.net/forum/message.php?msg_id=4752395
*/
public void addEmp(Emp emp){
Listbox lb = ((Listbox) getFellow("lb"));
((ListModelList) lb.getModel()).add(emp);
}
}


ZKをSeasarと組み合わせるとデータベースアクセスはjdbcManagerの使いかただけ知っていればいいみたいですね。

0 件のコメント: