我有一个类型为java.util.Calendar
的字段的bean。我正在扩展FormFieldFactory
类以适当地渲染其余字段,但我不确定如何使用PopupDateField呈现字段以键入java.util.Calendar
。
答案 0 :(得分:1)
不久前,我为PopupDateField
创建了java.sql.Date
的自定义版本。我个人使用java.util.Date,但决定不在我手中。在我的案例中,简单的部分是java.sql.Date
是java.util.Date
的子类,而java.util.Calendar
则不是。{/ p>
我将描述我对PopupDateField派生类所做的修改,但我意识到它不会起作用,因为Calendar不是从Date派生的。
我从来没有玩过BeanItems,但你可以尝试创建一个自定义Property
作为Calendar
的包装器,并且perhapse创建你自己的VaadinPropertyDescriptor
来将该字段绑定到你的自定义属性。
这个答案意味着更明确,但我希望它至少在某种程度上有所帮助。如果您有可能影响bean结构,我建议您将Calendar切换到Date并仅在需要时使用Calendar和Date。
答案 1 :(得分:1)
如果您要构建一个网络应用程序 - 您可以向域中添加一个临时日期属性,在setter&上进行日历到目前为止的转换。 getter获取或更新原始字段。 希望有所帮助!!!
@Transient
private Datetime calendarExAsDate; // corresponds to @Column... private Calendar calendarEx property of the domain.
public DateTime getCalendarExAsDate() {
if (this.getCalendarEx() == null) return null;
return new DateTime(this.getCalendarEx().getTime());
}
public void setCalendarExAsDate(DateTime calendarExAsDate) {
if (calendarExAsDate== null) return;
this.calendarExAsDate = calendarExAsDate;
Calendar cal = Calendar.getInstance();
cal.setTime(calendarExAsDate.toDate());
this.setCalendarEx(cal);
}