Title: [130134] trunk/Source/WebCore
- Revision
- 130134
- Author
- yo...@chromium.org
- Date
- 2012-10-02 01:10:08 -0700 (Tue, 02 Oct 2012)
Log Message
[Forms] Adding DateTimeDayFieldElement for multiple fields "date", "datetime", "datetime-local" input UI
https://bugs.webkit.org/show_bug.cgi?id=97998
Reviewed by Kent Tamura.
This patch introduces DateTimeDayFieldElement class for implementing
multiple fields "date", "datetime", and "datetime-local" input UI.
No new tests. This patch doesn't change behavior.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Added.
(WebCore::DateTimeDayFieldElement::create): Added.
(WebCore::DateTimeDayFieldElement::populateDateTimeFieldsState): Added.
(WebCore::DateTimeDayFieldElement::setValueAsDate): Added.
(WebCore::DateTimeDayFieldElement::setValueAsDateTimeFieldsState): Added.
* html/shadow/DateTimeFieldElements.h:
(DateTimeDayFieldElement): Added.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (130133 => 130134)
--- trunk/Source/WebCore/ChangeLog 2012-10-02 08:09:10 UTC (rev 130133)
+++ trunk/Source/WebCore/ChangeLog 2012-10-02 08:10:08 UTC (rev 130134)
@@ -1,5 +1,26 @@
2012-10-02 Yoshifumi Inoue <yo...@chromium.org>
+ [Forms] Adding DateTimeDayFieldElement for multiple fields "date", "datetime", "datetime-local" input UI
+ https://bugs.webkit.org/show_bug.cgi?id=97998
+
+ Reviewed by Kent Tamura.
+
+ This patch introduces DateTimeDayFieldElement class for implementing
+ multiple fields "date", "datetime", and "datetime-local" input UI.
+
+ No new tests. This patch doesn't change behavior.
+
+ * html/shadow/DateTimeFieldElements.cpp:
+ (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Added.
+ (WebCore::DateTimeDayFieldElement::create): Added.
+ (WebCore::DateTimeDayFieldElement::populateDateTimeFieldsState): Added.
+ (WebCore::DateTimeDayFieldElement::setValueAsDate): Added.
+ (WebCore::DateTimeDayFieldElement::setValueAsDateTimeFieldsState): Added.
+ * html/shadow/DateTimeFieldElements.h:
+ (DateTimeDayFieldElement): Added.
+
+2012-10-02 Yoshifumi Inoue <yo...@chromium.org>
+
LocalzeNone::dateFormat() should have right date format.
https://bugs.webkit.org/show_bug.cgi?id=98123
Modified: trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp (130133 => 130134)
--- trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp 2012-10-02 08:09:10 UTC (rev 130133)
+++ trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp 2012-10-02 08:10:08 UTC (rev 130134)
@@ -71,6 +71,47 @@
// ----------------------------
+DateTimeDayFieldElement::DateTimeDayFieldElement(Document* document, FieldOwner& fieldOwner, const String& placeholder)
+ : DateTimeNumericFieldElement(document, fieldOwner, 1, 31, placeholder)
+{
+}
+
+PassRefPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document* document, FieldOwner& fieldOwner, const String& placeholder)
+{
+ DEFINE_STATIC_LOCAL(AtomicString, dayPsuedoId, ("-webkit-datetime-edit-day-field"));
+ RefPtr<DateTimeDayFieldElement> field = adoptRef(new DateTimeDayFieldElement(document, fieldOwner, placeholder));
+ field->initialize(dayPsuedoId, AXDayOfMonthFieldText());
+ return field.release();
+}
+
+void DateTimeDayFieldElement::populateDateTimeFieldsState(DateTimeFieldsState& dateTimeFieldsState)
+{
+ dateTimeFieldsState.setDayOfMonth(hasValue() ? valueAsInteger() : DateTimeFieldsState::emptyValue);
+}
+
+void DateTimeDayFieldElement::setValueAsDate(const DateComponents& date)
+{
+ setValueAsInteger(date.monthDay());
+}
+
+void DateTimeDayFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField)
+{
+ if (!dateTimeFieldsState.hasDayOfMonth()) {
+ setEmptyValue(dateForReadOnlyField);
+ return;
+ }
+
+ const unsigned value = dateTimeFieldsState.dayOfMonth();
+ if (range().isInRange(static_cast<int>(value))) {
+ setValueAsInteger(value);
+ return;
+ }
+
+ setEmptyValue(dateForReadOnlyField);
+}
+
+// ----------------------------
+
DateTimeHourFieldElement::DateTimeHourFieldElement(Document* document, FieldOwner& fieldOwner, int minimum, int maximum)
: DateTimeNumericFieldElement(document, fieldOwner, minimum, maximum, "--")
, m_alignment(maximum + maximum % 2)
Modified: trunk/Source/WebCore/html/shadow/DateTimeFieldElements.h (130133 => 130134)
--- trunk/Source/WebCore/html/shadow/DateTimeFieldElements.h 2012-10-02 08:09:10 UTC (rev 130133)
+++ trunk/Source/WebCore/html/shadow/DateTimeFieldElements.h 2012-10-02 08:10:08 UTC (rev 130134)
@@ -47,7 +47,21 @@
virtual void setValueAsDateTimeFieldsState(const DateTimeFieldsState&, const DateComponents& dateForReadOnlyField) OVERRIDE FINAL;
};
+class DateTimeDayFieldElement : public DateTimeNumericFieldElement {
+ WTF_MAKE_NONCOPYABLE(DateTimeDayFieldElement);
+public:
+ static PassRefPtr<DateTimeDayFieldElement> create(Document*, FieldOwner&, const String& placeholder);
+
+private:
+ DateTimeDayFieldElement(Document*, FieldOwner&, const String& placeholder);
+
+ // DateTimeFieldElement functions.
+ virtual void populateDateTimeFieldsState(DateTimeFieldsState&) OVERRIDE FINAL;
+ virtual void setValueAsDate(const DateComponents&) OVERRIDE FINAL;
+ virtual void setValueAsDateTimeFieldsState(const DateTimeFieldsState&, const DateComponents& dateForReadOnlyField) OVERRIDE FINAL;
+};
+
// DateTimeHourFieldElement is used for hour field of date time format
// supporting following patterns:
// - 0 to 11
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes