[Seasar-user:16636] Re: [S2Click] S2ClickForm#initのリビジョン302の変更について

Naoki Takezoe [E-MAIL ADDRESS DELETED]
2009年 1月 9日 (金) 10:50:44 JST


竹添です。

2009/01/09 10:33 tada yukio <[E-MAIL ADDRESS DELETED]>:
>
> mini40thです。
>
>> リビジョン302はButtonの返すgetHtmlImports()を$importsで
>> 出力できるように入れた修正です。
>
> Click 1.4系では、FormがButtonを他のFiledとは別にbuttonListと
> して扱っているので、PageImports#processControlで
> form.getButtonList()して各要素をprocessControlに引き渡すよう
> に変更したところ、$importsで無事出力されるようになりました。

ハイ、その通りなのですが、
修正するにはClickServlet#createVelocityContext()を丸ごと
オーバーライドする必要があるのでこのような修正を行っていました。

> ソース抜粋
> protected void processControl(Control control) {
>  processLine(control.getHtmlImports());
>
>  if (control instanceof Form) {
>    Form form = (Form) control;
>    List controls = form.getFieldList();
>    for (int i = 0, size = controls.size(); i < size; i++) {
>        processControl((Control) controls.get(i));
>    }
>    controls = form.getButtonList();
>    for (int i = 0, size = controls.size(); i < size; i++) {
>        processControl((Control) controls.get(i));
>    }
>
>    以下略
>
> しかし、Click 1.5系だと問題なく出力されるので、S2Clickを1.5
> 系に対応させれた方がよいのかも・・・

1.5対応はかなり大規模な修正が必要になるため、
0.4.0は1.4ベースで一度リリースしようと思っています。

今の時点でどういう対応を行うのかはもう少し考えてみます。

-- 
Naoki Takezoe <[E-MAIL ADDRESS DELETED]>


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