[Seasar-user:7298] Re: S2Click V0.2をリリースしました。

Masanobu Shimura [E-MAIL ADDRESS DELETED]
2007年 4月 15日 (日) 11:27:22 JST


上村さま

Click 1.2で挙動が変わっています。
下記のSourceを比較して頂くと判りますが、1.1では Public Fieldに定義しておき、
それを Formに addしてもOKだったのですが、何故か 1.2の現在のVersionでは、
Errorになります。

Formにaddする時にnewでインスタンスを作り、参照が必要になったら、
Formのインスタンスから取り出す必要があるみたいです。

またRequiredが赤くならない件ですが、後ほど正しいものを Uploadし直しますが、
WebContentのclick Directoryの中を空にして、再度立ち上げれば赤くなります。

お手数をお掛けします。

志村

Click 1.1で動いていたもの。
public class AddPage extends BorderPage {
    public Form form = new Form();
    public Text res = new Text("result","= 0");
    public IntegerField para1 = new IntegerField("para1","",true);
    public IntegerField para2 = new IntegerField("para2","",true);
    private AddLogic addlogic;
    public AddPage() {
    	form.add(para1);
    	form.add(new Text("plus","+"));
    	form.add(para2);
    	res.setAttribute("style", "color:#000000");
    	form.add(res);
        form.add(new Submit("ok", "calculate", this, "onOkClicked"));
    }
    public boolean onOkClicked() {
        if (form.isValid()) {
        	res.setString("= "
        			+String.valueOf(addlogic.calculate(para1.getInteger(),para2.getInteger())));
        	return false;
        }
        return true;
    }
	public void setAddlogic(AddLogic addlogic) {
		this.addlogic = addlogic;
	}
	public void setDeptDao(DeptDao deptDao) {
	}
	
}
Clikd 1.2用に変更したもの。
public class AddPage extends BorderPage {
    public Form form = new Form();
    public Text res = new Text("result","= 0");
    private AddLogic addlogic;
    public AddPage() {
    	form.add(new IntegerField("para1","",true));
    	form.add(new Text("plus","+"));
    	form.add(new IntegerField("para2","",true));
    	res.setAttribute("style", "color:#000000");
    	form.add(res);
        form.add(new Submit("ok", "calculate", this, "onOkClicked"));
    }

	public boolean onOkClicked() {
        if (form.isValid()) {
        	res.setString("= "
        			+String.valueOf(addlogic.calculate(((IntegerField)form.getField("para1")).getInteger(),((IntegerField)form.getField("para2")).getInteger())));
        	return false;
        }
        return true;
    }
	public void setAddlogic(AddLogic addlogic) {
		this.addlogic = addlogic;
	}



Seasar-user メーリングリストの案内