Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.stl.saar.internetentw2.bildverwaltung.ui.composite;
- import com.vaadin.flow.component.Component;
- import com.vaadin.flow.component.Composite;
- import com.vaadin.flow.component.html.Div;
- 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.component.tabs.Tabs.SelectedChangeEvent;
- import java.util.HashMap;
- import java.util.Map;
- public class TabSheet extends Composite<Div> {
- private final Tabs tabs = new Tabs();
- private final Map<Tab, Component> components = new HashMap<>();
- private final VerticalLayout currentTab = new VerticalLayout();
- public TabSheet() {
- tabs.addSelectedChangeListener(this::handleTabChange);
- getContent().add(tabs, currentTab);
- }
- public void addTab(String caption, Component component) {
- // Komponente zum neuen Tab merken
- final Tab tab = new Tab(caption);
- components.put(tab, component);
- // Neuen Tab den Tabs hinzufügen
- tabs.add(tab);
- }
- private void handleTabChange(SelectedChangeEvent event) {
- // Alte Komponente ausblenden
- currentTab.removeAll();
- // Neue Komponente anzeigen
- final Tab selectedTab = event.getSource().getSelectedTab();
- currentTab.add(components.get(selectedTab));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement