Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Unified Diff: sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate

Issue 11696002: Filling in supported platforms for InputElement types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate
diff --git a/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate b/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate
index a4c4e9a6383271f581b1aadf59ff0dbeacaf9d68..1d58723c835933435fff3233241cd827635f7f70 100644
--- a/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate
+++ b/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate
@@ -29,6 +29,19 @@ class $CLASSNAME$EXTENDS implements
ResetButtonInputElement,
ButtonInputElement
$NATIVESPEC {
+
+ ///@docsEditable true
+ factory InputElement({String type}) {
+ var e = document.$dom_createElement("input");
+ if (type != null) {
+ try {
+ // IE throws an exception for unknown types.
+ e.type = type;
+ } catch(_) {}
+ }
+ return e;
+ }
+
Emily Fortuna 2012/12/28 01:42:33 delete the whitespace here. that's what's adding t
$!MEMBERS
}
@@ -251,7 +264,11 @@ abstract class RangeInputElementBase implements InputElementBase {
/**
* A date and time (year, month, day, hour, minute, second, fraction of a
* second) with the time zone set to UTC.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class DateTimeInputElement implements RangeInputElementBase {
factory DateTimeInputElement() => new InputElement(type: 'datetime');
@@ -263,11 +280,20 @@ abstract class DateTimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'datetime')).type == 'datetime';
+ }
}
/**
* A date (year, month, day) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class DateInputElement implements RangeInputElementBase {
factory DateInputElement() => new InputElement(type: 'date');
@@ -279,11 +305,20 @@ abstract class DateInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'date')).type == 'date';
+ }
}
/**
* A date consisting of a year and a month with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class MonthInputElement implements RangeInputElementBase {
factory MonthInputElement() => new InputElement(type: 'month');
@@ -295,11 +330,20 @@ abstract class MonthInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'month')).type == 'month';
+ }
}
/**
* A date consisting of a week-year number and a week number with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class WeekInputElement implements RangeInputElementBase {
factory WeekInputElement() => new InputElement(type: 'week');
@@ -311,11 +355,20 @@ abstract class WeekInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'week')).type == 'week';
+ }
}
/**
* A time (hour, minute, seconds, fractional seconds) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental()
abstract class TimeInputElement implements RangeInputElementBase {
factory TimeInputElement() => new InputElement(type: 'time');
@@ -327,12 +380,21 @@ abstract class TimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'time')).type == 'time';
+ }
}
/**
* A date and time (year, month, day, hour, minute, second, fraction of a
* second) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class LocalDateTimeInputElement implements RangeInputElementBase {
factory LocalDateTimeInputElement() =>
new InputElement(type: 'datetime-local');
@@ -342,11 +404,20 @@ abstract class LocalDateTimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'datetime-local')).type == 'datetime-local';
+ }
}
/**
* A numeric editor control.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@SupportedBrowser(SupportedBrowser.IE)
+@SupportedBrowser(SupportedBrowser.SAFARI)
+@Experimental()
abstract class NumberInputElement implements RangeInputElementBase {
factory NumberInputElement() => new InputElement(type: 'number');
@@ -358,14 +429,29 @@ abstract class NumberInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'number')).type == 'number';
+ }
}
/**
* Similar to [NumberInputElement] but the browser may provide more optimal
* styling (such as a slider control).
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@SupportedBrowser(SupportedBrowser.IE, '10')
+@Experimental()
abstract class RangeInputElement implements RangeInputElementBase {
factory RangeInputElement() => new InputElement(type: 'range');
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'range')).type == 'range';
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698