while (parent != null) {
parent = parent.getParent();
top = parent != null ? parent : top;
}
DatePickerDialog dp;
if (top != null && top instanceof JFrame)
dp = new DatePickerDialog((JFrame) top);
else
dp = new DatePickerDialog();
dp.setDate((Date) getValue());
dp.setVisible(true);
setValue(dp.getDate() != null ? dp.getDate().getTime() : null);
}