OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 dateTimeFieldsState.setAMPM(valueAsInteger() ? DateTimeFieldsState::AMPM
ValuePM : DateTimeFieldsState::AMPMValueAM); | 54 dateTimeFieldsState.setAMPM(valueAsInteger() ? DateTimeFieldsState::AMPM
ValuePM : DateTimeFieldsState::AMPMValueAM); |
55 else | 55 else |
56 dateTimeFieldsState.setAMPM(DateTimeFieldsState::AMPMValueEmpty); | 56 dateTimeFieldsState.setAMPM(DateTimeFieldsState::AMPMValueEmpty); |
57 } | 57 } |
58 | 58 |
59 void DateTimeAMPMFieldElement::setValueAsDate(const DateComponents& date) | 59 void DateTimeAMPMFieldElement::setValueAsDate(const DateComponents& date) |
60 { | 60 { |
61 setValueAsInteger(date.hour() >= 12 ? 1 : 0); | 61 setValueAsInteger(date.hour() >= 12 ? 1 : 0); |
62 } | 62 } |
63 | 63 |
64 void DateTimeAMPMFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 64 void DateTimeAMPMFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState) |
65 { | 65 { |
66 if (dateTimeFieldsState.hasAMPM()) | 66 if (dateTimeFieldsState.hasAMPM()) |
67 setValueAsInteger(dateTimeFieldsState.ampm()); | 67 setValueAsInteger(dateTimeFieldsState.ampm()); |
68 else | 68 else |
69 setEmptyValue(dateForReadOnlyField); | 69 setEmptyValue(); |
70 } | 70 } |
71 | 71 |
72 // ---------------------------- | 72 // ---------------------------- |
73 | 73 |
74 DateTimeDayFieldElement::DateTimeDayFieldElement(Document* document, FieldOwner&
fieldOwner, const String& placeholder) | 74 DateTimeDayFieldElement::DateTimeDayFieldElement(Document* document, FieldOwner&
fieldOwner, const String& placeholder) |
75 : DateTimeNumericFieldElement(document, fieldOwner, 1, 31, placeholder) | 75 : DateTimeNumericFieldElement(document, fieldOwner, 1, 31, placeholder) |
76 { | 76 { |
77 } | 77 } |
78 | 78 |
79 PassRefPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document* do
cument, FieldOwner& fieldOwner, const String& placeholder) | 79 PassRefPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document* do
cument, FieldOwner& fieldOwner, const String& placeholder) |
80 { | 80 { |
81 DEFINE_STATIC_LOCAL(AtomicString, dayPsuedoId, ("-webkit-datetime-edit-day-f
ield")); | 81 DEFINE_STATIC_LOCAL(AtomicString, dayPsuedoId, ("-webkit-datetime-edit-day-f
ield")); |
82 RefPtr<DateTimeDayFieldElement> field = adoptRef(new DateTimeDayFieldElement
(document, fieldOwner, placeholder.isEmpty() ? ASCIILiteral("--") : placeholder)
); | 82 RefPtr<DateTimeDayFieldElement> field = adoptRef(new DateTimeDayFieldElement
(document, fieldOwner, placeholder.isEmpty() ? ASCIILiteral("--") : placeholder)
); |
83 field->initialize(dayPsuedoId, AXDayOfMonthFieldText()); | 83 field->initialize(dayPsuedoId, AXDayOfMonthFieldText()); |
84 return field.release(); | 84 return field.release(); |
85 } | 85 } |
86 | 86 |
87 void DateTimeDayFieldElement::populateDateTimeFieldsState(DateTimeFieldsState& d
ateTimeFieldsState) | 87 void DateTimeDayFieldElement::populateDateTimeFieldsState(DateTimeFieldsState& d
ateTimeFieldsState) |
88 { | 88 { |
89 dateTimeFieldsState.setDayOfMonth(hasValue() ? valueAsInteger() : DateTimeFi
eldsState::emptyValue); | 89 dateTimeFieldsState.setDayOfMonth(hasValue() ? valueAsInteger() : DateTimeFi
eldsState::emptyValue); |
90 } | 90 } |
91 | 91 |
92 void DateTimeDayFieldElement::setValueAsDate(const DateComponents& date) | 92 void DateTimeDayFieldElement::setValueAsDate(const DateComponents& date) |
93 { | 93 { |
94 setValueAsInteger(date.monthDay()); | 94 setValueAsInteger(date.monthDay()); |
95 } | 95 } |
96 | 96 |
97 void DateTimeDayFieldElement::setValueAsDateTimeFieldsState(const DateTimeFields
State& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 97 void DateTimeDayFieldElement::setValueAsDateTimeFieldsState(const DateTimeFields
State& dateTimeFieldsState) |
98 { | 98 { |
99 if (!dateTimeFieldsState.hasDayOfMonth()) { | 99 if (!dateTimeFieldsState.hasDayOfMonth()) { |
100 setEmptyValue(dateForReadOnlyField); | 100 setEmptyValue(); |
101 return; | 101 return; |
102 } | 102 } |
103 | 103 |
104 const unsigned value = dateTimeFieldsState.dayOfMonth(); | 104 const unsigned value = dateTimeFieldsState.dayOfMonth(); |
105 if (range().isInRange(static_cast<int>(value))) { | 105 if (range().isInRange(static_cast<int>(value))) { |
106 setValueAsInteger(value); | 106 setValueAsInteger(value); |
107 return; | 107 return; |
108 } | 108 } |
109 | 109 |
110 setEmptyValue(dateForReadOnlyField); | 110 setEmptyValue(); |
111 } | 111 } |
112 | 112 |
113 // ---------------------------- | 113 // ---------------------------- |
114 | 114 |
115 DateTimeHourFieldElement::DateTimeHourFieldElement(Document* document, FieldOwne
r& fieldOwner, int minimum, int maximum) | 115 DateTimeHourFieldElement::DateTimeHourFieldElement(Document* document, FieldOwne
r& fieldOwner, int minimum, int maximum) |
116 : DateTimeNumericFieldElement(document, fieldOwner, minimum, maximum, "--") | 116 : DateTimeNumericFieldElement(document, fieldOwner, minimum, maximum, "--") |
117 , m_alignment(maximum + maximum % 2) | 117 , m_alignment(maximum + maximum % 2) |
118 { | 118 { |
119 ASSERT((!minimum && (maximum == 11 || maximum == 23)) || (minimum == 1 && (m
aximum == 12 || maximum == 24))); | 119 ASSERT((!minimum && (maximum == 11 || maximum == 23)) || (minimum == 1 && (m
aximum == 12 || maximum == 24))); |
120 } | 120 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 default: | 159 default: |
160 ASSERT_NOT_REACHED(); | 160 ASSERT_NOT_REACHED(); |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 void DateTimeHourFieldElement::setValueAsDate(const DateComponents& date) | 164 void DateTimeHourFieldElement::setValueAsDate(const DateComponents& date) |
165 { | 165 { |
166 setValueAsInteger(date.hour()); | 166 setValueAsInteger(date.hour()); |
167 } | 167 } |
168 | 168 |
169 void DateTimeHourFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 169 void DateTimeHourFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState) |
170 { | 170 { |
171 if (!dateTimeFieldsState.hasHour()) { | 171 if (!dateTimeFieldsState.hasHour()) { |
172 setEmptyValue(dateForReadOnlyField); | 172 setEmptyValue(); |
173 return; | 173 return; |
174 } | 174 } |
175 | 175 |
176 const int hour12 = dateTimeFieldsState.hour(); | 176 const int hour12 = dateTimeFieldsState.hour(); |
177 | 177 |
178 if (hour12 < 1 || hour12 > 12) { | 178 if (hour12 < 1 || hour12 > 12) { |
179 setEmptyValue(dateForReadOnlyField); | 179 setEmptyValue(); |
180 return; | 180 return; |
181 } | 181 } |
182 | 182 |
183 switch (maximum()) { | 183 switch (maximum()) { |
184 case 11: | 184 case 11: |
185 DateTimeNumericFieldElement::setValueAsInteger(hour12 % 12); | 185 DateTimeNumericFieldElement::setValueAsInteger(hour12 % 12); |
186 return; | 186 return; |
187 case 12: | 187 case 12: |
188 DateTimeNumericFieldElement::setValueAsInteger(hour12); | 188 DateTimeNumericFieldElement::setValueAsInteger(hour12); |
189 return; | 189 return; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 void DateTimeMillisecondFieldElement::populateDateTimeFieldsState(DateTimeFields
State& dateTimeFieldsState) | 233 void DateTimeMillisecondFieldElement::populateDateTimeFieldsState(DateTimeFields
State& dateTimeFieldsState) |
234 { | 234 { |
235 dateTimeFieldsState.setMillisecond(hasValue() ? valueAsInteger() : DateTimeF
ieldsState::emptyValue); | 235 dateTimeFieldsState.setMillisecond(hasValue() ? valueAsInteger() : DateTimeF
ieldsState::emptyValue); |
236 } | 236 } |
237 | 237 |
238 void DateTimeMillisecondFieldElement::setValueAsDate(const DateComponents& date) | 238 void DateTimeMillisecondFieldElement::setValueAsDate(const DateComponents& date) |
239 { | 239 { |
240 setValueAsInteger(date.millisecond()); | 240 setValueAsInteger(date.millisecond()); |
241 } | 241 } |
242 | 242 |
243 void DateTimeMillisecondFieldElement::setValueAsDateTimeFieldsState(const DateTi
meFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 243 void DateTimeMillisecondFieldElement::setValueAsDateTimeFieldsState(const DateTi
meFieldsState& dateTimeFieldsState) |
244 { | 244 { |
245 if (!dateTimeFieldsState.hasMillisecond()) { | 245 if (!dateTimeFieldsState.hasMillisecond()) { |
246 setEmptyValue(dateForReadOnlyField); | 246 setEmptyValue(); |
247 return; | 247 return; |
248 } | 248 } |
249 | 249 |
250 const unsigned value = dateTimeFieldsState.millisecond(); | 250 const unsigned value = dateTimeFieldsState.millisecond(); |
251 if (value > static_cast<unsigned>(maximum())) { | 251 if (value > static_cast<unsigned>(maximum())) { |
252 setEmptyValue(dateForReadOnlyField); | 252 setEmptyValue(); |
253 return; | 253 return; |
254 } | 254 } |
255 | 255 |
256 setValueAsInteger(value); | 256 setValueAsInteger(value); |
257 } | 257 } |
258 | 258 |
259 // ---------------------------- | 259 // ---------------------------- |
260 | 260 |
261 DateTimeMinuteFieldElement::DateTimeMinuteFieldElement(Document* document, Field
Owner& fieldOwner) | 261 DateTimeMinuteFieldElement::DateTimeMinuteFieldElement(Document* document, Field
Owner& fieldOwner) |
262 : DateTimeNumericFieldElement(document, fieldOwner, 0, 59, "--") | 262 : DateTimeNumericFieldElement(document, fieldOwner, 0, 59, "--") |
(...skipping 11 matching lines...) Expand all Loading... |
274 void DateTimeMinuteFieldElement::populateDateTimeFieldsState(DateTimeFieldsState
& dateTimeFieldsState) | 274 void DateTimeMinuteFieldElement::populateDateTimeFieldsState(DateTimeFieldsState
& dateTimeFieldsState) |
275 { | 275 { |
276 dateTimeFieldsState.setMinute(hasValue() ? valueAsInteger() : DateTimeFields
State::emptyValue); | 276 dateTimeFieldsState.setMinute(hasValue() ? valueAsInteger() : DateTimeFields
State::emptyValue); |
277 } | 277 } |
278 | 278 |
279 void DateTimeMinuteFieldElement::setValueAsDate(const DateComponents& date) | 279 void DateTimeMinuteFieldElement::setValueAsDate(const DateComponents& date) |
280 { | 280 { |
281 setValueAsInteger(date.minute()); | 281 setValueAsInteger(date.minute()); |
282 } | 282 } |
283 | 283 |
284 void DateTimeMinuteFieldElement::setValueAsDateTimeFieldsState(const DateTimeFie
ldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 284 void DateTimeMinuteFieldElement::setValueAsDateTimeFieldsState(const DateTimeFie
ldsState& dateTimeFieldsState) |
285 { | 285 { |
286 if (!dateTimeFieldsState.hasMinute()) { | 286 if (!dateTimeFieldsState.hasMinute()) { |
287 setEmptyValue(dateForReadOnlyField); | 287 setEmptyValue(); |
288 return; | 288 return; |
289 } | 289 } |
290 | 290 |
291 const unsigned value = dateTimeFieldsState.minute(); | 291 const unsigned value = dateTimeFieldsState.minute(); |
292 if (value > static_cast<unsigned>(maximum())) { | 292 if (value > static_cast<unsigned>(maximum())) { |
293 setEmptyValue(dateForReadOnlyField); | 293 setEmptyValue(); |
294 return; | 294 return; |
295 } | 295 } |
296 | 296 |
297 setValueAsInteger(value); | 297 setValueAsInteger(value); |
298 } | 298 } |
299 | 299 |
300 // ---------------------------- | 300 // ---------------------------- |
301 | 301 |
302 DateTimeMonthFieldElement::DateTimeMonthFieldElement(Document* document, FieldOw
ner& fieldOwner, const String& placeholder) | 302 DateTimeMonthFieldElement::DateTimeMonthFieldElement(Document* document, FieldOw
ner& fieldOwner, const String& placeholder) |
303 : DateTimeNumericFieldElement(document, fieldOwner, 1, 12, placeholder) | 303 : DateTimeNumericFieldElement(document, fieldOwner, 1, 12, placeholder) |
(...skipping 11 matching lines...) Expand all Loading... |
315 void DateTimeMonthFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) | 315 void DateTimeMonthFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) |
316 { | 316 { |
317 dateTimeFieldsState.setMonth(hasValue() ? valueAsInteger() : DateTimeFieldsS
tate::emptyValue); | 317 dateTimeFieldsState.setMonth(hasValue() ? valueAsInteger() : DateTimeFieldsS
tate::emptyValue); |
318 } | 318 } |
319 | 319 |
320 void DateTimeMonthFieldElement::setValueAsDate(const DateComponents& date) | 320 void DateTimeMonthFieldElement::setValueAsDate(const DateComponents& date) |
321 { | 321 { |
322 setValueAsInteger(date.month() + 1); | 322 setValueAsInteger(date.month() + 1); |
323 } | 323 } |
324 | 324 |
325 void DateTimeMonthFieldElement::setValueAsDateTimeFieldsState(const DateTimeFiel
dsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 325 void DateTimeMonthFieldElement::setValueAsDateTimeFieldsState(const DateTimeFiel
dsState& dateTimeFieldsState) |
326 { | 326 { |
327 if (!dateTimeFieldsState.hasMonth()) { | 327 if (!dateTimeFieldsState.hasMonth()) { |
328 setEmptyValue(dateForReadOnlyField); | 328 setEmptyValue(); |
329 return; | 329 return; |
330 } | 330 } |
331 | 331 |
332 const unsigned value = dateTimeFieldsState.month(); | 332 const unsigned value = dateTimeFieldsState.month(); |
333 if (range().isInRange(static_cast<int>(value))) { | 333 if (range().isInRange(static_cast<int>(value))) { |
334 setValueAsInteger(value); | 334 setValueAsInteger(value); |
335 return; | 335 return; |
336 } | 336 } |
337 | 337 |
338 setEmptyValue(dateForReadOnlyField); | 338 setEmptyValue(); |
339 } | 339 } |
340 | 340 |
341 // ---------------------------- | 341 // ---------------------------- |
342 | 342 |
343 DateTimeSecondFieldElement::DateTimeSecondFieldElement(Document* document, Field
Owner& fieldOwner) | 343 DateTimeSecondFieldElement::DateTimeSecondFieldElement(Document* document, Field
Owner& fieldOwner) |
344 : DateTimeNumericFieldElement(document, fieldOwner, 0, 59, "--") | 344 : DateTimeNumericFieldElement(document, fieldOwner, 0, 59, "--") |
345 { | 345 { |
346 } | 346 } |
347 | 347 |
348 PassRefPtr<DateTimeSecondFieldElement> DateTimeSecondFieldElement::create(Docume
nt* document, FieldOwner& fieldOwner) | 348 PassRefPtr<DateTimeSecondFieldElement> DateTimeSecondFieldElement::create(Docume
nt* document, FieldOwner& fieldOwner) |
349 { | 349 { |
350 DEFINE_STATIC_LOCAL(AtomicString, secondPsuedoId, ("-webkit-datetime-edit-se
cond-field")); | 350 DEFINE_STATIC_LOCAL(AtomicString, secondPsuedoId, ("-webkit-datetime-edit-se
cond-field")); |
351 RefPtr<DateTimeSecondFieldElement> field = adoptRef(new DateTimeSecondFieldE
lement(document, fieldOwner)); | 351 RefPtr<DateTimeSecondFieldElement> field = adoptRef(new DateTimeSecondFieldE
lement(document, fieldOwner)); |
352 field->initialize(secondPsuedoId, AXSecondFieldText()); | 352 field->initialize(secondPsuedoId, AXSecondFieldText()); |
353 return field.release(); | 353 return field.release(); |
354 } | 354 } |
355 | 355 |
356 void DateTimeSecondFieldElement::populateDateTimeFieldsState(DateTimeFieldsState
& dateTimeFieldsState) | 356 void DateTimeSecondFieldElement::populateDateTimeFieldsState(DateTimeFieldsState
& dateTimeFieldsState) |
357 { | 357 { |
358 dateTimeFieldsState.setSecond(hasValue() ? valueAsInteger() : DateTimeFields
State::emptyValue); | 358 dateTimeFieldsState.setSecond(hasValue() ? valueAsInteger() : DateTimeFields
State::emptyValue); |
359 } | 359 } |
360 | 360 |
361 void DateTimeSecondFieldElement::setValueAsDate(const DateComponents& date) | 361 void DateTimeSecondFieldElement::setValueAsDate(const DateComponents& date) |
362 { | 362 { |
363 setValueAsInteger(date.second()); | 363 setValueAsInteger(date.second()); |
364 } | 364 } |
365 | 365 |
366 void DateTimeSecondFieldElement::setValueAsDateTimeFieldsState(const DateTimeFie
ldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 366 void DateTimeSecondFieldElement::setValueAsDateTimeFieldsState(const DateTimeFie
ldsState& dateTimeFieldsState) |
367 { | 367 { |
368 if (!dateTimeFieldsState.hasSecond()) { | 368 if (!dateTimeFieldsState.hasSecond()) { |
369 setEmptyValue(dateForReadOnlyField); | 369 setEmptyValue(); |
370 return; | 370 return; |
371 } | 371 } |
372 | 372 |
373 const unsigned value = dateTimeFieldsState.second(); | 373 const unsigned value = dateTimeFieldsState.second(); |
374 if (value > static_cast<unsigned>(maximum())) { | 374 if (value > static_cast<unsigned>(maximum())) { |
375 setEmptyValue(dateForReadOnlyField); | 375 setEmptyValue(); |
376 return; | 376 return; |
377 } | 377 } |
378 | 378 |
379 setValueAsInteger(value); | 379 setValueAsInteger(value); |
380 } | 380 } |
381 | 381 |
382 // ---------------------------- | 382 // ---------------------------- |
383 | 383 |
384 DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement(Document* d
ocument, FieldOwner& fieldOwner, const Vector<String>& labels) | 384 DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement(Document* d
ocument, FieldOwner& fieldOwner, const Vector<String>& labels) |
385 : DateTimeSymbolicFieldElement(document, fieldOwner, labels) | 385 : DateTimeSymbolicFieldElement(document, fieldOwner, labels) |
(...skipping 14 matching lines...) Expand all Loading... |
400 dateTimeFieldsState.setMonth(DateTimeFieldsState::emptyValue); | 400 dateTimeFieldsState.setMonth(DateTimeFieldsState::emptyValue); |
401 ASSERT(valueAsInteger() < static_cast<int>(symbolsSize())); | 401 ASSERT(valueAsInteger() < static_cast<int>(symbolsSize())); |
402 dateTimeFieldsState.setMonth(valueAsInteger() + 1); | 402 dateTimeFieldsState.setMonth(valueAsInteger() + 1); |
403 } | 403 } |
404 | 404 |
405 void DateTimeSymbolicMonthFieldElement::setValueAsDate(const DateComponents& dat
e) | 405 void DateTimeSymbolicMonthFieldElement::setValueAsDate(const DateComponents& dat
e) |
406 { | 406 { |
407 setValueAsInteger(date.month()); | 407 setValueAsInteger(date.month()); |
408 } | 408 } |
409 | 409 |
410 void DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState(const Date
TimeFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField
) | 410 void DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState(const Date
TimeFieldsState& dateTimeFieldsState) |
411 { | 411 { |
412 if (!dateTimeFieldsState.hasMonth()) { | 412 if (!dateTimeFieldsState.hasMonth()) { |
413 setEmptyValue(dateForReadOnlyField); | 413 setEmptyValue(); |
414 return; | 414 return; |
415 } | 415 } |
416 | 416 |
417 const unsigned value = dateTimeFieldsState.month() - 1; | 417 const unsigned value = dateTimeFieldsState.month() - 1; |
418 if (value >= symbolsSize()) { | 418 if (value >= symbolsSize()) { |
419 setEmptyValue(dateForReadOnlyField); | 419 setEmptyValue(); |
420 return; | 420 return; |
421 } | 421 } |
422 | 422 |
423 setValueAsInteger(value); | 423 setValueAsInteger(value); |
424 } | 424 } |
425 | 425 |
426 // ---------------------------- | 426 // ---------------------------- |
427 | 427 |
428 DateTimeWeekFieldElement::DateTimeWeekFieldElement(Document* document, FieldOwne
r& fieldOwner) | 428 DateTimeWeekFieldElement::DateTimeWeekFieldElement(Document* document, FieldOwne
r& fieldOwner) |
429 : DateTimeNumericFieldElement(document, fieldOwner, DateComponents::minimumW
eekNumber, DateComponents::maximumWeekNumber, "--") | 429 : DateTimeNumericFieldElement(document, fieldOwner, DateComponents::minimumW
eekNumber, DateComponents::maximumWeekNumber, "--") |
(...skipping 11 matching lines...) Expand all Loading... |
441 void DateTimeWeekFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) | 441 void DateTimeWeekFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) |
442 { | 442 { |
443 dateTimeFieldsState.setWeekOfYear(hasValue() ? valueAsInteger() : DateTimeFi
eldsState::emptyValue); | 443 dateTimeFieldsState.setWeekOfYear(hasValue() ? valueAsInteger() : DateTimeFi
eldsState::emptyValue); |
444 } | 444 } |
445 | 445 |
446 void DateTimeWeekFieldElement::setValueAsDate(const DateComponents& date) | 446 void DateTimeWeekFieldElement::setValueAsDate(const DateComponents& date) |
447 { | 447 { |
448 setValueAsInteger(date.week()); | 448 setValueAsInteger(date.week()); |
449 } | 449 } |
450 | 450 |
451 void DateTimeWeekFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 451 void DateTimeWeekFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState) |
452 { | 452 { |
453 if (!dateTimeFieldsState.hasWeekOfYear()) { | 453 if (!dateTimeFieldsState.hasWeekOfYear()) { |
454 setEmptyValue(dateForReadOnlyField); | 454 setEmptyValue(); |
455 return; | 455 return; |
456 } | 456 } |
457 | 457 |
458 const unsigned value = dateTimeFieldsState.weekOfYear(); | 458 const unsigned value = dateTimeFieldsState.weekOfYear(); |
459 if (range().isInRange(static_cast<int>(value))) { | 459 if (range().isInRange(static_cast<int>(value))) { |
460 setValueAsInteger(value); | 460 setValueAsInteger(value); |
461 return; | 461 return; |
462 } | 462 } |
463 | 463 |
464 setEmptyValue(dateForReadOnlyField); | 464 setEmptyValue(); |
465 } | 465 } |
466 | 466 |
467 // ---------------------------- | 467 // ---------------------------- |
468 | 468 |
469 DateTimeYearFieldElement::DateTimeYearFieldElement(Document* document, FieldOwne
r& fieldOwner, const DateTimeYearFieldElement::Parameters& parameters) | 469 DateTimeYearFieldElement::DateTimeYearFieldElement(Document* document, FieldOwne
r& fieldOwner, const DateTimeYearFieldElement::Parameters& parameters) |
470 : DateTimeNumericFieldElement(document, fieldOwner, parameters.minimumYear,
parameters.maximumYear, parameters.placeholder.isEmpty() ? ASCIILiteral("----")
: parameters.placeholder) | 470 : DateTimeNumericFieldElement(document, fieldOwner, parameters.minimumYear,
parameters.maximumYear, parameters.placeholder.isEmpty() ? ASCIILiteral("----")
: parameters.placeholder) |
471 , m_minIsSpecified(parameters.minIsSpecified) | 471 , m_minIsSpecified(parameters.minIsSpecified) |
472 , m_maxIsSpecified(parameters.maxIsSpecified) | 472 , m_maxIsSpecified(parameters.maxIsSpecified) |
473 { | 473 { |
474 ASSERT(parameters.minimumYear >= DateComponents::minimumYear()); | 474 ASSERT(parameters.minimumYear >= DateComponents::minimumYear()); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 void DateTimeYearFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) | 514 void DateTimeYearFieldElement::populateDateTimeFieldsState(DateTimeFieldsState&
dateTimeFieldsState) |
515 { | 515 { |
516 dateTimeFieldsState.setYear(hasValue() ? valueAsInteger() : DateTimeFieldsSt
ate::emptyValue); | 516 dateTimeFieldsState.setYear(hasValue() ? valueAsInteger() : DateTimeFieldsSt
ate::emptyValue); |
517 } | 517 } |
518 | 518 |
519 void DateTimeYearFieldElement::setValueAsDate(const DateComponents& date) | 519 void DateTimeYearFieldElement::setValueAsDate(const DateComponents& date) |
520 { | 520 { |
521 setValueAsInteger(date.fullYear()); | 521 setValueAsInteger(date.fullYear()); |
522 } | 522 } |
523 | 523 |
524 void DateTimeYearFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) | 524 void DateTimeYearFieldElement::setValueAsDateTimeFieldsState(const DateTimeField
sState& dateTimeFieldsState) |
525 { | 525 { |
526 if (!dateTimeFieldsState.hasYear()) { | 526 if (!dateTimeFieldsState.hasYear()) { |
527 setEmptyValue(dateForReadOnlyField); | 527 setEmptyValue(); |
528 return; | 528 return; |
529 } | 529 } |
530 | 530 |
531 const unsigned value = dateTimeFieldsState.year(); | 531 const unsigned value = dateTimeFieldsState.year(); |
532 if (range().isInRange(static_cast<int>(value))) { | 532 if (range().isInRange(static_cast<int>(value))) { |
533 setValueAsInteger(value); | 533 setValueAsInteger(value); |
534 return; | 534 return; |
535 } | 535 } |
536 | 536 |
537 setEmptyValue(dateForReadOnlyField); | 537 setEmptyValue(); |
538 } | 538 } |
539 | 539 |
540 } // namespace WebCore | 540 } // namespace WebCore |
541 | 541 |
542 #endif | 542 #endif |
OLD | NEW |