1

タイプのフィールドを持つBeanがありますjava.util.Calendar。残りのフィールドを適切にレンダリングするようにクラスを拡張してFormFieldFactoryいますが、PopupDateFieldを使用してタイプするフィールドをレンダリングする方法がわかりませんjava.util.Calendar

4

2 に答える 2

1

少し前に、のカスタムバージョンを作成しましPopupDateFieldjava.sql.Date。私は個人的にjava.util.Dateを使用しますが、決定は私の手に委ねられていません。私の場合の簡単な部分は、それjava.sql.Dateがのサブクラスであるのjava.util.Dateに対し、そうjava.util.Calendarではないということです。

PopupDateField派生クラスに加えた変更について説明しようとしましたが、CalendarがDateから派生していないため、おそらく機能しないことに気付きました。

BeanItemsをいじったことはありませんがProperty、ラッパーとして機能するカスタムを作成して、そのフィールドをカスタムプロパティにバインドするCalendar独自のカスタムを作成することもできます。VaadinPropertyDescriptor

この答えはより明確なものであることが意図されていましたが、少なくともある程度役立つことを願っています。Beanの構造に影響を与える可能性がある場合は、カレンダーを日付に切り替えて、必要な場合にのみ日付付きのカレンダーを使用することをお勧めします。

于 2012-11-03T08:50:10.083 に答える
1

Webアプリを構築している場合は、ドメインに一時的なDateプロパティを追加し、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);
    }
于 2013-07-09T21:32:28.200 に答える