2010-04-02 3 views
1

GWT로 이식해야하는 AWT 애플릿 응용 프로그램이 있습니다. 애플릿 화면은 메타 데이터로 설명되며 애플릿은 리플렉션을 사용하여 각 화면을 동적으로 렌더링합니다.메타 데이터를 사용하여 GWT 화면을 동적으로 생성 하시겠습니까?

우리는 GWT/ExtGWT에서 같은 것을 원합니다.

이 ExtJS의 작업 버전을 구축하여 메타 데이터가 JSON 형식의 ExtJS Screen 구성으로 변환되었습니다. 이 접근법의 단점은 데이터에 대한 컨트롤을 자바 스크립트로 작성해야한다는 것입니다.

GWT는 자바 코드가 아니기 때문에 선호됩니다. JS가 아닙니다. GWT.create()를 사용하여 메타 데이터에서 GWT를 사용하여 화면을 렌더링 할 수 있습니다.

내가 겪고있는 문제는 동적으로 생성 된 버튼을 이벤트 처리기에 연결하는 배선이 GWT에서 지원되지 않는 리플렉션을 필요로한다는 것입니다.

이 결론이 정확합니까? 그렇다면 ExtGWT를 사용하여 이러한 유형의 동적 UI를 얻을 수있는 다른 방법이 있습니까?

+0

예를 들어 메타 데이터의 모양을 보여줄 수 있습니까? 이미 메타 데이터를 가지고 있다면 왜 반성 할 필요가 있습니까? – Fabian

+0

메타 데이터는 화면의 위젯, 창, 패널, 버튼, 그리드를 설명합니다. 나는 "클릭 한 (clicked)"과 같은 이벤트를 Java에서 작성된 이벤트 핸들러로 보내야합니다. 이와 비슷한 것 myButton.addActionListener ( (ActionListener)) EventHandler.create (ActionListener.class, frame, "HandleClicked"))); "HandleClicked"는 메타 데이터에서 제공되며 다른 곳에서 정의 된 함수를 나타냅니다. –

답변

0

선언적 UI가없는 extGWT의 경우 가장 쉬운 해결책은 인스턴스화 된 클래스를 참조하는 Java에서 핸들러를 매핑/구성하는 것입니다. 핸들러, 즉 :

Map<String, ActionListener> mapping = new HashMap<String, ActionListener>(); 
mapping.put("HandleClicked", new HandleClickedActionListener()); 

의 당신은 당신의 메타 데이터에 대한 구현 클래스를 찾을 시도 할 수 있습니다.

순수 GWT 2의 경우 완료 방법은 http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideUiBinder.html#Simple_binding입니다. gwt와 같은 extgwt 솔루션을위한 주석 된 메소드를 작성하는 것이 가능할 수도 있습니다.

관련 문제