datePicker в GWT

Привет, есть Дата в строковом формате.

datevalue= [Вт, 06 марта, 06:00:00 CET 2012].

в моем коде у меня есть textBox, где установлено значение. когда я нажимаю на textbox, я вижу datepicker.

что я хочу сделать, так это то, что в datepicker date должно быть выделено любое значение в textbox.

а также, когда я нажимаю datePicker, значение в тексте должно иметь тот же формат, что и [Вт, 06 марта, 06:00:00 CET 2012].

мой код.

private TextBox getTimeLable(String datevalue) {
        // TODO Auto-generated method stub
        System.out.println("date" + datevalue);
        final TextBox   timebx =new TextBox();
        timebx.setReadOnly(true);
        timebx.setText(datevalue);
        final PopupPanel popupPanel=new PopupPanel(true);
        DatePicker datePicker=new DatePicker();
        datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {

            public void onValueChange(ValueChangeEvent<Date> event) {
                // TODO Auto-generated method stub

                Date date=event.getValue();
                timebx.setText(DateTimeFormat.getFormat("yyyy-MM-dd").format(date));
                popupPanel.hide();
            }
        });
        popupPanel.setWidget(datePicker);
        timebx.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent event) {
                // TODO Auto-generated method stub
                int x=timebx.getAbsoluteLeft();
                int y=timebx.getAbsoluteTop();
                popupPanel.setPopupPosition(x, y+20);
                popupPanel.show();
            }
        });

        return timebx;
    }

отредактировано на ошибку

errorjava.lang.IllegalArgumentException: [Tue Mar 06 05:00:00 UTC 2012]

errorjava.lang.IllegalArgumentException: [Wed May 09 12:00:00 UTC+2 2012]

Первоначально текстовое поле имеет это значение [Tue Mar 06 05:00:00 UTC 2012]. но когда я нажимаю на текстовое поле, выберите дату. Средство выбора даты дает вторую дату в текстовом поле Среда, 09 мая, 12:00:00 UTC+2 2012. Первый может быть незаконным аргументом, поскольку он установлен мной. но второй устанавливается средством выбора даты.


person GameBuilder    schedule 04.05.2012    source источник


Ответы (1)


Это должно работать

import com.google.gwt.i18n.client.DateTimeFormat; 

DatePicker datePicker=new DatePicker();  // Have to make final to use in inner method


timebx.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
            String strDate = timebx.getText();
            DateTimeFormat format = DateTimeFormat.getFormat("yyyy-MM-dd");
            try {  
              Date selDate = (Date)format.parse(strDate); 
              datePicker.setValue(selDate, true);
            } catch(Exception pe){
             // setting current date
             datePicker.setValue(new Date(), true);
            }

            int x=timebx.getAbsoluteLeft();
            int y=timebx.getAbsoluteTop();
            popupPanel.setPopupPosition(x, y+20);
            popupPanel.show();
        }
    });
person Hardik Mishra    schedule 07.05.2012
comment
я использую правильный импорт import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; потому что я должен унаследовать это `[ОШИБКА] [myProject] - строка 652: исходный код недоступен для типа java.text.SimpleDateFormat; вы забыли наследовать требуемый модуль?` - person GameBuilder; 07.05.2012
comment
`Формат DateTimeFormat = новый DateTimeFormat(гггг-ММ-дд);` Конструктор DateTimeFormat(String) не виден - person GameBuilder; 07.05.2012
comment
Мой Плохой, это должно быть `DateTimeFormat format =DateTimeFormat.getFormat(yyyy-MM-dd);' - person Hardik Mishra; 07.05.2012
comment
: ваш код и мой код делают одно и то же. Мне нужна не эта вещь. У меня есть date datevalue = [Tue Mar 06 06:00:00 CET 2012] в этом формате. DateValue поступает с сервера в текстовое поле. Когда я нажимаю TextBox, дата, которая находится в textBox, должна быть в средстве выбора даты. и когда я нажимаю на средство выбора даты, дата в текстовом поле также должна быть в том же формате. - person GameBuilder; 07.05.2012
comment
EEE MMM dd HH:mm:ss vv yyyy в формате я могу решить свою проблему. Большое спасибо - person GameBuilder; 07.05.2012
comment
При установке даты из textBox в DatePicker. Он никогда не переходит к блоку try . Все это всегда устанавливает текущую дату, а также ЧЧ: мм: сс всегда 12:00:00 - person GameBuilder; 07.05.2012
comment
Парсинг вызывает ошибку. Поместите Sys.out в значение текстового поля и проверьте ошибку - person Hardik Mishra; 07.05.2012
comment
давайте продолжим это обсуждение в чате - person GameBuilder; 07.05.2012