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.

TabIndexes.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.vaadin.tests.fields;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.tests.components.AbstractTestUIWithLog;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Button.ClickEvent;
  8. import com.vaadin.ui.Button.ClickListener;
  9. import com.vaadin.ui.CheckBox;
  10. import com.vaadin.ui.ComboBox;
  11. import com.vaadin.ui.Component;
  12. import com.vaadin.ui.GridLayout;
  13. import com.vaadin.ui.HorizontalLayout;
  14. import com.vaadin.ui.InlineDateField;
  15. import com.vaadin.ui.ListSelect;
  16. import com.vaadin.ui.NativeSelect;
  17. import com.vaadin.ui.OptionGroup;
  18. import com.vaadin.ui.PopupDateField;
  19. import com.vaadin.ui.RichTextArea;
  20. import com.vaadin.ui.Slider;
  21. import com.vaadin.ui.Table;
  22. import com.vaadin.ui.TextArea;
  23. import com.vaadin.ui.Tree;
  24. import com.vaadin.ui.TreeTable;
  25. import com.vaadin.ui.TwinColSelect;
  26. import com.vaadin.v7.ui.LegacyPasswordField;
  27. import com.vaadin.v7.ui.LegacyTextField;
  28. @SuppressWarnings("rawtypes")
  29. public class TabIndexes extends AbstractTestUIWithLog {
  30. private List<Focusable> fields;
  31. @Override
  32. protected void setup(VaadinRequest request) {
  33. HorizontalLayout buttonLayout = new HorizontalLayout();
  34. addComponent(buttonLayout);
  35. Button clearTabIndexes = new Button("Set all tab indexes to 0");
  36. clearTabIndexes.addClickListener(new ClickListener() {
  37. @Override
  38. public void buttonClick(ClickEvent event) {
  39. log("Setting tab indexes to 0");
  40. for (Focusable f : fields) {
  41. f.setTabIndex(0);
  42. }
  43. updateCaptions();
  44. }
  45. });
  46. Button setTabIndexesToOne = new Button("Set all tab indexes to 1");
  47. setTabIndexesToOne.addClickListener(new ClickListener() {
  48. @Override
  49. public void buttonClick(ClickEvent event) {
  50. log("Setting tab indexes to 1");
  51. for (Focusable f : fields) {
  52. f.setTabIndex(1);
  53. }
  54. updateCaptions();
  55. }
  56. });
  57. Button setTabIndexesInOrder = new Button("Set tab indexes to 1..N");
  58. setTabIndexesInOrder.addClickListener(new ClickListener() {
  59. @Override
  60. public void buttonClick(ClickEvent event) {
  61. int tabIndex = 1;
  62. log("Setting tab indexes to 1..N");
  63. for (Focusable f : fields) {
  64. f.setTabIndex(tabIndex++);
  65. }
  66. updateCaptions();
  67. }
  68. });
  69. Button setTabIndexesInReverseOrder = new Button(
  70. "Set tab indexes to N..1");
  71. setTabIndexesInReverseOrder.addClickListener(new ClickListener() {
  72. @Override
  73. public void buttonClick(ClickEvent event) {
  74. int tabIndex = fields.size();
  75. log("Setting tab indexes to N..1");
  76. for (Focusable f : fields) {
  77. f.setTabIndex(tabIndex--);
  78. }
  79. updateCaptions();
  80. }
  81. });
  82. fields = new ArrayList<Focusable>();
  83. Table t = new Table();
  84. t.setSelectable(true);
  85. t.addContainerProperty("foo", String.class, "bar");
  86. t.addItem();
  87. fields.add(t);
  88. fields.add(new ComboBox());
  89. fields.add(new NativeSelect());
  90. fields.add(new ListSelect());
  91. fields.add(new LegacyTextField());
  92. fields.add(new PopupDateField());
  93. fields.add(new InlineDateField());
  94. OptionGroup og = new OptionGroup();
  95. og.addItem("Item 1");
  96. og.addItem("Item 2");
  97. fields.add(og);
  98. TreeTable tt = new TreeTable();
  99. tt.setSelectable(true);
  100. tt.addContainerProperty("foo", String.class, "bar");
  101. tt.addItem();
  102. fields.add(tt);
  103. Tree tree = new Tree();
  104. tree.addItem("Item 1");
  105. fields.add(tree);
  106. fields.add(new TwinColSelect());
  107. fields.add(new LegacyPasswordField());
  108. fields.add(new LegacyTextField());
  109. fields.add(new TextArea());
  110. fields.add(new RichTextArea());
  111. fields.add(new CheckBox());
  112. fields.add(new Slider());
  113. clearTabIndexes.click();
  114. buttonLayout.addComponents(clearTabIndexes, setTabIndexesToOne,
  115. setTabIndexesInOrder, setTabIndexesInReverseOrder);
  116. int fieldId = 1;
  117. GridLayout gl = new GridLayout(4, 4);
  118. for (Component f : fields) {
  119. f.setId("field-" + fieldId++);
  120. gl.addComponent(f);
  121. }
  122. addComponent(gl);
  123. }
  124. protected void updateCaptions() {
  125. for (Focusable f : fields) {
  126. f.setCaption(f.getClass().getSimpleName() + " Tab index: "
  127. + f.getTabIndex());
  128. }
  129. }
  130. @Override
  131. protected Integer getTicketNumber() {
  132. return 10315;
  133. }
  134. @Override
  135. protected String getTestDescription() {
  136. return "Tab index should be propagated into html";
  137. }
  138. }