2015-01-12 2 views
1

JSNI에서 CSS 리소스의 클라이언트 번들을 사용하려고하는데 유용한 코드를 찾을 수 없습니다. JSNI에서 CSS 리소스를 호출하는 방법과 JSNI에서 클라이언트 번들을 사용하는 방법을 알고 싶습니다.JSNI에서 리소스 번들 (클라이언트 번들)을 사용하는 방법은 무엇입니까?

내 표준 코드 : -

Resource.INSTANCE.button().ensureInjected(); 

Resource res = GWT.create(Resource.class); 

button.setStyleName(res.button().gwtbutton()); 

방법 JSNI에 쓰기?

여기 Resource ---->는 인터페이스 확장 clientbundle입니다. gwtbutton --->는 css입니다.

나는이 링크 https://groups.google.com/forum/#!topic/google-web-toolkit/94v4tjCZiBo에서 jssni를 통해 CssResource를 사용할 수 있다고 읽었습니다. 하지만 그의 사용법에 대한 구문이 확실하지 않습니다.

답변

3

여기에 마술은 없습니다 (확인, 조금 있지만 뒤에 있습니다). Resource 인터페이스 구현은 GWT에 의해 자동으로 생성되므로 res.button().gwtbutton()을 호출하면 CSS 파일에서 참조하는 스타일의 적절한 이름이 반환됩니다. 이 이름은 접두사 등으로 난독 화 될 수 있습니다. 여러분에게 중요하지 않습니다. 결국 문자열, 스타일 이름입니다. 그냥 JSNI 방법에 String로 전달 :

public native void addStyle(String style) /*-{ 
    // Add style to a DOM element 
}-*/; 

// Invoke like so: 
addStyle(res.button().gwtbutton()); 

직접 JSNI 코드에 ClientBundle를 사용하려면 : 적절한 자격을 갖춘 이름

// First, get Resource instance from a static field 
var resource = @package.Resource::INSTANCE; 
// Then, get the CssResource with the style 
var button = [email protected]::button()(); 
// Finally, get the style's name 
var gwtButton = [email protected]::gwtButton()(); 

대체 package.Resource (패키지 + 클래스 명) Resource 인터페이스의 필요한 경우 Eclipse 용 Google 플러그인에서 제공하는 코드 완성을 사용하십시오. button 메서드에 의해 반환 된 유형에 대해 동일한 작업을 수행합니다 (일부 인터페이스는 CssResource까지 확장됩니다).

구문에 문제가있는 경우 dig through the documentation을 입력하거나 Java Native Interface에 대한 자습서를 살펴보십시오.이 인터페이스는 JSNI와 많은 공통점을 갖고 있으며 문서화가 잘되어 있습니다.

+0

선생님, jsni에서 직접 내 CSS를 사용하고 싶습니다. 구문에 도움이 필요합니다. – Vartika

+0

JSNI에 대한 공식 문서와 거기에서 Java 코드를 호출하는 방법에 대한 링크가 있습니다. 링크 된 스레드의 예제는 말할 것도 없습니다. 어떤 부분이 문제가됩니까? Eclipse와 Ecplise 용 Google 플러그인을 사용하는 경우 JSnI 메소드에서 [호출 작성에 도움이되는 코드 완성] (https://developers.google.com/eclipse/docs/gwt_jsni)이 있어야합니다. –

+0

모든 구문 오류가 나타납니다. 나는 이것을 많이 시도했다. – Vartika

관련 문제