Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Calendar doesn't render when dates are strings.

$
0
0
SGWT: 5.0p 10/22/2014 07:44
FF:26

I noticed in the showcase example the CalendarData uses Date objects. What is the expected behavior with ISO_8601 strings?

Code:

public class Main7 implements EntryPoint {
        public class ClientOnlyDataSource extends com.smartgwt.client.data.DataSource {

                public ClientOnlyDataSource(Record[] records, DataSourceField... fields){
                        setFields(fields);
                        setTestData(records);
                        setClientOnly(true);
                }
        }
        public static class DateUtil {
                private static final DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.ISO_8601);

                public static Date toDate(String s) {
                        return s != null ? dtf.parse(s) : null;
                }

                public static String format(Date date){
                        return date != null ? dtf.format(date) : null;
                }
        }

        @Override
        public void onModuleLoad() {
                new Calendar(){{
                        final Calendar _this = this;
                        Record[] records = new Record[10];
                        for(int i = 0; i < 10; i++) {
                                final int j = i;
                                records[i] = new Record(){{
                                        setAttribute("id", j);
                                        setAttribute("startDate", getDate(j, 10));
                                        setAttribute("endDate", getDate(j, 11));
                                        setAttribute("name", "Test - " + j);
                                }
                                private String getDate(int j, int hour) {
                                        Date date = new Date();
                                        date.setDate(date.getDate() + j);
                                        date.setHours(hour);
                                        date.setMinutes(0);
                                        date.setSeconds(0);
                                        return DateUtil.format(date);
                                }};
                        }
                        setAutoFetchData(true);
                        setDataSource(new ClientOnlyDataSource(records, new DataSourceIntegerField("id"){{
                                setPrimaryKey(true);
                        }}, new DataSourceDateTimeField("startDate"), new DataSourceDateTimeField("endDate")));
                }}.show();
        }
}

Code:

[ERROR] [main] - 11:15:53.305:TMR3:WARN:Log:TypeError: _1[this.startDateField].duplicate is not a function
Stack from error.stack:
    Calendar.getEventStartDate() @ main/sc/modules/ISC_Calendar.js:364
    CalendarView.refreshEvents() @ main/sc/modules/ISC_Calendar.js:171
    Calendar.refreshSelectedView() @ main/sc/modules/ISC_Calendar.js:357
    Calendar.dataChanged() @ main/sc/modules/ISC_Calendar.js:357
    anonymous() @ main/sc/modules/ISC_Core.js:56
    thunk() @ main/sc/modules/ISC_Core.js:300
    observation() @ main/sc/modules/ISC_Core.js:297
    ResultSet._doneChangingData() @ main/sc/modules/ISC_DataBinding.js:1836
    ResultSet._handleNewData() @ main/sc/modules/ISC_DataBinding.js:1799
    isc.A.fetchRemoteDataReply() @ main/sc/modules/ISC_DataBinding.js:1785
    [c]Class.fireCallback() @ main/sc/modules/ISC_Core.js:266
    [c]Class.fireCallback() @ main/sc/modules/ISC_Core.js:334
    DataSource.fireResponseCallbacks() @ main/sc/modules/ISC_DataBinding.js:699
    DataSource._completeResponseProcessing() @ main/sc/modules/ISC_DataBinding.js:696
    DataSource._handleClientOnlyReply/_6() @ main/sc/modules/ISC_DataBinding.js:558
    DataSource._handleClientOnlyReply() @ main/sc/modules/ISC_DataBinding.js:559
    [c]Class.fireCallback() @ main/sc/modules/ISC_Core.js:266
    [c]Class.fireCallback() @ main/sc/modules/ISC_Core.js:334
    anonymous() @ main/sc/modules/ISC_DataBinding.js:1603
    $wnd.isc.RPCManager.fireReplyCallback() @ :263
    [c]RPCManager.fireReplyCallbacks() @ main/sc/modules/ISC_DataBinding.js:1608
    [c]RPCManager.performOperationReply() @ main/sc/modules/ISC_DataBinding.js:1601
    RPCManager._performTransactionReply() @ main/sc/modules/ISC_DataBinding.js:1586
    [c]Class.fireCallback() @ main/sc/modules/ISC_Core.js:266
    Timer._fireTimeout() @ main/sc/modules/ISC_Core.js:1261
    Timer.setTimeout/_6<() @ main/sc/modules/ISC_Core.js:1259


Viewing all articles
Browse latest Browse all 4756

Trending Articles