アプリにアクセスするために使用するホスト名に応じて、vaadinアプリのテーマを設定する必要があります。 app.company.deは「valo」を使用し、app.company.orgは「org-theme」を使用します。 UIクラスでUIをプログラム的に設定すると、最初に@Theme
のテーマが使用されているため、「フリッカー」が発生します。 私もこのようなBootstrapListener
を追加することにより、ブートストラップページを修正しようとしました:ホスト名でバージンテーマを設定する
@Override
public void modifyBootstrapPage(BootstrapPageResponse response) {
Document doc = response.getDocument();
for (Element script : doc.getElementsByTag("script")) {
if (script.html().contains("\"theme\": \"valo\"")) {
String old = script.html();
String newHtml = old.replace("valo", THEME_NAME);
script.html(newHtml);
}
}
}
しかし、これは1が解決するかもしれないいくつかのエスケープの問題につながるが、それでも私は、ブートストラップJS Aを変更して良い感じはありませんそのようなハッキーなやり方。
ブートストラップjsが作成される場所にフックする方法はありますか?
VALO/*/VAADIN /に/それはエレガントな解決策になるかどうかは知りませんが、Apache HTTPサーバを使用している場合は、/ VAADIN /テーマを書き換えルールを追加することができますthemes/org-theme/*リクエストヘッダに基づいて –
テーマはいつ設定しましたか? UIクラスの 'init'メソッドで? –
@SteffenHarbich 'init'で設定すると、少なくとも私にとっては7.7.3でちらつき効果が得られます。変わったことは、コンストラクタで設定しようとすると効果がないことです...私は「トナカイ」のルック&フィールを得ました。この動作については何の参考も見つかりませんでした。希望の動作... – Morfic