OLD | NEW |
---|---|
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library polymer.polymer_element; | 5 library polymer.polymer_element; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:html'; | 8 import 'dart:html'; |
9 import 'dart:mirrors'; | 9 import 'dart:mirrors'; |
10 | 10 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
110 name = name.trim(); | 110 name = name.trim(); |
111 | 111 |
112 // TODO(jmesserly): PathObserver is overkill here; it helps avoid | 112 // TODO(jmesserly): PathObserver is overkill here; it helps avoid |
113 // "new Symbol" and other mirrors-related warnings. | 113 // "new Symbol" and other mirrors-related warnings. |
114 _publishedAttrs[name] = new PathObserver(this, toCamelCase(name)); | 114 _publishedAttrs[name] = new PathObserver(this, toCamelCase(name)); |
115 } | 115 } |
116 } | 116 } |
117 } | 117 } |
118 | 118 |
119 void created() { | 119 void created() { |
120 // TODO(jmesserly): this breaks until we get some kind of type conversion. | 120 _publishedAttrs.forEach((name, propObserver) { |
121 // _publishedAttrs.forEach((name, propObserver) { | 121 var oldValue = propObserver.value; |
122 // var value = attributes[name]; | 122 if (oldValue is bool) { |
123 // if (value != null) propObserver.value = value; | 123 propObserver.value = attributes.containsKey(name); |
124 // }); | 124 return; |
125 } | |
126 var value = attributes[name]; | |
127 if (value == null) return; | |
128 | |
129 if (oldValue is int) { | |
130 propObserver.value = int.parse(value, onError: (x) => null); | |
Siggi Cherem (dart-lang)
2013/08/06 16:40:39
should we assign onError or just skip setting the
Jennifer Messerly
2013/08/06 16:44:23
good question. I figured setting to "null" would s
Jennifer Messerly
2013/08/06 20:04:52
hmm, Polymer source code is not helpful in this ca
| |
131 } else if (oldValue is double) { | |
132 propObserver.value = double.parse(value, (x) => null); | |
133 } else { | |
134 // Assume it's a string. | |
135 propObserver.value = value; | |
Siggi Cherem (dart-lang)
2013/08/06 16:40:39
how about:
propObserver.value = value.toString();
Jennifer Messerly
2013/08/06 16:44:23
value will always be a string because it comes fro
Siggi Cherem (dart-lang)
2013/08/06 16:46:01
Ah, <facepalm>, makes sense. thx
| |
136 } | |
137 }); | |
125 _initShadowRoot(); | 138 _initShadowRoot(); |
126 _addHostListeners(); | 139 _addHostListeners(); |
127 } | 140 } |
128 | 141 |
129 /** | 142 /** |
130 * Creates the document fragment to use for each instance of the custom | 143 * Creates the document fragment to use for each instance of the custom |
131 * element, given the `<template>` node. By default this is equivalent to: | 144 * element, given the `<template>` node. By default this is equivalent to: |
132 * | 145 * |
133 * template.createInstance(this, fancySyntax); | 146 * template.createInstance(this, fancySyntax); |
134 * | 147 * |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
516 'onKeyMessage': MediaElement.keyMessageEvent, | 529 'onKeyMessage': MediaElement.keyMessageEvent, |
517 'onNeedKey': MediaElement.needKeyEvent, | 530 'onNeedKey': MediaElement.needKeyEvent, |
518 'onWebGlContextLost': CanvasElement.webGlContextLostEvent, | 531 'onWebGlContextLost': CanvasElement.webGlContextLostEvent, |
519 'onWebGlContextRestored': CanvasElement.webGlContextRestoredEvent, | 532 'onWebGlContextRestored': CanvasElement.webGlContextRestoredEvent, |
520 'onPointerLockChange': Document.pointerLockChangeEvent, | 533 'onPointerLockChange': Document.pointerLockChangeEvent, |
521 'onPointerLockError': Document.pointerLockErrorEvent, | 534 'onPointerLockError': Document.pointerLockErrorEvent, |
522 'onReadyStateChange': Document.readyStateChangeEvent, | 535 'onReadyStateChange': Document.readyStateChangeEvent, |
523 'onSelectionChange': Document.selectionChangeEvent, | 536 'onSelectionChange': Document.selectionChangeEvent, |
524 'onSecurityPolicyViolation': Document.securityPolicyViolationEvent, | 537 'onSecurityPolicyViolation': Document.securityPolicyViolationEvent, |
525 }; | 538 }; |
OLD | NEW |