| package org.apache.fineract.ui.adapters |
| |
| import androidx.recyclerview.widget.RecyclerView |
| import android.view.LayoutInflater |
| import android.view.View |
| import android.view.ViewGroup |
| import android.widget.CheckBox |
| import android.widget.ImageView |
| import android.widget.TextView |
| import kotlinx.android.synthetic.main.item_payroll_allocation.view.* |
| import org.apache.fineract.R |
| import org.apache.fineract.data.models.payroll.PayrollAllocation |
| import javax.inject.Inject |
| |
| class PayrollAllocationAdapter @Inject constructor() |
| : RecyclerView.Adapter<PayrollAllocationAdapter.ViewHolder>() { |
| |
| lateinit var payrollAllocation: List<PayrollAllocation> |
| lateinit var onClickListener: OnClickEditDeleteListener |
| |
| override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { |
| val view = LayoutInflater.from(parent.context) |
| .inflate(R.layout.item_payroll_allocation, parent, false) |
| return ViewHolder(view) |
| } |
| |
| override fun onBindViewHolder(holder: ViewHolder, position: Int) { |
| val (accountNumber, amount, proportional) = payrollAllocation[position] |
| holder.tvAccount.text = accountNumber |
| holder.tvAmount.text = amount.toString() |
| holder.cbProportional.isChecked = proportional |
| } |
| |
| override fun getItemCount(): Int { |
| return payrollAllocation.size |
| } |
| |
| fun setPayrollAllocations(allocation: List<PayrollAllocation>) { |
| this.payrollAllocation = allocation |
| notifyDataSetChanged() |
| } |
| |
| fun setOnClickEditDeleteListener(itemClickListener: OnClickEditDeleteListener) { |
| this.onClickListener = itemClickListener |
| } |
| |
| inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
| |
| val ivEdit: ImageView = itemView.iv_edit |
| val ivDelete: ImageView = itemView.iv_delete |
| val tvAccount: TextView = itemView.tv_account |
| val tvAmount: TextView = itemView.tv_amount |
| val cbProportional: CheckBox = itemView.cb_Proportional |
| |
| init { |
| ivEdit.setOnClickListener { |
| onClickListener.onClickEdit(payrollAllocation[adapterPosition], adapterPosition) |
| } |
| |
| ivDelete.setOnClickListener { |
| onClickListener.onClickDelete(payrollAllocation[adapterPosition], adapterPosition) |
| } |
| } |
| } |
| |
| interface OnClickEditDeleteListener { |
| fun onClickEdit(payrollAllocation: PayrollAllocation, position: Int) |
| fun onClickDelete(payrollAllocation: PayrollAllocation, position: Int) |
| } |
| } |