package org.azavea.otm.adapters;
import java.util.LinkedHashMap;
import java.util.List;
import org.azavea.otm.data.Species;
import org.azavea.otm.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class SpeciesAdapter extends LinkedHashMapAdapter<Species> {
private final LayoutInflater inflater;
public SpeciesAdapter(Context context, LinkedHashMap<CharSequence, List<Species>> data) {
super(context, data);
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getSeparatorView(int position, View convertView, ViewGroup parent) {
View row = convertView;
SeparatorHolder holder;
if (row == null) {
row = inflater.inflate(R.layout.list_separator_row, parent, false);
holder = new SeparatorHolder();
holder.separator = (TextView) row.findViewById(R.id.separator);
row.setTag(holder);
} else {
holder = (SeparatorHolder) row.getTag();
}
CharSequence text = getItem(position).key;
holder.separator.setText(text);
return row;
}
@Override
public View getElementView(int position, View convertView, ViewGroup parent) {
View row = convertView;
SpeciesHolder holder;
if (row == null) {
row = inflater.inflate(R.layout.species_list_row, parent, false);
holder = new SpeciesHolder();
holder.commonName = (TextView) row.findViewById(R.id.common_name);
holder.scientificName = (TextView) row.findViewById(R.id.sci_name);
row.setTag(holder);
} else {
holder = (SpeciesHolder) row.getTag();
}
Species species = getItem(position).value;
holder.commonName.setText(species.getCommonName());
holder.scientificName.setText(species.getScientificName());
return row;
}
static class SpeciesHolder {
TextView commonName;
TextView scientificName;
}
static class SeparatorHolder {
TextView separator;
}
}