選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

TestSetVisibleAndCaching.java 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.vaadin.tests;
  2. import com.vaadin.ui.Button;
  3. import com.vaadin.ui.Component;
  4. import com.vaadin.ui.Label;
  5. import com.vaadin.ui.LegacyWindow;
  6. import com.vaadin.ui.Panel;
  7. import com.vaadin.ui.VerticalLayout;
  8. public class TestSetVisibleAndCaching
  9. extends com.vaadin.server.LegacyApplication {
  10. Panel panelA = new Panel("Panel A");
  11. Panel panelB = new Panel("Panel B");
  12. Panel panelC = new Panel("Panel C");
  13. Button buttonNextPanel = new Button("Show next panel");
  14. int selectedPanel = 0;
  15. @Override
  16. public void init() {
  17. final LegacyWindow mainWindow = new LegacyWindow(
  18. "TestSetVisibleAndCaching");
  19. setMainWindow(mainWindow);
  20. panelA.setContent(wrapInPanelLayout(
  21. new Label("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")));
  22. panelB.setContent(wrapInPanelLayout(
  23. new Label("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB")));
  24. panelC.setContent(wrapInPanelLayout(
  25. new Label("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC")));
  26. mainWindow.addComponent(
  27. new Label("Inspect transfered data from server to "
  28. + "client using firebug (http request / response cycles)."
  29. + " See how widgets are re-used,"
  30. + " after each panel is once shown in GUI then"
  31. + " their contents are not resend."));
  32. mainWindow.addComponent(buttonNextPanel);
  33. mainWindow.addComponent(panelA);
  34. mainWindow.addComponent(panelB);
  35. mainWindow.addComponent(panelC);
  36. selectPanel(selectedPanel);
  37. buttonNextPanel.addClickListener(event -> {
  38. selectedPanel++;
  39. if (selectedPanel > 2) {
  40. selectedPanel = 0;
  41. }
  42. selectPanel(selectedPanel);
  43. });
  44. }
  45. private VerticalLayout wrapInPanelLayout(Component component) {
  46. VerticalLayout layout = new VerticalLayout();
  47. layout.setMargin(true);
  48. layout.addComponent(component);
  49. return layout;
  50. }
  51. private void selectPanel(int selectedPanel) {
  52. System.err.println("Selecting panel " + selectedPanel);
  53. switch (selectedPanel) {
  54. case 0:
  55. panelA.setVisible(true);
  56. panelB.setVisible(false);
  57. panelC.setVisible(false);
  58. break;
  59. case 1:
  60. panelA.setVisible(false);
  61. panelB.setVisible(true);
  62. panelC.setVisible(false);
  63. break;
  64. case 2:
  65. panelA.setVisible(false);
  66. panelB.setVisible(false);
  67. panelC.setVisible(true);
  68. break;
  69. }
  70. }
  71. }