Treetable - how to get a handle of a table's row and its individual element

I have a tree table that’s defined like this

    ttable2.addContainerProperty("Product", CheckBox.class, "");
    ttable2.addContainerProperty("EOD1", Image.class, "");
    ttable2.addContainerProperty("EOD2", Image.class, "");
    ttable2.addContainerProperty("EOD3", Image.class, "");
    ttable2.addContainerProperty("EOD4", Image.class, "");
    ttable2.addContainerProperty("EOD5", Image.class, "");

as you can see the first one is a custom rendering of a Product name.The checkbox is used as the renderer,with the checkbox description being the Product Name and the user has a provision to select/deselect a product.
Some of these have subproducts(children).I have set a ValueChangeListener against this checkbox which gets trigerred alright.But if I check/uncheck a parent product I want all its children to be checked/unchecked.

I’m able to get the itemId that was checked and subsequently all its children/subproduct item ids too like this

CheckBox cb = (CheckBox)event.getProperty();
TreeTable ttable2 = (TreeTable)cb.getParent();
int itemId = (Integer)cb.getData();
Collection col = (Collection)ttable2.getChildren(itemId);

I run a for loop against this col and using this item id I try to get the particular item from the tree table

Item item = ttable2.getItem(itemIndex);

When I print the item using
System.out.println("Item : "+item);
I see this
Item : false com.vaadin.ui.Image@213319f com.vaadin.ui.Image@2133244 com.vaadin.ui.Image@21332e9 com.vaadin.ui.Image@213338e com.vaadin.ui.Image@2133433

If you notice the first element should have been a checkbox but it looks to be a boolean.

I’m having a tough time with this as if I cast

to boolean I get a class cast exception
and it complains that it is not a checkbox if I cast it to checkbox

What am I doing wrong here?

What I want to is get a reference to the item’s checkbox and then do a setValue() true/false as the case may be.