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.TextView;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Created by tonimoeckel on 15.07.14.
*/
public class FormDateFieldCell extends FormDetailTextInlineFieldCell {
private TextView mTextView;
public FormDateFieldCell(Context context,
RowDescriptor rowDescriptor) {
super(context, rowDescriptor);
}
@Override
protected void init() {
super.init();
mTextView = (TextView) findViewById(R.id.textView);
setStyleId(mTextView, CellDescriptor.APPEARANCE_TEXT_LABEL, CellDescriptor.COLOR_LABEL);
}
@Override
protected int getResource() {
return R.layout.date_field_cell;
}
@Override
protected void update() {
String title = getFormItemDescriptor().getTitle();
mTextView.setText(title);
mTextView.setVisibility(title == null ? GONE : VISIBLE);
mTextView.setEnabled(!getRowDescriptor().getDisabled());
@SuppressWarnings("unchecked") Value<Date> value = (Value<Date>) getRowDescriptor().getValue();
if (value == null || value.getValue() == null) {
value = new Value<Date>(new Date());
} else {
updateDateLabel(value.getValue(), getRowDescriptor().getDisabled());
}
final Calendar calendar = Calendar.getInstance();
Date date = value.getValue();
calendar.setTime(date);
initDatePicker(calendar);
if (getRowDescriptor().getDisabled())
{
setTextColor(mTextView, CellDescriptor.COLOR_LABEL_DISABLED);
setClickable(false);
setEnabled(false);
}
}
protected void initDatePicker(Calendar calendar) {
}
public void onDateChanged(Date date) {
// Calendar calendar = Calendar.getInstance();
// calendar.set(year, monthOfYear, dayOfMonth);
// Date date = new Date(calendar.getTimeInMillis());
updateDateLabel(date, getRowDescriptor().getDisabled());
onValueChanged(new Value<Date>(date));
}
protected void updateDateLabel(Date date, boolean disabled) {
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getContext());
String s = dateFormat.format(date);
TextView editView = getDetailTextView();
editView.setText(s);
if (disabled)
{
editView.setEnabled(false);
setTextColor(editView, CellDescriptor.COLOR_VALUE_DISABLED);
}
}
@Override
public void onCellSelected() {
super.onCellSelected();
}
public TextView getTextView() {
return mTextView;
}
}