package apes.views;
import java.util.Observable;
import javax.swing.JComboBox;
import apes.interfaces.LanguageObserver;
import apes.lib.Language;
/**
* Like JComboBox except that it takes an array of locale tags as argument
* instead of the text.
*
* @author Johan Andersson (johandy@student.chalmers.se)
*/
public class ApesComboBox extends JComboBox implements LanguageObserver
{
/**
* A language object.
*/
private Language language;
/**
* A list of all items (locale tags).
*/
private Object[] items;
/**
* Creates a new <code>ApesPanel</code> instance.
*
* @param items The list of locale tags.
*/
public ApesComboBox(Object[] items)
{
this.language = Language.getInstance();
this.items = items;
addLanguageItems();
language.addObserver(this);
}
public void update(Observable o, Object arg)
{
removeAllItems();
addLanguageItems();
this.updateUI();
}
/**
* Adds all items fetched from the current locale.
*/
private void addLanguageItems()
{
for(int i = 0; i < items.length; i++)
{
addItem(language.get((String)items[i]));
}
}
}