package org.orienteer.core.model; import java.util.List; import java.util.Locale; import org.apache.wicket.util.string.Strings; import org.wicketstuff.select2.ChoiceProvider; import org.wicketstuff.select2.Response; import org.wicketstuff.select2.StringTextChoiceProvider; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; /** * {@link ChoiceProvider} for combobox of language codes. */ public class LanguagesChoiceProvider extends StringTextChoiceProvider { private static final List<String> ISO_LANGUAGES = ImmutableList.copyOf(Locale.getISOLanguages()); public static final LanguagesChoiceProvider INSTANCE = new LanguagesChoiceProvider(); @Override public void query(final String term, int page, Response<String> response) { response.addAll(Strings.isEmpty(term) ?ISO_LANGUAGES :Collections2.filter(ISO_LANGUAGES, new Predicate<String>() { @Override public boolean apply(String s) { return s.startsWith(term); } })); } }