package com.biznow.ordernow.adapter; import java.util.List; import android.app.AlertDialog; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import com.data.menu.RecommendationType; import com.biznow.ordernow.R; import com.biznow.ordernow.model.IngredientOptionView; public class OptionRowAdapter extends ArrayAdapter<IngredientOptionView> { private List<IngredientOptionView> optionList; private IngredientListener ingredientListener; public OptionRowAdapter(Context context, List<IngredientOptionView> optionList, IngredientListener ingredientListener) { super(context, R.layout.option_row, optionList); this.optionList = optionList; this.ingredientListener = ingredientListener; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO ViewHolder Pattern as in FoodMenuItemAdapter if (convertView == null) { LayoutInflater vi = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(R.layout.option_row, null); } final IngredientOptionView option = optionList.get(position); TextView optionName = (TextView) convertView .findViewById(R.id.optionName); optionName.setText(option.getOptionName()); TextView optionDescription = (TextView) convertView .findViewById(R.id.optionDescription); optionDescription.setText(option.getDescription()); TextView recommended = (TextView) convertView .findViewById(R.id.optionRecommend); String recommendationText = ""; RecommendationType recommendationtype = option.getRecommendation(); if (recommendationtype.equals(RecommendationType.None)) { recommendationText = ""; } else { recommendationText = recommendationtype.toString(); } recommended.setText(recommendationText); View.OnClickListener recommendationStringListener = new View.OnClickListener() { @Override public void onClick(View arg0) { AlertDialog.Builder builder = new AlertDialog.Builder( getContext()); builder.setTitle("Help Note"); builder.setMessage(option.getRecommendationString()); builder.setPositiveButton(R.string.ok, null); AlertDialog alert = builder.create(); alert.show(); } }; if (!recommendationText.equals("")) { recommended.setOnClickListener(recommendationStringListener); } ImageView helpView = (ImageView) convertView .findViewById(R.id.helpicon); if (recommendationText.equals("")) { helpView.setVisibility(View.INVISIBLE); } else { helpView.setVisibility(View.VISIBLE); helpView.setOnClickListener(recommendationStringListener); } final CheckBox ch = (CheckBox) convertView .findViewById(R.id.optionCheck); ch.setChecked(ingredientListener.isSelected(option)); ch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { ingredientListener.updateIngredient(option, ch.isChecked()); option.setSelected(ch.isChecked()); } }); return convertView; } }