2012-03-25 2 views
1

많은 구성 요소가 포함 된 Wicket 1.5 웹 응용 프로그램을 개발 중이며 사용자가 여러 구성 요소 (CSS의 스타일을 변경하는 것을 의미) 중 하나를 선택하도록하고 싶습니다. 어떤면에서는 선택한 테마를 사용자 세션에 연결합니다.Wicket의 CSS 테마 시스템

나의 질문은, Wicket에서 이것을하는 가장 좋은 방법은 무엇입니까?

는 지금 내 구성 요소는 다음과 같다 :

public class SingleLayout extends Panel { 

    public static final CssResourceReference CSS = new CssResourceReference(SingleLayout.class, "SingleLayout.css"); 

    public SingleLayout(...) { 
     super(...); 
    } 

    protected CssResourceReference getCssResourceReference() { 
     return CSS; 
    } 

    @Override 
    public void renderHead(IHeaderResponse response) { 
     super.renderHead(response); 
     response.renderCSSReference(getCssResourceReference()); 
    } 

} 

내 이상적인 솔루션 '테마 시스템'을 것입니다 :

  • 구성 요소는 기본적으로 작동하는 CSS를해야합니다 경우이 구성 요소의 CSS 현재 테마에 정의되어 있지 않습니다.
  • 구성 요소는이 테마 시스템이없는 다른 응용 프로그램에서도 작동합니다.

답변

5

나는이 작업을 직접 수행하지 않았지만 Wicket의 Session을 살펴볼 것을 권장합니다. Javadoc에서는 자원로드를 설명합니다. 검색 알고리즘의 일부는 사용자 세션에서 가져온 스타일입니다.

아이디어를 바탕으로 각 스타일 (테마라고 부르는 내용)에 대한 CSS를 제공하십시오. standart 주제에 fallbacked isinluded.

희망이 있습니다. Bert

+0

감사합니다, Bert. 리소스 로딩 알고리즘에 대해 자세히 살펴보고 좋은 솔루션을 찾으려고합니다. – jordeu