package org.openlmis.core.view.holder;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import org.openlmis.core.LMISApp;
import org.openlmis.core.R;
import org.openlmis.core.view.adapter.RapidTestReportGridAdapter;
import org.openlmis.core.view.viewmodel.RapidTestFormItemViewModel;
import roboguice.inject.InjectView;
public class RapidTestReportRowViewHolder extends BaseViewHolder {
@InjectView(R.id.tv_row_header)
TextView tvRowHeader;
@InjectView(R.id.rv_rapid_report_grid_item_list)
RecyclerView rvRapidReportGridListView;
RapidTestReportGridAdapter adapter;
public RapidTestReportRowViewHolder(View itemView) {
super(itemView);
}
public void populate(RapidTestFormItemViewModel viewModel, Boolean editable, RapidTestReportGridViewHolder.QuantityChangeListener quantityChangeListener) {
setUpHeader(viewModel);
setUpGridListView(viewModel, editable, quantityChangeListener);
}
public void setUpGridListView(RapidTestFormItemViewModel viewModel, Boolean editable, RapidTestReportGridViewHolder.QuantityChangeListener quantityChangeListener) {
adapter = new RapidTestReportGridAdapter(viewModel.getRapidTestFormGridViewModelList(), context, !isTotal(viewModel) && editable, isTotal(viewModel) ? null : quantityChangeListener);
rvRapidReportGridListView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
rvRapidReportGridListView.setAdapter(adapter);
}
public void setUpHeader(RapidTestFormItemViewModel viewModel) {
tvRowHeader.setText(viewModel.getIssueReason().getDescription());
if (isTotal(viewModel)) {
tvRowHeader.setBackgroundColor(LMISApp.getInstance().getResources().getColor(R.color.color_rapid_test_form_total_header));
} else {
tvRowHeader.setBackgroundColor(LMISApp.getInstance().getResources().getColor(R.color.color_rapid_test_form_row_header));
}
}
public boolean isTotal(RapidTestFormItemViewModel viewModel) {
return viewModel.getIssueReason().getDescription().equals(LMISApp.getInstance().getString(R.string.total));
}
}