use protected methods, more doxygen and fix return value if widget does not accept null dates