package com.vt.vthacks.view;
import android.widget.RelativeLayout;
import android.view.LayoutInflater;
import java.util.List;
import com.vt.vthacks.R;
import com.vt.vthacks.model.IAward;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
// -------------------------------------------------------------------------
/**
* This class handles the adapter that will be used for the awards page
*
* @author Brandon Potts , Willson Mitchell
* @version Mar 22, 2014
*/
public class AwardAdapter extends ArrayAdapter<IAward> {
private LayoutInflater mInflater;
// ----------------------------------------------------------
/**
* Create a new AwardAdapter object.
* @param context
* @param listItems
*/
public AwardAdapter(Context context, List<IAward> listItems) {
super(context, 0, listItems);
this.mInflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final IAward item = getItem(position);
AwardItemViewHolder holder;
if(convertView == null)
{
RelativeLayout container =
(RelativeLayout)mInflater.inflate(R.layout.awards_list_row, parent , false);
holder = AwardItemViewHolder.create(container);
container.setTag(holder);
}
else
{
holder = (AwardItemViewHolder)convertView.getTag();
}
holder.titleTextView.setText(item.getTitle());
holder.descripTextView.setText(item.getDescription());
holder.prizeTextView.setText(item.getPrize());
holder.companyTextView.setText(item.getCompany());
return holder.rootView;
}
/**
* // -------------------------------------------------------------------------
/**
*
* Class holds and creates views for the Award list
*
* @author Brandon Potts
* @version Mar 27, 2014
*/
private static class AwardItemViewHolder {
public final RelativeLayout rootView;
public final TextView titleTextView;
public final TextView descripTextView;
public final TextView prizeTextView;
public final TextView companyTextView;
/**
* Creates an AwardItemViewHolder object
*
* @param rootView is the root
* @param titleText is the title TextView
* @param descripTextView is the description TextView
* @param prizeTextView is the prize TextView
*/
private AwardItemViewHolder(RelativeLayout rootView,
TextView titleTextView, TextView descripTextView ,
TextView prizeTextView, TextView companyTextView) {
this.rootView = rootView;
this.titleTextView = titleTextView;
this.descripTextView = descripTextView;
this.prizeTextView = prizeTextView;
this.companyTextView = companyTextView;
}
/**
* Returns new AwardItemViewHolder
*
* @param rootView is the root
* @return new AwardItemViewHolder object
*
*/
public static AwardItemViewHolder create(RelativeLayout rootView) {
TextView titleTextView = (TextView)rootView.findViewById(R.id.award_title);
TextView prizeTextView = (TextView)rootView.findViewById(R.id.award_prize);
TextView descripTextView = (TextView)rootView.findViewById(R.id.award_description);
TextView companyTextView = (TextView)rootView.findViewById(R.id.award_company);
return new AwardItemViewHolder(rootView, titleTextView, descripTextView, prizeTextView, companyTextView);
}
}
}