2013-06-19 2 views
0

Gxt 구성 요소의 ListView에서 다음 코드 블록을 사용하고 있으며 onRender는 다음 템플릿을 기본값으로 설정합니다. 이미지 + 모델 값으로 구성 요소를 렌더링 할 수있었습니다. 렌더링 된 이미지의 onClick 이벤트를 작성하고 싶습니다.자바 스크립트 코드에서 GWT 메서드를 호출하는 방법

여기서 ListView에 템플릿을 설정하고 있습니다.

rightListView.setTemplate(getTemplate(moduleBaseURL)); 

템플릿 설정 :

private native String getTemplate(String base) /*-{ 
return ['<tpl for=".">', 
'<div class="thumb"><img src="'+base+'images/default/tabs/tab-close.gif" width="15" height="15" style="CURSOR:pointer"/>{bookCode}</div>', 
'</div>', 
'</tpl>', 
''].join(""); 

} - * /;

스크린 샷 : 가까운 이미지의 클릭에

enter image description here

, 나는 몇 가지 GWT 코드가 실행되어야한다,이 작업을 수행 할 수있는 방법이있다.

답변

2

예 .. gwt 코드 내에 기본 javascript를 작성할 수 있습니다.

public static native void exportMyFunction() /*-{ 
    $wnd.myFunction = 
     $entry(@com.myCompany.myProject.client.myClass::onCloseGwtFunction()); 
}-*/; 
public static void onCloseGwtFunction() 
{ 
    // your gwt code tobe executed 
} 

초기화 할 때 gwt 클래스에서 exportMyFunction()을 호출해야합니다. 하지 읽을 수있는 인간이 - 당신은 obfuscated 될 것입니다 생산 자바에서

+0

빠른 응답을 주셔서 감사합니다. 이제 img onClick 이벤트에 대한 리스너를 작성할 수 있습니다. – Jagadeesh

1

자바 스크립트 코드로 번역 될 것이다 가까운 이미지에서 온 클릭에

<img onClick='window.myFunction()' src="'+base+'images/default/tabs/tab-close.gif" width="15" height="15" style="CURSOR:pointer" /> 

을 제공 할 수 있습니다. 따라서 응용 프로그램을 컴파일 한 다음 편집 중에 프로젝트의 이름을 바꿀 때 사용하는 클래스를 호출 할 수는 없습니다.

당신이 할 수있는 일은 방법 중 하나를 내보내는 것이므로 전 세계적으로 사용할 수 있습니다. 그러면 JavaScript에서 내 보낸 Java 메소드를 호출 할 수 있습니다. 자바 -> JS와 JS-> 자바 사이

통신 JSNI [스크립트 원시 인터페이스]를 사용하여 수행되고,이 링크 아래 GWT 문서에 설명 :

Calling a Java Method from Handwritten JavaScript한다.

관련 문제