Vaadin table events

Hello Guys,
Could you tell me please, how I can cupture vaadin tables currently selected item? I know that I can attach an itemClickListenere, but it works only when an item is clciked. When the user uses up/down keys to go to next items, the table does not invoke that event. Please help me to figure out the isse.

Thanks in advance

Hello Imran, please try the ValueChangeListener

Unfortunately, it is not working :(. Here is what I have. Display is my view, and this is the presenter trying to catch value change events. No luck.

display.currencyTable().setImmediate(true);
        display.currencyTable().addValueChangeListener(new Property.ValueChangeListener() {
            public void valueChange(ValueChangeEvent event) {
                if (event.getProperty().getValue() != null)
                    display.getLabel().setCaption("Selected item id " +
                            event.getProperty().getValue().toString());
                else // Item deselected
                    display.getLabel().setCaption("Selected item id " +
                            event.getProperty().getValue().toString());
            }
        });

Finally, found it.
The problem is with the way I set the tables data.When I follow this sample, it worked.
It is the bean container that is trapping value change events. Thank you very much for your help.

    Table sample=display.currencyTable();

        /* Define the names and data types of columns.
         * The "default value" parameter is meaningless here. */
        sample.addContainerProperty("First Name", String.class,  null);
        sample.addContainerProperty("Last Name",  String.class,  null);
        sample.addContainerProperty("Year",       Integer.class, null);

        /* Add a few items in the sample. */
        sample.addItem(new Object[] {
            "Nicolaus","Copernicus",new Integer(1473)}, new Integer(1));
        sample.addItem(new Object[] {
            "Tycho",   "Brahe",     new Integer(1546)}, new Integer(2));
        sample.addItem(new Object[] {
            "Giordano","Bruno",     new Integer(1548)}, new Integer(3));
        sample.addItem(new Object[] {
            "Galileo", "Galilei",   new Integer(1564)}, new Integer(4));
        sample.addItem(new Object[] {
            "Johannes","Kepler",    new Integer(1571)}, new Integer(5));
        sample.addItem(new Object[] {
            "Isaac",   "Newton",    new Integer(1643)}, new Integer(6));
        
 
        display.currencyTable().setImmediate(true);
        display.currencyTable().setMultiSelect(true);
    
        display.currencyTable().addValueChangeListener(new ValueChangeListener() {
            @Override
            public void valueChange(final ValueChangeEvent event) {
                final String valueString = String.valueOf(event.getProperty()
                        .getValue());
                Notification.show("Value changed:", valueString,
                        Type.TRAY_NOTIFICATION);
            }
        });