Saturday, April 23, 2011

Tableタグを作るBuilderクラスをつくってます

mixer2で、table,tr,tdタグを組もうとすると、こうなります。

import static org.mixer2.xhtml.TagCreator.*;
...
Table table = new Table();
// 一個目のtd
Td td1 = td(); // td = new Td(); と同じ意味になります。
Tr tr = tr();
td1.getContent.add("a");
tr.getThOrTd().add(td1);
// 2個目のtd
td2 = td();
td2.getContent.add("b");
tr.getThOrTd().add(td2);
// tableに収める
table.getTr().add(tr);
...

面倒ですよね(笑)。他のタグならともかく、tableタグはデータ表示などの目的での利用頻度がものすごく高いタグですので、これじゃあちょっと、あんまりです。

そこで、こんな風に、わかりやすくtableを組めるTableBuilderクラスをつくっているところです。

...
TableBuilder tb = new TableBuilder();
tb.tr(0).td(0).add("a"); // 1行目、1列目のtdにaがはいる
tb.tr(0).td(1).add("b"); // 1行目、2列目のtdにbがはいる
Table table = tb.build(); // これでtableタグ全体ができる
...

もちろんこれだけでなく、行、列のindexを指定しなくてもadd("a")とかするだけで最後尾に自動的にtrやtdを作るようなメソッドもつくろうかなとも思っています。いろいろと試しているところです。

mixer2の次期リリースに搭載できると思います。乞うご期待。

No comments:

Post a Comment