2012-03-25 7 views
1

私は、さまざまなコンポーネントを持つWicket 1.5 Webアプリケーションを開発しています。ユーザーが異なるテーマ(つまり、一部のコンポーネントの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を指定してください。スタンダードテーマへのフォールバックは含まれていません。

希望に役立ちます。 バート

+0

ありがとう、バート。私はリソースの読み込みアルゴリズムをよく見て、素敵な解決策を見つけようとします。 – jordeu