@Override protected void setup() { Tree tree = new Tree(); tree.setImmediate(true); tree.addContainerProperty("caption", String.class, ""); for (int i = 1; i <= 10; i++) { String item = "Node " + i; tree.addItem(item); tree.getContainerProperty(item, "caption").setValue("Caption " + i); tree.setChildrenAllowed(item, false); } tree.setItemCaptionMode(Tree.ITEM_CAPTION_MODE_PROPERTY); tree.setItemCaptionPropertyId("caption"); tree.addListener( new ItemClickEvent.ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { clickCounter++; switch (event.getButton()) { case LEFT: log.log("Left Click"); break; case RIGHT: log.log("Right Click"); break; case MIDDLE: log.log("Middle Click"); break; } } }); addComponent(tree); addComponent(log); }