package org.orienteer.core.model;
import java.util.Collection;
import org.apache.wicket.util.string.Strings;
import org.wicketstuff.select2.Response;
import org.wicketstuff.select2.ChoiceProvider;
import ru.ydn.wicket.wicketorientdb.utils.OClassClassNameConverter;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.orientechnologies.orient.core.metadata.schema.OClass;
/**
* {@link ChoiceProvider} for {@link OClass}es
*/
public class OClassTextChoiceProvider extends ChoiceProvider<OClass> {
public static final OClassTextChoiceProvider INSTANCE = new OClassTextChoiceProvider();
@Override
public void query(final String s, int i, Response<OClass> response) {
if(!Strings.isEmpty(s)) {
response.addAll(ListOClassesModel.load(new Predicate<OClass>() {
@Override
public boolean apply(OClass input) {
return input.getName().contains(s);
}
}));
}
}
@Override
public Collection<OClass> toChoices(Collection<String> collection) {
return Collections2.transform(collection, OClassClassNameConverter.INSTANCE.reverse());
}
@Override
public String getDisplayValue(OClass choice) {
return choice.getName();
}
@Override
public String getIdValue(OClass choice) {
return choice.getName();
}
}