package fr.lteconsulting.hexa.client.ui.tools;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.user.client.ui.Button;
import fr.lteconsulting.hexa.client.ui.miracle.Printer;
public class SingleSelectionColumn<T> extends ROColumnMng<T> implements HasSelectionHandlers<T>
{
private final SimpleEventBus eventBus = new SimpleEventBus();
public SingleSelectionColumn( String title )
{
super( title );
}
@Override
public void fillCell( Printer printer, final T record )
{
final Button button = new Button( "*" );
printer.setWidget( button );
button.addClickHandler( new ClickHandler()
{
@Override
public void onClick( ClickEvent event )
{
SelectionEvent.fire( SingleSelectionColumn.this, record );
}
} );
}
@Override
public void fireEvent( GwtEvent<?> event )
{
eventBus.fireEvent( event );
}
@Override
public HandlerRegistration addSelectionHandler( SelectionHandler<T> handler )
{
return eventBus.addHandler( SelectionEvent.getType(), handler );
}
}