----------------------------------------------------------------------------------------
2014-01-08(수) – Tapestry 컴포넌트 개발회의.
----------------------------------------------------------------------------------------
1) CSS/JS –> 태피스트리가 제공하는 기본 CSS/JS를 제어가능한 방법 찾기.
-Tapestry가 넣는 기본 CSS/JS로 인해 충돌 우려 때문.
2) Tapestry JS Component 사용 지양.
3) 엑셀다운 – POI를 이용한 컴포넌트화
*List를 넘기면, 자동으로 규격화된 엑셀화면 나오도록.
4) Event명칭 Renaming (한눈에 알아볼수있도록)
5) 추구 컨버팅해야 할 수도있으니, JSON구조위주와, JS위주로 기능개발하기.
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
*Stitch-Tab 문제점.
----------------------------------------------------------------------------------------
-원페이지로 처리해야한다는점.
-Tab이 길어질수록 비즈니스 로직도 한페이지에서 처리해야한다는건 거의 재앙 수준임.
즉, tab별 페이지를 따로 갈 수 있도록 컴포넌트 개발이 필요.
Block 단위별 제어가 가능한지 R&D해야함.
*<t:delegate to=””>
GadgetSourceImpl 참조.
----------------------------------------------------------------------------------------
*Tapestry JumpStart Tab으로 바꿔서 해보니 잘됨. (구조 익히기)
----------------------------------------------------------------------------------------
-근데 이것도 문제인게, Tab인데 원페이지 기반으로 돌아가는거임.
(tab body에 컴포넌트를 넣어야하므로, 구현하는 페이지에서 로직을 모두 구현해야한다.)
-즉 탭 별로 페이지를 나누게 할 수 있는지도 확인해봐야함.
----------------------------------------------------------------------------------------
*delegate
private ComponentSource componentSource;
componentSource.getPage(contribution.getPageName()).getComponentResources()
.getBlock(contribution.getBlockName());
Tapestry MarkupWriter, RenderQueue, RenderCommand같은 이 개념들을 익혀야한다..
Iframe형태로 사용할 수 없다면, 한페이지로 모두 처리해야하는 건데.. 그러면 유지보수 개망은 불보듯뻔한일..
----------------------------------------------------------------------------------------
*DOM
@UseConfiguration
생성자로직에서 Map으로 구성정보를 저장할 수 있다.
생성자(ComponentSource componentSource, Collection<GargetModel> contributaion){}
----------------------------------------------------------------------------------------
*Tapestry-5.4 beta1으로 되면서 바뀐점.
jquery-library를 설정해주지 않음. 따라서 Cygnus-Core에서 configuration.add 해줘야함.
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
*BlockExample 하면서 문제점.
Block bodyBlock = componentSource.getPage(pageName).getComponentResources().getBlock(blockName);
----------------------------------------------------------------------------------------
Block을 이렇게 가져와서 출력하는 형태이나, Block내부에 컴포넌트 사용시 파라미터를 String구조만 인식한다..
그도 그럴 것이, 한다리 건너서 구현하는 것이기때문에, String을 제외한 동적구조는 파악이 안될기다.
*Tab내부 body에 컴포넌트 사용시는 잘된다. (즉, body에 구현한 후 childMarkup을 통해 가져오는 방법)
왜냐, 파라미터가 해당page클래스에 정의 되어있응께
----------------------------------------------------------------------------------------
*해당 패키지에 등록된 Page명 목록 구하기 + 해당 Page Class Load
*ComponentClassResolver.getPageNames(); //등록된 페이지 명 다나옴.
*페이지명으로 Class load..
String className = this.componentClassResolver.resolvePageNameToClassName(pageName);
Class clazz = Thread.currentThread().getContextClassLoader().loadClass(className);
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
*해당 페이지의 Message가져오기.
ComponentResources.getPage().getComponentResources().getMessages();
----------------------------------------------------------------------------------------