Guest User

Untitled

a guest
Jan 3rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.11 KB | None | 0 0
  1. package eu.cz.cvut.fit.bitjv.semestralka.client;
  2.  
  3. import javax.servlet.annotation.WebServlet;
  4.  
  5. import com.vaadin.annotations.Theme;
  6. import com.vaadin.annotations.VaadinServletConfiguration;
  7. import com.vaadin.server.VaadinRequest;
  8. import com.vaadin.server.VaadinServlet;
  9. import com.vaadin.ui.Button;
  10. import com.vaadin.ui.DateField;
  11. import com.vaadin.ui.FormLayout;
  12. import com.vaadin.ui.Grid;
  13. import com.vaadin.ui.HorizontalLayout;
  14. import com.vaadin.ui.Label;
  15. import com.vaadin.ui.TabSheet;
  16. import com.vaadin.ui.TextField;
  17. import com.vaadin.ui.UI;
  18. import com.vaadin.ui.VerticalLayout;
  19. import eu.cz.cvut.fit.bitjv.semestralka.entities.Hra;
  20. import eu.cz.cvut.fit.bitjv.semestralka.entities.HraContainer;
  21. import eu.cz.cvut.fit.bitjv.semestralka.entities.Hrac;
  22. import eu.cz.cvut.fit.bitjv.semestralka.entities.HracContainer;
  23. import eu.cz.cvut.fit.bitjv.semestralka.entities.Hrdina;
  24. import eu.cz.cvut.fit.bitjv.semestralka.entities.HrdinaContainer;
  25. import java.math.BigDecimal;
  26. import java.math.BigInteger;
  27. import java.util.Date;
  28. import java.util.List;
  29. import java.time.ZoneId;
  30. import java.util.ArrayList;
  31. import java.util.Set;
  32.  
  33. /**
  34.  * This UI is the application entry point. A UI may either represent a browser
  35.  * window (or tab) or some part of an HTML page where a Vaadin application is
  36.  * embedded.
  37.  * <p>
  38.  * The UI is initialized using {@link #init(VaadinRequest)}. This method is
  39.  * intended to be overridden to add component to the user interface and
  40.  * initialize non-component functionality.
  41.  */
  42. @Theme("mytheme")
  43. public class MyUI extends UI {
  44.  
  45.     private Grid<Hra> hraGrid;
  46.     FormLayout hraForm;
  47.  
  48.     @Override
  49.     protected void init(VaadinRequest vaadinRequest) {
  50.         final VerticalLayout layout = new VerticalLayout();
  51.  
  52.         TabSheet tabs = new TabSheet();
  53.         tabs.setSizeFull();
  54.  
  55.         HorizontalLayout hraTab = initHraTab();
  56.         HorizontalLayout hracTab = initHracTab();
  57.         HorizontalLayout hrdinaTab = initHrdinaTab();
  58.  
  59.         tabs.addComponents(hraTab, hracTab, hrdinaTab);
  60. //        tabs.addComponents(hraTab, hracTab);
  61. //        tabs.addComponents(hraTab);
  62.  
  63.  
  64.         layout.addComponents(tabs);
  65.        
  66.         setContent(layout);
  67.     }
  68.  
  69.     private HorizontalLayout initHraTab() {
  70.         HorizontalLayout tab = new HorizontalLayout();
  71.         tab.setCaption("Hra");
  72.         TabSheet tabs = new TabSheet();
  73.  
  74.         VerticalLayout list = initHraListTab();
  75.         FormLayout form = initHraForm("1");
  76.  
  77.         tabs.addComponents(list, form);
  78.  
  79.         tab.addComponents(list, form);
  80.         return tab;
  81.     }
  82.  
  83.     private VerticalLayout initHraListTab() {
  84.         VerticalLayout list = new VerticalLayout();
  85.         list.setCaption("List");
  86.         try {
  87.             HraClient hraClient = new HraClient();
  88.             HraContainer hc = hraClient.findAll_JSON(HraContainer.class);
  89. //            System.out.println((Hra)hc.get(0));
  90.             hraGrid = initHraGrid(hc.getHry());
  91.  
  92.             hraGrid.addSelectionListener(event -> {
  93.                 Set<Hra> selected = event.getAllSelectedItems();
  94.  
  95.                 if (selected.size() > 0) {
  96.                     Hra hra = selected.stream().findFirst().get();
  97.                     ((TextField) hraForm.getComponent(0)).setValue(hra.getIdHra().toString());
  98.                     ((DateField) hraForm.getComponent(1)).setValue(hra.getStarted().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
  99.                     ((DateField) hraForm.getComponent(2)).setValue(hra.getEnded().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
  100.                     ((TextField) hraForm.getComponent(3)).setValue(hra.getGameDetails());
  101.                     ((TextField) hraForm.getComponent(4)).setValue(hra.getIdMapa().toString());
  102.                 } else {
  103.                     ((TextField) hraForm.getComponent(0)).setValue("");
  104.                     ((DateField) hraForm.getComponent(1)).setValue(null);
  105.                     ((DateField) hraForm.getComponent(2)).setValue(null);
  106.                     ((TextField) hraForm.getComponent(3)).setValue("");
  107.                     ((TextField) hraForm.getComponent(4)).setValue("");
  108.                 }
  109.             });
  110.             list.addComponent(hraGrid);
  111.  
  112.         } catch (Exception ex) {
  113.             Label error = new Label();
  114.             error.setCaption("Error occured: " + ex.getMessage());
  115.             list.addComponent(error);
  116.         }
  117.         return list;
  118.     }
  119.  
  120.     private FormLayout initHraForm(String id) {
  121.         // User Form
  122.         hraForm = new FormLayout();
  123.         hraForm.setCaption("CRUD");
  124.         TextField utf0 = new TextField("ID");
  125.         utf0.setEnabled(false);
  126.         DateField utf1 = new DateField("Started");
  127.         DateField utf2 = new DateField("Ended");
  128.         TextField utf3 = new TextField("Game details");
  129.         TextField utf4 = new TextField("Map ID");
  130.         Button ub1 = new Button("Editovat");
  131.         Button ub2 = new Button("Smazat");
  132.         Button ub3 = new Button("Vytvořit");
  133.  
  134.         HraClient hraClient = new HraClient();
  135.  
  136.         ub1.addClickListener(e -> {
  137.             Hra hra = new Hra();
  138.             hra.setIdHra(BigDecimal.valueOf(Long.parseLong(utf0.getValue())));
  139.             hra.setStarted(Date.from(utf1.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant()));
  140.             hra.setEnded(Date.from(utf2.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant()));
  141.             hra.setGameDetails(utf3.getValue());
  142.             hra.setIdMapa(BigInteger.valueOf(Long.parseLong(utf4.getValue())));
  143.             hraClient.edit_XML(hra, utf0.getValue());
  144.             hraGrid = initHraGrid(hraClient.findAll_XML(HraContainer.class).getHry());
  145.         });
  146.         ub2.addClickListener(e -> {
  147.             hraClient.remove(utf0.getValue());
  148.             hraGrid = initHraGrid(hraClient.findAll_XML(HraContainer.class).getHry());
  149.         });
  150.         ub3.addClickListener(e -> {
  151.             Hra hra = new Hra();
  152.             hra.setIdHra(BigDecimal.valueOf(Long.parseLong(utf0.getValue())));
  153.             hra.setStarted(Date.from(utf1.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant()));
  154.             hra.setEnded(Date.from(utf2.getValue().atStartOfDay(ZoneId.systemDefault()).toInstant()));
  155.             hra.setGameDetails(utf3.getValue());
  156.             hra.setIdMapa(BigInteger.valueOf(Long.parseLong(utf4.getValue())));
  157.             hraClient.create_XML(hra);
  158.             hraGrid = initHraGrid(hraClient.findAll_XML(HraContainer.class).getHry());
  159.         });
  160.         hraForm.addComponents(utf0, utf1, utf2, utf3, utf4, new HorizontalLayout(ub1, ub2, ub3));
  161.         return hraForm;
  162.     }
  163.  
  164.     private Grid<Hra> initHraGrid(List<Hra> hry) {
  165.         Grid<Hra> grid = new Grid<>();
  166.         grid.setSizeFull();
  167.         grid.setItems(hry);
  168.         grid.addColumn(Hra::getIdHra).setCaption("ID");
  169.         grid.addColumn(Hra::getStarted).setCaption("Started");
  170.         grid.addColumn(Hra::getEnded).setCaption("Ended");
  171.         grid.addColumn(Hra::getGameDetails).setCaption("Game details");
  172.         grid.addColumn(Hra::getIdMapa).setCaption("Map ID");
  173.         return grid;
  174.     }
  175.  
  176.         private Grid<Hrac> initHracGrid(List<Hrac> hraci) {
  177.         Grid<Hrac> grid = new Grid<>();
  178.         grid.setSizeFull();
  179.         grid.setItems(hraci);
  180.         grid.addColumn(Hrac::getIdHrac).setCaption("ID");
  181.         grid.addColumn(Hrac::getPrezdivka).setCaption("Nickname");
  182.         grid.addColumn(Hrac::getUsername).setCaption("Username");
  183.         return grid;
  184.     }
  185.    
  186.     private HorizontalLayout initHracTab() {
  187.         HorizontalLayout tab = new HorizontalLayout();
  188.         tab.setCaption("Hrac");
  189.         try {
  190.             HracClient hracClient = new HracClient();
  191.             tab.addComponent(initHracGrid(hracClient.findAll_JSON(HracContainer.class).getHrace()));
  192.         } catch (Exception ex) {
  193.             Label error = new Label();
  194.             error.setCaption("Error occured: " + ex.getMessage());
  195.             tab.addComponent(error);
  196.         }
  197.         return tab;
  198.     }
  199.  
  200.  
  201.  
  202.     private HorizontalLayout initHrdinaTab() {
  203.         HorizontalLayout tab = new HorizontalLayout();
  204.         tab.setCaption("Hrdina");
  205.         try {
  206.             HrdinaClient hracClient = new HrdinaClient();
  207.             tab.addComponent(initHrdinaGrid(hracClient.findAll_XML(HrdinaContainer.class).getHrdiny()));
  208.         } catch (Exception ex) {
  209.             Label error = new Label();
  210.             error.setCaption("Error occured: " + ex.getMessage());
  211.             tab.addComponent(error);
  212.         }
  213.         return tab;
  214.     }
  215.  
  216.     private Grid<Hrdina> initHrdinaGrid(List<Hrdina> hrdinove) {
  217.         Grid<Hrdina> grid = new Grid<>();
  218.         grid.setSizeFull();
  219.         grid.setItems(hrdinove);
  220.         grid.addColumn(Hrdina::getIdHrdina).setCaption("ID");
  221.         grid.addColumn(Hrdina::getJmenoHrdina).setCaption("Name");
  222.         grid.addColumn(Hrdina::getPopisHrdina).setCaption("Description");
  223.         return grid;
  224.     }
  225.  
  226.     @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
  227.     @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
  228.     public static class MyUIServlet extends VaadinServlet {
  229.     }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment