package org.openlmis.core.view.holder; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.TextView; import org.openlmis.core.R; import org.openlmis.core.utils.TextStyleUtil; import org.openlmis.core.utils.ToastUtil; import org.openlmis.core.view.adapter.SelectEmergencyProductAdapter; import org.openlmis.core.view.viewmodel.InventoryViewModel; import roboguice.inject.InjectView; public class SelectEmergencyProductsViewHolder extends BaseViewHolder { @InjectView(R.id.tv_product_name) TextView productName; @InjectView(R.id.tv_short_code) TextView tvShortCode; @InjectView(R.id.touchArea_checkbox) LinearLayout taCheckbox; @InjectView(R.id.checkbox) CheckBox checkBox; public SelectEmergencyProductsViewHolder(View itemView) { super(itemView); taCheckbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { triggerCheckbox(); } }); } public void populate(final SelectEmergencyProductAdapter selectEmergencyProductAdapter, String queryKeyWord, final InventoryViewModel viewModel) { checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked == viewModel.isChecked()) { return; } if (isChecked && selectEmergencyProductAdapter.isReachLimit()) { ToastUtil.showForLongTime(R.string.msg_out_limit_of_selected_emergency_products); checkBox.setChecked(false); return; } viewModel.setChecked(isChecked); } }); checkBox.setChecked(viewModel.isChecked()); productName.setText(TextStyleUtil.getHighlightQueryKeyWord(queryKeyWord, viewModel.getStyledName())); tvShortCode.setText(TextStyleUtil.getHighlightQueryKeyWord(queryKeyWord, viewModel.getStyledUnit())); } private void triggerCheckbox() { if (checkBox.isChecked()) { checkBox.setChecked(false); } else { checkBox.setChecked(true); } } }