Пока фиксация / PR в ваших ссылках не будет объединена, этого не произойдет в 7 или 8.
Однако для этого можно использовать AbstractExtension и AbstractExtensionConnector.
AbstractExtension
package com.my.package;
import com.vaadin.server.AbstractClientConnector;
import com.vaadin.server.AbstractExtension;
import com.vaadin.ui.AbstractComponent;
public class VideoPreloadExtension extends AbstractExtension {
public VideoPreloadExtension() {
}
public VideoPreloadExtension(AbstractClientConnector target) {
super(target);
}
public void extend(AbstractComponent component) {
super.extend(component);
}
}
AbstractExtensionConnector
package com.my.package.client;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ServerConnector;
import com.vaadin.client.extensions.AbstractExtensionConnector;
import com.my.package.VideoPreloadExtension;
import com.vaadin.shared.ui.Connect;
@Connect(VideoPreloadExtension.class)
public class VideoPreloadConnector extends AbstractExtensionConnector {
@Override
protected void init() {
super.init();
}
@Override
protected void extend(ServerConnector target) {
// Get the extended widget
final Widget widget = ((ComponentConnector) target).getWidget();
widget.getElement().setAttribute("preload","auto");
}
}
Используется следующим образом:
Video image = new Video();
VideoPreloadExtension ext = new VideoPreloadExtension();
ext.extend(image);
Некоторые примечания (потому что ваадин временами может причинять боль)
- Если у вас уже есть библиотечный модуль, лучше всего добавить к нему указанные выше классы.
Убедитесь, что модуль, в который вы добавляете эти классы, имеет следующую добавленную зависимость, чтобы набор виджетов был скомпилирован:
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
</dependency>
Помните, что VideoPreloadConnector
должен быть в имени пакета, оканчивающемся на «.client».
Вот скриншот работающего элемента проверки из хрома:
HTHs!
person
petey
schedule
19.06.2017