@SuppressWarnings("unchecked")
 protected <C extends Bloc> List<C> getListData(Class<C> wishedClass) {
   List<C> result = new ArrayList<C>();
   // Log.debug("get list data first: " + view.getGrid().getFirstRowWithDataNumber() + ", count: "
   // + view.getGrid().getRowDataCount());
   for (int row = view.getGrid().getFirstRowWithDataNumber();
       row < view.getGrid().getRowDataCount();
       row++) {
     Widget w = view.getGrid().getWidget(row, 1);
     if (w instanceof ItemWidget) {
       ItemWidget itemWidget = (ItemWidget) w;
       result.add((C) itemWidget.getValue());
     }
   }
   return result;
 }
  @Override
  public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Bloc> handler) {
    for (ItemWidget itemWidget : items) {
      itemWidget.addValueChangeHandler(
          new ValueChangeHandler<Bloc>() {

            @Override
            public void onValueChange(ValueChangeEvent<Bloc> event) {
              ValueChangeEvent.fire(ExtendedAbstractComponent.this, getValue());
            }
          });
    }
    if (hr != null) {
      hr.removeHandler();
    }
    hr = addHandler(handler, ValueChangeEvent.getType());
    return hr;
  }
 @Override
 protected void onSetReadOnly() {
   for (ItemWidget itemWidget : items) {
     itemWidget.setReadOnly(isReadOnly());
   }
 }