package org.tessell.widgets.cellview;
import org.tessell.widgets.cellview.StubCell.StubCellValue;
import com.google.gwt.cell.client.Cell;
import com.google.gwt.cell.client.ValueUpdater;
import com.google.gwt.user.cellview.client.Header;
public class StubHeader<C> implements IsHeader<C> {
private final HeaderValue<C> value;
private final Cell<C> cell;
public StubHeader(final HeaderValue<C> value, final Cell<C> cell) {
this.value = value;
this.cell = cell;
((StubCell<C>) cell).setStubCellValue(new StubCellValue<C>() {
@Override
public C getValue(int displayedIndex) {
return value.get();
}
@Override
public void setValue(int displayedIndex, C newValue) {
value.set(newValue);
}
});
}
@Override
public Header<C> asHeader() {
throw new IllegalStateException("This is a stub");
}
@Override
public Cell<C> getCell() {
return cell;
}
@Override
public C getValue() {
return value.get();
}
@Override
public ValueUpdater<C> getUpdater() {
return new ValueUpdater<C>() {
public void update(C value) {
StubHeader.this.value.set(value);
}
};
}
}