Я хочу отобразить две вкладки (Providers
и Products
) на странице Vaadin.Providers
должен содержать сетку с одной записью.
Я написал для этого следующий код:
import java.util.ArrayList;
import java.util.List;
import com.vaadin.flow.component.Text;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.tabs.Tab;
import com.vaadin.flow.component.tabs.Tabs;
import com.vaadin.flow.router.Route;
@Route("")
public class MainView extends VerticalLayout {
public MainView() {
final Text header = new Text("Header");
add(header);
final Tab productsTab = new Tab("Products");
final Tab providersTab = new Tab("Providers");
final Grid<LoanProvider> providersGrid = new Grid<>();
providersGrid.addColumn(LoanProvider::getName).setHeader("Name");
providersGrid.addColumn(LoanProvider::getRegions).setHeader("Regions");
providersGrid.addColumn(LoanProvider::getUrl).setHeader("URL");
providersGrid.setSizeFull();
providersTab.add(providersGrid);
final Tabs tabs = new Tabs(providersTab, productsTab);
add(tabs);
providersGrid.setItems(getLoanProviders());
}
private List<LoanProvider> getLoanProviders() {
final List<LoanProvider> coll = new ArrayList<>();
final LoanProvider sample = new LoanProvider();
sample.setName("Provider name");
sample.setRegions("Region1");
sample.setUrl("http://www.someserver.com");
coll.add(sample);
return coll;
}
}
public class LoanProvider {
private String name;
private String regions;
private String url;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRegions() {
return regions;
}
public void setRegions(String regions) {
this.regions = regions;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
Когда я запускаю приложение, я не вижу никаких данных вProducts
вкладка:
Как изменить код для отображения содержимого сетки?
Вызов setSizeFull
и установка высоты не помогла.