簡體   English   中英

GWT功能在DatePicker能夠返回所選日期之前完成,如何延遲直到返回日期?

[英]GWT function finishes before DatePicker is able to return a selected date, how to delay until a date is returned?

下面的代碼無需等待popUpPanel(日期選擇器)返回用戶選擇的日期即可運行。 我知道有一個gwt的計時器方法,但我想知道是否還有我可以使用的另一個延遲方法,可以等待它返回選定的日期,然后執行其余代碼。

 public static dateCalc(){
    Date selection = new Date();
    Date start = new Date();
    Date end = new Date();

    PopupCalendar popupCalendar = new PopupCalendar();
    popupCalendar.displayPopupCalendar();
    popupCalendar.setDate();

    while(popupCalendar.calendarVisible()){

    selection = popupCalendar.getDate();
    return date;
}

public class PopupCalendar {
    public String dateString;
    public Date date;
    public DatePicker datePicker = new DatePicker();
    final PopupPanel calendarPanel = new PopupPanel(true);

    public void displayPopupCalendar() {

        calendarPanel.setWidget(datePicker);
        calendarPanel.setGlassEnabled(true);
        calendarPanel.center();

        calendarPanel.show();


        datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
            @Override
            public void onValueChange(ValueChangeEvent<Date> dateValueChangeEvent) {
                date = dateValueChangeEvent.getValue();
                setDate(date);
                dateString = DateTimeFormat.getMediumDateFormat().format(date);
                //System.out.println("User selected the date: " + dateString);
                calendarPanel.hide();
            }
        });


        return date;


    }

您必須異步執行GWT / JavaScript(在客戶端中)中的所有操作。 因此,恐怕您無法阻止“ while”循環。

我認為,在大多數情況下,最好避免計時器/延遲。

看起來您幾乎可以使用ValueChangeHandler了。 使下一件事發生在火災發生時?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM