package org.chartsy.main.utils.autocomplete;
import java.io.IOException;
import javax.swing.text.JTextComponent;
import org.chartsy.main.data.StockNode;
import org.chartsy.main.data.StockSet;
import org.chartsy.main.managers.DataProviderManager;
/**
*
* @author Viorel
*/
public class StockAutoCompleter extends AutoCompleter
{
private String dataProvider;
public StockAutoCompleter(JTextComponent comp)
{
super(comp);
}
public void setDataProvider(String dataProvider)
{
this.dataProvider = dataProvider;
}
@Override
protected boolean updateListData() throws IOException
{
String value = component.getText();
if (!value.isEmpty())
{
StockSet stockSet = DataProviderManager.getDefault().getDataProvider(dataProvider).fetchAutocomplete(value);
list.setListData(stockSet.stocks());
return true;
}
else
{
list.setListData(new String[0]);
return true;
}
}
@Override
protected void acceptedListItem(Object selected)
{
if (selected == null)
return;
if (selected != null
&& selected instanceof StockNode)
{
component.setText(((StockNode) selected).getSymbol());
popupMenu.setVisible(false);
}
}
}