package com.quemb.qmbform.view; import com.quemb.qmbform.R; import com.quemb.qmbform.descriptor.CellDescriptor; import com.quemb.qmbform.descriptor.RowDescriptor; import com.quemb.qmbform.descriptor.Value; import android.content.Context; import android.widget.CheckBox; import android.widget.CompoundButton; /** * Created by tonimoeckel on 15.07.14. */ public class FormCheckFieldCell extends FormBaseCell { private CheckBox mCheckBox; public FormCheckFieldCell(Context context, RowDescriptor rowDescriptor) { super(context, rowDescriptor); } @Override protected void init() { super.init(); mCheckBox = (CheckBox) findViewById(R.id.checkBox); setStyleId(mCheckBox, CellDescriptor.APPEARANCE_TEXT_LABEL, CellDescriptor.COLOR_LABEL); mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { onValueChanged(new Value<Boolean>(isChecked)); } }); } @Override protected int getResource() { return R.layout.check_field_cell; } @Override protected void update() { String title = getFormItemDescriptor().getTitle(); mCheckBox.setText(title); if (getRowDescriptor().getDisabled()) { mCheckBox.setEnabled(false); setTextColor(mCheckBox, CellDescriptor.COLOR_LABEL_DISABLED); } else mCheckBox.setEnabled(true); @SuppressWarnings("unchecked") Value<Boolean> value = (Value<Boolean>) getRowDescriptor().getValue(); if (value != null) { mCheckBox.setChecked(value.getValue()); } } public CheckBox getCheckBox() { return mCheckBox; } }