В Vaadin 7.3.1 я использую BrowserWindowOpener, чтобы открыть второе окно браузера/вкладку. Это работает, за исключением одной маленькой проблемы: изображения Icons не загружаются из ThemeResource.
В контекстном клике по удачному изображению, чтобы выбрать " Copy Image Address
изображения", отображается этот URL-адрес:
http://localhost:8080/MyApp/VAADIN/themes/mytheme/icons/some_other_image.png
Контекстное нажатие на неудавшееся изображение (отсутствует) для выбора Copy Image Address
показывает этот URL:
http://localhost:8080/MyApp/VAADIN/themes/reindeer/icons/some_image.png
Обратите внимание на разницу, mytheme
заменяется на reindeer
при вызове из второго окна. Моя папка "Значки" не живет в "олене", поэтому изображение не загружается.
Мой исходный код для загрузки изображения выглядит следующим образом:
this.myVaadinTable.setIcon( new ThemeResource( "icons/some_image.png" ) );
Как загрузить изображения для вновь открытых окон, как в исходном окне?
Использование Safari 6.2 на Mac OS X (Mountain Lion). Обслуживание от Tomact 8.0.12.
Казалось бы, что класс UI, который вы предоставляете BrowserWindowOpener
, не указывает, что он использует mytheme
и, следовательно, возвращается к reindeer
по умолчанию. В соответствии с https://vaadin.com/book / -/page/themes.html добавление @Theme("mytheme")
к классу пользовательского интерфейса, который вы используете как всплывающее окно, должно устранить проблему.
Если это не так (вы уже сделали такую аннотацию, и она не работает или вы не используете конструктор BrowserWindowOpener
для BrowserWindowOpener
), вы можете попытаться переместить ваши изображения и использовать их в качестве файловых ресурсов
@Theme ( "mytheme" ) @Title ( "YourWindowTitelBarTextGoesHere" ) @SuppressWarnings ( "serial" ) @Push