Tapestry Select 컴포넌트 개발.

2013. 10. 16. 14:03 - 에릭투스

Select Model , OptionModel

--------------------------------------------------

Select 구현방법

--------------------------------------------------

 <t:select t:value="" t:model="" t:encoder=""/>

 -t:encoder 는 옵션임. (EnumSelectModel을 사용시에는 Encoder필요없음)


0) ValueEncoder

 - 실제 UI에서 나타낼 Client 값과 객체를 지정한다.

 *EnumSelectModel 사용시에는 Encoder필요없음.


 - 생상자를 통해 Datasource를 받는다.

 - ValueEncoder<V>(Inteface)를 구현한다.

 - public String toClient(Person value) : UI에 나타낼 값이라 해야하나?

 - public Person toValue(String clientValue) : UI에 나타낼 Key값을 이용해 객체를 가져옴.

 *UI리프레쉬 댈때마다 DB/Java에서 목록을 가져와야한다는 말인데..

 *보통 Select 목록을 자바에 구현하거나, DB에 구현해야한다는말인가??

 

1) OptionModel 구현하기.

 - Select Option에 대한 구현을 의미한다.


 - OptionModel(interface)를 구현한다.

 - 생성자를 통해 값(or Object)를 받고,

- public String getLabel()

- public Object getValue()


- public boolean isDisabled() : 보통 false

- public Map<String, String> getAttributes() : 보통 null


2) SelectModel 구현하기.

 - AbstractSelectModel 상속받아 구현.


 - 생성자를 통해 List<V> 를 받는다.

 - public List<OptionGroupModel> getOptionGroups() : 보통 null.

 - public List<OptionModel> getOptions() : List<V>를 List<OptionModel>로 변형하여 return한다.



*문득 드는 생각

 -> Java 위주의 Tapestry 컴포넌트 개발이냐.

 -> Javascript를 통한 컴포넌트 개발이냐.


두가지 방법의 장점과 단점을 파악해야할듯.

두가지 방법의 조화할 수 있는지 파악.



*무조건 Tapestry 컴포넌트로만 가도, 너무 UI가 구리고,

 Javscript로 하기에는 소스가 너무 더러움. 관리가 안됨.


*기본(Pure) HTML을 태피스트리를 쓰고, Javascript를 덧입히는 방법으로 사용해야할듯.

즉, Javascript Component 사용법을 익혀야함,


*일단 validataion은 나중에,,

다른 카테고리의 글 목록

Workspace/Web Dev 카테고리의 포스트를 톺아봅니다