package com.googlecode.gwt.test.uibinder.specialization;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
class GenericWidget<T> extends Composite {
@SuppressWarnings("rawtypes")
interface GenericWidgetContainerUiBinder extends UiBinder<Widget, GenericWidget> {
}
static class ItemWidget extends GenericWidget<Item> {
public ItemWidget(final Item object) {
super(object);
}
}
static class PersonWidget extends GenericWidget<Person> {
public PersonWidget(final Person object) {
super(object);
}
}
private static GenericWidgetContainerUiBinder uiBinder = GWT.create(GenericWidgetContainerUiBinder.class);
@UiField
Label genericLabel;
public GenericWidget(final T object) {
initWidget(uiBinder.createAndBindUi(this));
genericLabel.setText(object.toString());
}
}