package fr.lteconsulting.hexa.client.ui.widget;
import java.util.HashMap;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.ListBox;
public class ListBoxGen<T> extends Composite
{
int nextIdx = 0;
ListBox base = new ListBox();
HashMap<Integer, T> items = new HashMap<Integer, T>();
HashMap<T, Integer> idxs = new HashMap<T, Integer>();
public ListBoxGen()
{
initWidget( base );
}
public void clear()
{
base.clear();
items.clear();
idxs.clear();
}
public void addItem( String text, T object )
{
base.addItem( text );
items.put( nextIdx, object );
idxs.put( object, nextIdx );
nextIdx++;
}
public void setItemText( T object, String text )
{
Integer idx = idxs.get( object );
if( idx == null )
return;
base.setItemText( idx, text );
}
public void setSelected( T object )
{
Integer idx = idxs.get( object );
if( idx == null )
return;
base.setSelectedIndex( idx );
}
public T getSelected()
{
T res = items.get( base.getSelectedIndex() );
return res;
}
public void addChangeHandler( ChangeHandler handler )
{
base.addChangeHandler( handler );
}
public void setEnabled( boolean fEnabled )
{
base.setEnabled( fEnabled );
}
}