| 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 |