diff options
Diffstat (limited to 'uitest/src/com/vaadin/tests/tickets/Ticket1245.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/tickets/Ticket1245.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/tickets/Ticket1245.java b/uitest/src/com/vaadin/tests/tickets/Ticket1245.java new file mode 100644 index 0000000000..6aa1c1752a --- /dev/null +++ b/uitest/src/com/vaadin/tests/tickets/Ticket1245.java @@ -0,0 +1,95 @@ +package com.vaadin.tests.tickets; + +import com.vaadin.data.Item; +import com.vaadin.data.Property; +import com.vaadin.ui.AbstractSelect; +import com.vaadin.ui.CustomComponent; +import com.vaadin.ui.Label; +import com.vaadin.ui.UI.LegacyWindow; +import com.vaadin.ui.TextField; +import com.vaadin.ui.Tree; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.themes.Reindeer; + +public class Ticket1245 extends com.vaadin.Application.LegacyApplication { + + TextField f = new TextField(); + + @Override + public void init() { + final LegacyWindow main = new LegacyWindow(getClass().getName() + .substring(getClass().getName().lastIndexOf(".") + 1)); + setMainWindow(main); + + main.addComponent(new TreeExample()); + } +} + +class TreeExample extends CustomComponent { + + // Id for the caption property + private static final Object CAPTION_PROPERTY = "caption"; + + private static final String desc = "non-first tree in non-sized orderedlayout seems to be the problem"; + + Tree tree; + + public TreeExample() { + final VerticalLayout main = new VerticalLayout(); + setCompositionRoot(main); + + // Panel w/ Tree + main.setStyleName(Reindeer.PANEL_LIGHT); + main.setWidth("200px"); + // // Description, this is needed. Works in first slot + main.addComponent(new Label(desc)); + + // setting either width or height fixes the issue + // p.setWidth(500); + // p.setHeight(800); + + // Tree with a few items + tree = new Tree(); + tree.setImmediate(true); + // we'll use a property for caption instead of the item id ("value"), + // so that multiple items can have the same caption + tree.addContainerProperty(CAPTION_PROPERTY, String.class, ""); + tree.setItemCaptionMode(AbstractSelect.ITEM_CAPTION_MODE_PROPERTY); + tree.setItemCaptionPropertyId(CAPTION_PROPERTY); + for (int i = 1; i <= 3; i++) { + final Object id = addCaptionedItem("Section " + i, null); + tree.expandItem(id); + addCaptionedItem("Team A", id); + addCaptionedItem("Team B", id); + } + main.addComponent(tree); + } + + /** + * Helper to add an item with specified caption and (optional) parent. + * + * @param caption + * The item caption + * @param parent + * The (optional) parent item id + * @return the created item's id + */ + private Object addCaptionedItem(String caption, Object parent) { + // add item, let tree decide id + final Object id = tree.addItem(); + // get the created item + final Item item = tree.getItem(id); + // set our "caption" property + @SuppressWarnings("unchecked") + final Property<String> p = (Property<String>) item + .getItemProperty(CAPTION_PROPERTY); + p.setValue(caption); + if (parent != null) { + tree.setChildrenAllowed(parent, true); + tree.setParent(id, parent); + tree.setChildrenAllowed(id, false); + } + return id; + } + +} |