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.

TreeScrollingOnSelection.java 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.vaadin.tests.components.tree;
  2. import com.vaadin.data.util.HierarchicalContainer;
  3. import com.vaadin.event.ItemClickEvent;
  4. import com.vaadin.event.ItemClickEvent.ItemClickListener;
  5. import com.vaadin.tests.components.TestBase;
  6. import com.vaadin.ui.Label;
  7. import com.vaadin.ui.Panel;
  8. import com.vaadin.ui.Tree;
  9. public class TreeScrollingOnSelection extends TestBase {
  10. private static final long serialVersionUID = 4082075610259697145L;
  11. private static final String GREEK_ALPHABET = "greek alphabet";
  12. private static final String[] ALPHABET = { "Alpha", "Beta", "Gamma",
  13. "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa",
  14. "Lambda", "My", "Ny", "Xi", "Omikron", "Pi", "Rho", "Sigma", "Tau",
  15. "Ypsilon", "Phi", "Chi", "Psi", "Omega" };
  16. @Override
  17. public void setup() {
  18. final Label charLabel = new Label();
  19. charLabel.setWidth("200px");
  20. Tree tree = new Tree("alphabets", getContainer());
  21. tree.expandItem(GREEK_ALPHABET);
  22. tree.addListener(new ItemClickListener() {
  23. private static final long serialVersionUID = 5955518276555388126L;
  24. public void itemClick(ItemClickEvent event) {
  25. charLabel.setValue(event.getItemId().toString());
  26. }
  27. });
  28. tree.setImmediate(true);
  29. Panel panel = new Panel();
  30. panel.addComponent(tree);
  31. panel.setWidth("200px");
  32. panel.setHeight("300px");
  33. addComponent(panel);
  34. addComponent(charLabel);
  35. }
  36. private HierarchicalContainer getContainer() {
  37. HierarchicalContainer container = new HierarchicalContainer();
  38. container.addItem(GREEK_ALPHABET);
  39. for (String character : ALPHABET) {
  40. container.addItem(character);
  41. container.setChildrenAllowed(character, false);
  42. container.setParent(character, GREEK_ALPHABET);
  43. }
  44. return container;
  45. }
  46. @Override
  47. protected String getDescription() {
  48. return "Selecting an item in the tree inside the Panel should not cause the panel scroll position to change.";
  49. }
  50. @Override
  51. protected Integer getTicketNumber() {
  52. return 6731;
  53. }
  54. }