package edu.vanderbilt.vm.guide.ui.adapter;
import android.content.Context;
import android.location.Location;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import edu.vanderbilt.vm.guide.R;
import edu.vanderbilt.vm.guide.container.Place;
import edu.vanderbilt.vm.guide.util.Geomancer;
/**
* Date: 6/5/13
* Time: 7:12 PM
*/
public class PlaceItemView extends ItemView {
public PlaceItemView(Context ctx) {
super(ctx);
View.inflate(ctx, R.layout.place_list_item, this);
mName = (TextView) findViewById(R.id.placelist_item_title);
mIcon = (ImageView) findViewById(R.id.placelist_item_thumbnail);
mDistance = (TextView) findViewById(R.id.placelist_item_distance);
}
/**
* <p>
* Instruct this object to morph itself according to a data object passed into it. This method's signature is made
* to match the setView() of BaseAdapter, but only <code>obj</code> is important. View recycling should be done
* in the adapter that uses this ItemView, so <code>convertView</code> is useless.
* </p>
* <p>
* <code>indexer</code> is used if the ListView will be indexed. Otherwise, use null.
* </p>
*
* @param obj Data object to be detailed
* @param position This item's position in the list. Usually unused.
* @param convertView view for recycling. leave nulled.
* @param parent the ViewGroup which contains this view. leave nulled.
* @param indexer
*/
@Override
public void setView(
Object obj,
int position,
View convertView,
ViewGroup parent,
CursorIndexerFactory.CursorIndexer indexer)
{
Place plc = (Place) obj;
mName.setText(plc.getName());
Location tmp = new Location("Temp");
tmp.setLatitude(plc.getLatitude());
tmp.setLongitude(plc.getLongitude());
mDistance.setText(Geomancer.getDistanceString(tmp));
}
private TextView mName;
private ImageView mIcon;
private TextView mDistance;
//private LinearLayout mHeader;
//private LinearLayout mBody;
public static ItemViewFactory getFactory() {
return new ItemViewFactory() {
@Override
public ItemView getItemView(Context ctx) {
return new PlaceItemView(ctx);
}
};
}
}