| Index: tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
|
| diff --git a/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate b/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
|
| index e4aaa299ee5ef524046ce8adca1f751137468ea7..a29e0c1c14235259431cb1eb87a7afb30c8e0043 100644
|
| --- a/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
|
| +++ b/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
|
| @@ -174,13 +174,81 @@ $else
|
| $endif
|
|
|
| @Experimental
|
| + /**
|
| + * Register a custom subclass of Element to be instantiatable by the DOM.
|
| + *
|
| + * This is necessary to allow the construction of any custom elements.
|
| + *
|
| + * The class being registered must either subclass HtmlElement or SvgElement.
|
| + * If they subclass these directly then they can be used as:
|
| + *
|
| + * class FooElement extends HtmlElement{
|
| + * void created() {
|
| + * print('FooElement created!');
|
| + * }
|
| + * }
|
| + *
|
| + * main() {
|
| + * document.register('x-foo', FooElement);
|
| + * var myFoo = new Element.tag('x-foo');
|
| + * // prints 'FooElement created!' to the console.
|
| + * }
|
| + *
|
| + * The custom element can also be instantiated via HTML using the syntax
|
| + * `<x-foo></x-foo>`
|
| + *
|
| + * Other elements can be subclassed as well:
|
| + *
|
| + * class BarElement extends InputElement{
|
| + * void created() {
|
| + * print('BarElement created!');
|
| + * }
|
| + * }
|
| + *
|
| + * main() {
|
| + * document.register('x-bar', BarElement);
|
| + * var myBar = new Element.tag('input', 'x-bar');
|
| + * // prints 'BarElement created!' to the console.
|
| + * }
|
| + *
|
| + * This custom element can also be instantiated via HTML using the syntax
|
| + * `<input is="x-bar"></input>`
|
| + *
|
| + * The [nativeTagName] parameter is needed by platforms without native support
|
| + * when subclassing a native type other than:
|
| + *
|
| + * * HtmlElement
|
| + * * SvgElement
|
| + * * AnchorElement
|
| + * * AudioElement
|
| + * * ButtonElement
|
| + * * CanvasElement
|
| + * * DivElement
|
| + * * ImageElement
|
| + * * InputElement
|
| + * * LIElement
|
| + * * LabelElement
|
| + * * MenuElement
|
| + * * MeterElement
|
| + * * OListElement
|
| + * * OptionElement
|
| + * * OutputElement
|
| + * * ParagraphElement
|
| + * * PreElement
|
| + * * ProgressElement
|
| + * * SelectElement
|
| + * * SpanElement
|
| + * * UListElement
|
| + * * VideoElement
|
| + */
|
| $if DART2JS
|
| - void register(String tag, Type customElementClass) {
|
| - _registerCustomElement(JS('', 'window'), this, tag, customElementClass);
|
| + void register(String tag, Type customElementClass, {String nativeTagName}) {
|
| + _registerCustomElement(JS('', 'window'), this, tag, customElementClass,
|
| + nativeTagName);
|
| }
|
| $else
|
| - void register(String tag, Type custom) {
|
| - _Utils.register(tag, custom);
|
| + void register(String tag, Type customElementClass, {String nativeTagName}) {
|
| + _Utils.register(tag, customElementClass);
|
| }
|
| $endif
|
|
|
|
|