Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. package de.stl.saar.internetentw2.bildverwaltung.ui.composite;
  2.  
  3. import com.vaadin.flow.component.Component;
  4. import com.vaadin.flow.component.Composite;
  5. import com.vaadin.flow.component.html.Div;
  6. import com.vaadin.flow.component.orderedlayout.VerticalLayout;
  7. import com.vaadin.flow.component.tabs.Tab;
  8. import com.vaadin.flow.component.tabs.Tabs;
  9. import com.vaadin.flow.component.tabs.Tabs.SelectedChangeEvent;
  10.  
  11. import java.util.HashMap;
  12. import java.util.Map;
  13.  
  14. public class TabSheet extends Composite<Div> {
  15.  
  16. private final Tabs tabs = new Tabs();
  17. private final Map<Tab, Component> components = new HashMap<>();
  18.  
  19. private final VerticalLayout currentTab = new VerticalLayout();
  20.  
  21. public TabSheet() {
  22. tabs.addSelectedChangeListener(this::handleTabChange);
  23. getContent().add(tabs, currentTab);
  24. }
  25.  
  26. public void addTab(String caption, Component component) {
  27. // Komponente zum neuen Tab merken
  28. final Tab tab = new Tab(caption);
  29. components.put(tab, component);
  30.  
  31. // Neuen Tab den Tabs hinzufügen
  32. tabs.add(tab);
  33. }
  34.  
  35. private void handleTabChange(SelectedChangeEvent event) {
  36. // Alte Komponente ausblenden
  37. currentTab.removeAll();
  38.  
  39. // Neue Komponente anzeigen
  40. final Tab selectedTab = event.getSource().getSelectedTab();
  41. currentTab.add(components.get(selectedTab));
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement