You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Ticket2061b.java 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.vaadin.tests.tickets;
  2. import com.vaadin.data.Item;
  3. import com.vaadin.data.Property.ValueChangeEvent;
  4. import com.vaadin.data.Property.ValueChangeListener;
  5. import com.vaadin.data.util.HierarchicalContainer;
  6. import com.vaadin.server.LegacyApplication;
  7. import com.vaadin.server.Sizeable;
  8. import com.vaadin.ui.AbstractOrderedLayout;
  9. import com.vaadin.ui.Accordion;
  10. import com.vaadin.ui.Component;
  11. import com.vaadin.ui.CustomComponent;
  12. import com.vaadin.ui.Label;
  13. import com.vaadin.ui.LegacyWindow;
  14. import com.vaadin.ui.Panel;
  15. import com.vaadin.ui.TabSheet;
  16. import com.vaadin.ui.TabSheet.SelectedTabChangeEvent;
  17. import com.vaadin.ui.TabSheet.SelectedTabChangeListener;
  18. import com.vaadin.ui.Table;
  19. import com.vaadin.ui.TextField;
  20. import com.vaadin.ui.VerticalLayout;
  21. import com.vaadin.ui.VerticalSplitPanel;
  22. public class Ticket2061b extends LegacyApplication implements
  23. SelectedTabChangeListener {
  24. private LegacyWindow mainWindow;
  25. private Panel p;
  26. @Override
  27. public void init() {
  28. mainWindow = new LegacyWindow("Ticket 2061b");
  29. mainWindow.setSizeFull();
  30. AbstractOrderedLayout mainLayout = (AbstractOrderedLayout) mainWindow
  31. .getContent();
  32. mainLayout.setSizeFull();
  33. mainLayout.setMargin(false);
  34. setMainWindow(mainWindow);
  35. VerticalSplitPanel sp = new VerticalSplitPanel();
  36. sp.setSizeFull();
  37. sp.setSplitPosition(20, Sizeable.UNITS_PIXELS);
  38. VerticalLayout pl = new VerticalLayout();
  39. pl.setMargin(true);
  40. p = new Panel("This is a panel", pl);
  41. p.setSizeFull();
  42. Label label1 = new Label("This is a table!");
  43. label1.setHeight("1500px");
  44. label1.setWidth("1500px");
  45. pl.addComponent(label1);
  46. p.setScrollTop(50);
  47. // MyTable table1 = new MyTable(24, "table1");
  48. // table1.loadTable(1000);
  49. // MyTable table2 = new MyTable(24, "table2");
  50. // table2.loadTable(1000);
  51. // MyTable table3 = new MyTable(24, "table3");
  52. // table3.loadTable(1000);
  53. // MyAccordion accordion = new MyAccordion(new Component[] { table1,
  54. // table2 }, "Test");
  55. Label a = new Label("abc123");
  56. TextField tf = new TextField("A large textfield");
  57. tf.setHeight("2500px");
  58. tf.setWidth("2500px");
  59. TabsAcc tab = new TabsAcc(new Component[] { p, a, tf });
  60. tab.addListener(this);
  61. mainLayout.addComponent(sp);
  62. sp.addComponent(new Label("C 1"));
  63. // sp.addComponent(new Label("C 2"));
  64. // sp.setHeight("100px");
  65. sp.addComponent(tab);
  66. // mainLayout.addComponent(new Label("Filler"));
  67. // mainLayout.addComponent(tab);
  68. // mainLayout.setExpandRatio(tab, 1.0f);
  69. // sp.addComponent(new Label("Filler"));
  70. // sp.addComponent(tab);
  71. pl = new VerticalLayout();
  72. pl.setMargin(true);
  73. p = new Panel("This is a panel", pl);
  74. p.setWidth("2000px");
  75. p.setHeight("2000px");
  76. VerticalLayout p2l = new VerticalLayout();
  77. p2l.setMargin(true);
  78. Panel p2 = new Panel("This is another panel", p2l);
  79. p2.setWidth("2500px");
  80. p2.setHeight("2500px");
  81. label1 = new Label("This is a table!");
  82. label1.setHeight("1500px");
  83. label1.setWidth("1500px");
  84. p2l.addComponent(label1);
  85. pl.addComponent(p2);
  86. tab.addTab(p, "Panel with panel", null);
  87. }
  88. public class MyTable extends CustomComponent implements ValueChangeListener {
  89. private Table table = new Table();
  90. private String[] columns;
  91. private VerticalLayout layout = new VerticalLayout();
  92. public MyTable(int columnNumber, String id) {
  93. setId(id);
  94. setCompositionRoot(layout);
  95. setSizeFull();
  96. columns = initializeColumns(columnNumber);
  97. table.setWidth("100%");
  98. table.setHeight("100%");
  99. table.setColumnReorderingAllowed(true);
  100. table.setColumnCollapsingAllowed(true);
  101. table.setSelectable(true);
  102. table.setMultiSelect(false);
  103. table.setNullSelectionAllowed(false);
  104. // table.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);
  105. table.addListener(this);
  106. table.setContainerDataSource(createContainer());
  107. layout.addComponent(table);
  108. }
  109. public void loadTable(int itemNumber) {
  110. table.removeAllItems();
  111. for (int j = 0; j < itemNumber; j++) {
  112. Item rowItem = table.addItem(j);
  113. if (rowItem != null) {
  114. for (int i = 0; i < columns.length; i++) {
  115. rowItem.getItemProperty(columns[i]).setValue(
  116. "Value" + j);
  117. }
  118. }
  119. }
  120. }
  121. private HierarchicalContainer createContainer() {
  122. final HierarchicalContainer c = new HierarchicalContainer();
  123. for (int i = 0; i < columns.length; i++) {
  124. c.addContainerProperty(columns[i], String.class, null);
  125. }
  126. return c;
  127. }
  128. private String[] initializeColumns(int number) {
  129. String[] columns = new String[number];
  130. for (int i = 0; i < number; i++) {
  131. columns[i] = "Column" + i;
  132. }
  133. return columns;
  134. }
  135. @Override
  136. public void valueChange(ValueChangeEvent event) {
  137. }
  138. }
  139. public class Tabs extends TabSheet {
  140. public Tabs(Component[] components) {
  141. this.setWidth("100%");
  142. this.setHeight("100%");
  143. for (int i = 0; i < components.length; i++) {
  144. this.addTab(components[i], components[i].getId(), null);
  145. }
  146. }
  147. }
  148. public class TabsAcc extends Accordion {
  149. public TabsAcc(Component[] components) {
  150. this.setWidth("100%");
  151. this.setHeight("100%");
  152. for (int i = 0; i < components.length; i++) {
  153. this.addTab(components[i], components[i].getId(), null);
  154. }
  155. }
  156. }
  157. public class MyAccordion extends Accordion {
  158. public MyAccordion(Component[] components, String id) {
  159. this.setWidth("100%");
  160. this.setHeight("100%");
  161. setId(id);
  162. for (int i = 0; i < components.length; i++) {
  163. this.addTab(components[i], components[i].getId(), null);
  164. }
  165. }
  166. }
  167. @Override
  168. public void selectedTabChange(SelectedTabChangeEvent event) {
  169. p.setScrollTop(10);
  170. }
  171. }