package org.tessell.widgets.cellview;
import com.google.gwt.cell.client.Cell;
import com.google.gwt.cell.client.ValueUpdater;
import com.google.gwt.user.cellview.client.Header;
/**
* Allows subclasses to pretend to be an {@link IsHeader}, but
* by delegating to a separate header.
*
* This is typically useful for making high-level header classes
* that you want to reuse in unit tests. The high-level class
* can make a {@code newHeader} call and pass the resulting
* {@link GwtHeader} or {@link StubHeader} to our constructor.
*/
public class DelegateIsHeader<C> implements IsHeader<C> {
protected IsHeader<C> delegate;
/** Allows subclasses to set the delegate outside of a super call. */
public DelegateIsHeader() {
}
public DelegateIsHeader(IsHeader<C> delegate) {
this.delegate = delegate;
}
@Override
public Cell<C> getCell() {
return delegate.getCell();
}
@Override
public C getValue() {
return delegate.getValue();
}
@Override
public ValueUpdater<C> getUpdater() {
return delegate.getUpdater();
}
@Override
public Header<C> asHeader() {
return delegate.asHeader();
}
}