1

com.google.gwt.user.datepicker.client.DatePicker特定のケースでは、ユーザーが前月または翌月を選択できるようにしたくありません。

たとえば、ユーザーが今日の前日を選択できるようにしたくありません。

カレンダーで実際の日を無効にする方法を見つけましたが、ユーザーは引き続き をクリックして、<<すべての日が無効になっている月に戻ることができます。

<<および>>ボタン/リンクへの参照を取得して、できれば非表示にするか、または無効にする方法が見つかりません。

私は GWT 2.1.1 を使用していますが、問題があれば GWT 2.2.0 に移行できます。

これらのウィジェットへの参照を取得する方法を知っている人はいますか?

4

1 に答える 1

1

DatePicker で使用される DefaultDateMonthSelector (com.google.gwt.user.datepicker.client) はこれらのウィジェットを公開しないため、これらのボタンを直接無効にすることはできません。

この機能を実装するには、新しい DateMonthSelector を作成します (DefaultMonthSelector のソースhttp://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/から始めることができます)。 gwt/user/datepicker/client/DefaultMonthSelector.java )。たとえば、

public final class LimitedMonthSelector extends MonthSelector {
   // Keep the PushButtons disabled
   // Modified from the original DefaultMonthSelector
  @Override
  protected void setup() {
    // Set up backwards.
    backwards = new PushButton();
    backwards.getUpFace().setHTML("&laquo;");
    backwards.setStyleName(css().previousButton());
    backwards.setEnabled(false);   // Disable the back button

    forwards = new PushButton();
    forwards.getUpFace().setHTML("&raquo;");
    forwards.setStyleName(css().nextButton());
    forwards.setEnabled(false);   // Disable the forward button

    // Set up grid.
    grid = new Grid(1, 3);
    grid.setWidget(0, 0, backwards);
    grid.setWidget(0, 2, forwards);

    CellFormatter formatter = grid.getCellFormatter();
    formatter.setStyleName(0, 1, css().month());
    formatter.setWidth(0, 0, "1");
    formatter.setWidth(0, 1, "100%");
    formatter.setWidth(0, 2, "1");
    grid.setStyleName(css().monthSelector());
    initWidget(grid);
  }
}

そして、この MonthSelector 実装を DatePicker 実装で使用します。お気に入り、

public class LimitedDatePicker extends DatePicker {

  public MonthYearDatePicker() {
    super(new LimitedMonthSelector(), new DefaultCalendarView(), new CalendarModel());
  }
} 

この新しい LimitedDatePicker では、戻る/進むボタンが無効になります。

于 2011-04-19T09:51:39.137 に答える