Warning
|
Начиная с версии 6.8 платформы, компонент |
Компонент Embedded
предназначен для вывода изображений и встраивания в экран произвольных веб-страниц.
XML-имя компонента: embedded
Компонент реализован для блоков Web Client и Desktop Client. В десктоп-клиенте поддерживается только вывод изображений.
Рассмотрим пример использования компонента для вывода изображения из файла, сохраненного в FileStorage.
-
Объявляем компонент в XML-дескрипторе экрана:
link:../../../../../../source/gui_vcl/embedded_1.xml[role=include]
-
В контроллере экрана инжектируем компонент и интерфейс
FileStorageService
. Затем в методеinit()
получаем из параметров экрана переданный из вызывающего кодаFileDescriptor
, загружаем соответствующий файл в байтовый массив, создаем для негоByteArrayInputStream
и передаем в методsetSource()
компонента:link:../../../../../../source/gui_vcl/embedded_2.java[role=include]
Компонент Embedded
может отображать содержимое различных типов, которые по-разному отрисовываются в HTML. Тип содержимого можно задать методом setType()
. Поддерживаются следующие типы:
-
OBJECT
- позволяет встраивать файлы некоторых типов в элементы HTML <object> и <embed>. -
IMAGE
- встраивает изображения в HTML-элемент <img>. -
BROWSER
- встраивает контейнер для отображения других независимых документов внутри элемента HTML <iframe>.
В веб-клиенте компонент позволяет отображать файлы, находящиеся внутри каталога VAADIN
. Например:
link:../../../../../../source/gui_vcl/embedded_6.xml[role=include]
или
link:../../../../../../source/gui_vcl/embedded_5.java[role=include]
Кроме того, можно определить каталог ресурсных файлов в свойстве приложения cuba.web.resourcesRoot, и указать для компонента Embedded
имя файла внутри этого каталога с префиксом значения атрибута: file://
, url://
или theme://
:
link:../../../../../../source/gui_vcl/embedded_7.xml[role=include]
или
link:../../../../../../source/gui_vcl/embedded_3.java[role=include]
Для встраивания в экран веб-клиента внешней веб-страницы необходимо передать компоненту URL:
link:../../../../../../source/gui_vcl/embedded_4.java[role=include]