2014-08-29 3 views
1

ThemeBuilder를 사용하여 테마를 만들었지 만 이제 CSS 클래스에 속성을 추가해야 ListView의 선택된 요소에 다른 글꼴 색을 지정할 수 있습니다.ThemeBuilder로 생성 된 테마의 CSS를 사용자 정의하는 방법은 무엇입니까?

필자는 빌더가 .theme 파일에서 이러한 구성을 지정할 수 있도록 지원할 것으로 기대합니다. 특히 글꼴 색은 이전 브라우저를 지원하는 데 사용되는 이미지 생성 프로세스에 영향을주지 않기 때문입니다. 사실 빌더는 생성 된 이미지에 영향을 미치지 않는 모든 표준 CSS3 속성을 지원해야합니다.

분명히 이것을 달성하기 위해 ThemeBuilder jar를 수정할 수는 있지만 이것은 좋은 생각이 아닙니다.

내가 생성 된 외관 클래스의 모양을 가지고 내 첫 번째 시도는 다음과 같은 생성자를 사용하는 것이 었습니다 : Css3ContentPanelAppearance을 사용하는 모든 구성 요소에 관계없이 Css3ContentPanelResources의 영향 때문에,

public Css3ContentPanelAppearance(Css3ContentPanelResources resources) { 
    this(resources, GWT.<Css3ContentPanelTemplate> create(Css3ContentPanelTemplate.class)); 
} 

이 잘 작동하지 않았다을 사용되었다. CSS 클래스 이름은 모양 클래스 이름과 CssResource 클래스 이름을 기반으로하기 때문에 이러한 현상이 발생한다고 생각합니다.

답변

1

이 솔루션은 매우 간단했다, 당신은 생성 된 주제에 따라 별도의 JAR 모듈을 만들 수 있습니다, 그리고

public class CustomCss3ListViewAppearance extends Css3ListViewAppearance { 
    public interface CustomCss3ListViewResources extends Css3ListViewAppearance.Css3ListViewResources { 
     // Load the original resources first and then the custom one, so the customizations will take precedence. 
     @ClientBundle.Source({"com/example/client/base/listview/Css3ListView.css","CustomCss3ListView.css"}) 
     @Override 
     Css3ListViewAppearance.Css3ListViewStyle css(); 
    } 
    public CustomCss3ListViewAppearance() { 
     super(GWT.<Css3ListViewAppearance.Css3ListViewResources>create(CustomCss3ListViewResources.class)); 
    } 
} 

에서 일부 바인딩을 지정 :이 같은 생성 된 외관 클래스의 하위 클래스를 생성 .gwt.xml 파일은 정확히 일반 테마로 동작합니다 (종속성을 추가하고 응용 프로그램 .gwt.xml 파일로 가져와야합니다).

<?xml version="1.0" encoding="UTF-8"?> 
<module rename-to='myCustomTheme'> 
    <inherits name="com.example.Theme"/> 

    <replace-with class="com.example.client.base.listview.CustomCss3ListViewAppearance"> 
     <when-type-is class="com.sencha.gxt.widget.core.client.ListView.ListViewAppearance" /> 
     <when-property-is name="gxt.theme" value="myTheme" /> 
    </replace-with> 

    <source path="myCustomTheme/client"/> 

</module> 
+0

빙고! 한 가지 유의 사항 : 테마를 전환 할 계획이 아니라면 'when-property-is' 행은 필요하지 않습니다. –