I would try to do it with a TreeTable component. Create a Container.Hierarchical with a child itemId for each of your root level row itemId. Then use ColumnGenerator for all the leaf itemIds to generate the TextField components.
Well I’m not quite sure what you are trying to achieve. But howabout something like this. And sorry about the delayed answer. Your reply somehow went past me.
@Override
public void init(VaadinRequest request) {
TreeTable table = new TreeTable();
table.addContainerProperty("Id", Integer.class, null);
table.addContainerProperty("Name", String.class, null);
for (int i = 0; i < 100; i += 2) {
Object[] data = new Object[]
{ i, "xyz" };
Object parentId = table.addItem(data, i);
Object childId = table.addItem(data, i + 1);
table.setChildrenAllowed(childId, false);
table.setParent(childId, parentId);
}
table.setTableFieldFactory(new TableFieldFactory() {
@Override
public Field<?> createField(Container container, Object itemId,
Object propertyId, Component uiContext) {
if (((Integer) itemId) % 2 == 1) {
return new TextField();
}
return null;
}
});
table.setEditable(true);
table.setSelectable(true);
table.setSizeFull();
setContent(table);
}