2011-11-11 4 views
1

예를 들어 내 페이지에 CellTable을 표시하려고한다고 가정합니다. Javascript에서이 셀 테이블에 대해 행 & 열을 정의하고 데이터 소스를 제공 한 다음이 셀 테이블을 페이지에 삽입하고 AJAX 호출로 데이터를 채우는 GWT 메소드를 호출하려고합니다.GWT를 외부 컴포넌트 엔진으로 사용하려면 어떻게해야합니까?

내 앱이 이미 자체 전쟁에 존재하고 서버에 배포되어 있다는 점에 유의해야합니다. 다른 GWT 앱 전쟁을 배포하고 내 애플리케이션에서 자바 스크립트를 호출하고 자바 스크립트를 통해 인수를 전달할 수 있습니다. , 예를 들어) 내 CellTable 열과 내용을 사용자 지정할 수 있습니다.

문제는 GWT 응용 프로그램에 하나의 진입 점이 있으며 인수가 허용되지 않는다는 것입니다. 즉, HTML 페이지에 설치 한 데이터를 사용하여 사용자 정의 된 CellTable을 작성한 다음 onModuleLoad() 내에서 추출해야한다는 의미입니다. 당신이 당신의 두 번째 GWT 응용 프로그램 (사용자 정의 CellTable을 갖는 하나를 구축 할 필요가

// entry point 
public void onModuleLoad() { 
    // Create a CellTable. 
    CellTable<Data> table = new CellTable<Data>(); 
    // suppose we have a hidden element on the HTML page which has the column information for our cell table, i.e. <input type="hidden" id="SomeHiddenFieldValueWithInputs" value="Column1|Column2"/> 

    RootPanel cellTableMetaData = RootPanel.get("SomeHiddenFieldValueWithInputs") ; // suppose the value of this is Column 1|Column2 
    String tableColumns = cellTableMetaData.getElement().getAttribute("value"); 
    String[] columns = tableColumns.split("|"); 
    for(String columnName:columns) 
    { 
     // Add a text column to show the name. 
     TextColumn<Data> column = new TextColumn<Data>() { 
      public String getValue(Data object) { 
       return object.getValue(columnName); // this line doesn't even compile because columnName isn't visible here 
      } 
     }; 
     table.addColumn(column, columnName); 

    } 

    RootPanel.get("GwtCellTableContainerDiv").add(table); 
} 
+0

하지 대답하지만, 만약 이미 계획 아약스 당 데이터를 채우려면, 아마도 당신은 모두 데이터와 열 정보를 응답으로 보낼 수 있습니까? 데이터를 요청하기 전에 사용자가 열을 수정할 수 있습니까? – MarioP

답변

1

: 같은, 나는 효과적으로 입력/출력 언어의 어떤 종류를 코딩해야하고 내 자신에 그것을 구문 분석하는 것처럼이 바보 같다 수행)와 Cross Site Linker를 사용하십시오. 이 링커를 사용하여 GWT는 다른 자바 스크립트 응용 프로그램에서 사용할 수있는 javascript를 생성합니다. (http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml 링커에 대한 부분)

여기,이 자바 스크립트에서 호출 할 JSNI로 일부 자바 스크립트 기능을 내보낼 수있는 CellTable 응용 프로그램과 통신하려면 예입니다 정확히 http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#calling

관련 문제