2011-03-30 4 views
0

큰 GWT 2.2.0 응용 프로그램에서는 동적 CellTables를 사용하려고합니다. 다른 위젯과 달리 CellTable은 CSS 스타일에 표준 이름을 사용하지 않습니다 (예 : "gwt-MenuItem"). 그래서 우리는 같이, 또한 표준 "gwt-"스타일을 inlcude합니다 CssResource 표준 CSS에서 이동해야 다음이 호스트 모드에서 잘 작동하고 이클립스를 사용하여 컴파일 할 수 있지만하지개미를 사용하여 CssResource 컴파일 문제가있는 GWT 2.2 프로젝트


public interface IPreferences 
{ 
    public interface MyCssResource extends CssResource 
    { 
     String content(); 
     ... 
    } 

    @ImportedWithPrefix("gwt") 
    public interface GwtCss extends CssResource 
    { 
     String MenuItem(); 
     String MenuBar(); 
     String TabLayoutPanelTab(); 
    } 
    ... 

    public interface MyResources extends ClientBundle 
    { 
     public static final MyResources INSTANCE = GWT.create(MyResources.class); 

     @Source("preferences.css") 
     @Import(GwtCss.class) <--- any imported interface will produce error 
     MyCssResource cssStd(); 
    } 
} 

개미를 사용하여 컴파일하지 않음 :


    <target name="gwtc" depends="compile" description="GWT compile to JavaScript"> 
     <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 
     <classpath> 
      <pathelement location="src"/> 
      <pathelement location="gwt-servlet.jar"/> 
      <pathelement location="gwt-dev.jar"/> 
      <pathelement location="gwt-user.jar"/> 
     </classpath> 
     <jvmarg value="-Xmx256M"/> 
     <arg line="-war"/> 
     <arg value="war"/> 
     <arg value="...module.file"/> 
     </java> 
    </target> 


    [java] [ERROR] Annotation error: cannot resolve ...IPreferences$GwtCss 
    [java] java.lang.ClassNotFoundException: ...IPreferences$GwtCss 

이클립스 밖에서 이것을 컴파일하기 위해 수행해야 할 힌트를 찾을 수 없었다. 의견을 보내 주셔서 감사합니다.

답변

0

별도의 작업으로 리소스 파일을 생성해야합니다. 문서를 생성하는 호출은 다음과 같습니다.

java -cp gwt-dev.jar:gwt-user.jar com.google.gwt.resources.css.InterfaceGenerator \ 
    -standalone -typeName some.package.MyCssResource -css input.css 

따라서 컴파일러와 마찬가지로 Java 작업이 될 수 있습니다. 그것은 gwt CssResource 설명서에 설명되어 있습니다 : http://code.google.com/p/google-web-toolkit/wiki/CssResource#Automatically_generating_interfaces

+0

당신은 힌트를 Thanl. 생성 된 인터페이스가 수동으로 작성된 인터페이스보다 "더 나은"이유는 모르겠지만 InterfaceGenerator를 사용한 실험을 통해 @Import를 처음 사용하는 것을 피할 수있는 솔루션을 얻을 수 있습니다 : 점선으로 @ImpportWithPrefix를 사용하는 대신 "gwt -"- ​​생성자가 @Classname 주석을 사용하여 스타일을 지정합니다. 따라서 하나의 인터페이스로 모든 스타일을 가져올 수 있으므로 @Import를 사용할 필요가 없습니다. – Capoocan