package wb.android.dialog; import android.app.DatePickerDialog; import android.content.Context; import android.widget.DatePicker; import java.sql.Date; import java.util.Calendar; public abstract class CalendarDialog { protected int day, month, year; private final int _origDay, _origMonth, _origYear; private final Calendar _calendar; public CalendarDialog() { _calendar = Calendar.getInstance(); _origDay = day = _calendar.get(Calendar.DAY_OF_MONTH); _origMonth = month = _calendar.get(Calendar.MONTH); _origYear = year = _calendar.get(Calendar.YEAR); } public CalendarDialog(final int day, final int month, final int year) { _calendar = Calendar.getInstance(); _origDay = this.day = day; _origMonth = this.month = month; _origYear = this.year = year; } public CalendarDialog(Date date) { _calendar = Calendar.getInstance(); _calendar.setTime(date); _origDay = day = _calendar.get(Calendar.DAY_OF_MONTH); _origMonth = month = _calendar.get(Calendar.MONTH); _origYear = year = _calendar.get(Calendar.YEAR); } private final DatePickerDialog.OnDateSetListener _dateListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int newYear, int newMonth, int newDay) { day = newDay; month = newMonth; year = newYear; CalendarDialog.this.onDateSet(newDay, newMonth, newYear); } }; public abstract void onDateSet(int day, int month, int year); public void reset() { day = _origDay; month = _origMonth; year = _origYear; } public void set(Date date) { if (date == null) {reset(); return;} _calendar.setTime(date); day = _calendar.get(Calendar.DAY_OF_MONTH); month = _calendar.get(Calendar.MONTH); year = _calendar.get(Calendar.YEAR); } public DatePickerDialog buildDialog(Context context) { return new DatePickerDialog(context, _dateListener, year, month, day); } @SuppressWarnings("deprecation") public final Date getOrigDate() { return new Date(_origYear - 1900, _origMonth, _origDay); //**This date constructor is deprecated } }