갑자기 궁금한게.. 내가 왜... 이짓을 하는걸까?


정말 단순하게 테이블을 만들고 사용할 수 있다.(당연히 단순한 예제라고 하니까.. ㅎㅎ)

보고 느낀 것은 model 쪽은 Swing, SWT 와 유사한듯 하다.

1. 우선 page class 에 Table 인스턴스 생성하고, 생성하자 헤더 설정 및 onRender() 메소드에 데이터를 작성해 주면 된다.

Table 클래스야 그냥 사용하면 될 거 같구.. Page 클래스에서 onRender() 를 override 해서 사용하는 거를 중심으로 봐야 할듯 하다.  렌더링 하기 전에 onRender() 에서 테이블로 데이터를 set 해준다.

Page Class
@Bindable protected Table table = new Table();

// 생성자
public HomePage() {
        table.setClass(Table.CLASS_ITS);    
        table.addColumn(new Column("no"));
        table.addColumn(new Column("name"));
        table.addColumn(new Column("age"));
        table.addColumn(new Column("job"));
}

@Override
public void onRender() {
    List list = new ArrayList();
      
     for(int i = 0;i<10;i++) {
            DemoTableModel model = new DemoTableModel();
            model.setNo(""+(i+1));
            model.setName("name: " + i);
            model.setAge("33");
            model.setJob("java programmer " + i);
          
            list.add(model);
    }
      
    table.setRowList(list);
}

DemoTableModel class
- User Guide 를 보면 커스텀서비스 어쩌구를 사용하는데.. 그넘 실제로 없다. 그래서 단순하게 하나 만들었다.
public class DemoTableModel {

    private String no;
    private String name;
    private String age;
    private String job;
    public String getNo() {
        return no;
    }
    public void setNo(String no) {
        this.no = no;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
}

Template Page
<html>
  <head>
    $headElements
  </head>
  <body>

    $table

    $jsElements

  </body>
</html>

$headElements
- 요넘은 사용하면 table이 사용할 수 있는 css, style을 포함시킨다.
(아래는 실제로 가져온 웹 소스)
<link href="/click_demo/click/table.css" rel="stylesheet" type="text/css"/>

<style id="c_1886087593" type="text/css">
 th.sortable a {background: url(/click_demo/click/column-sortable-light.gif)
 center right no-repeat;}
 th.ascending a {background: url(/click_demo/click/column-ascending-light.gif)
 center right no-repeat;}
 th.descending a {background: url(/click_demo/click/column-descending-light.gif)
 center right no-repeat;}
</style>


$jsElements
- 요넘은 JavaScript, js 를 포함시킨다.
<script src="/click_demo/click/control.js" type="text/javascript"></script>
<script src="/click_demo/click/extras-control.js" type="text/javascript"></script>
<script id="c_862758709" type="text/javascript">
    addLoadEvent(function(){
        initMenu();
    });
</script>

요넘.. 필요한거 알아서 참조도 해주고.. 무쟈게 고마운 넘임 ㅋㅋ

Posted by 짱가쟁이