| 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 part of polymer; | 5 part of polymer; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * **Warning**: this class is experiental and subject to change. | 8 * **Warning**: this class is experiental and subject to change. |
| 9 * | 9 * |
| 10 * The implementation for the `polymer-element` element. | 10 * The implementation for the `polymer-element` element. |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 // do not override explicit entries | 284 // do not override explicit entries |
| 285 if (attr == '') continue; | 285 if (attr == '') continue; |
| 286 | 286 |
| 287 var property = new Symbol(attr); | 287 var property = new Symbol(attr); |
| 288 var path = new PropertyPath([property]); | 288 var path = new PropertyPath([property]); |
| 289 if (_publish != null && _publish.containsKey(path)) { | 289 if (_publish != null && _publish.containsKey(path)) { |
| 290 continue; | 290 continue; |
| 291 } | 291 } |
| 292 | 292 |
| 293 var decl = smoke.getDeclaration(_type, property); | 293 var decl = smoke.getDeclaration(_type, property); |
| 294 if (decl == null || !decl.isProperty || decl.isFinal) { | 294 if (decl == null || decl.isMethod || decl.isFinal) { |
| 295 window.console.warn('property for attribute $attr of polymer-element ' | 295 window.console.warn('property for attribute $attr of polymer-element ' |
| 296 'name=$name not found.'); | 296 'name=$name not found.'); |
| 297 continue; | 297 continue; |
| 298 } | 298 } |
| 299 if (_publish == null) _publish = {}; | 299 if (_publish == null) _publish = {}; |
| 300 _publish[path] = decl; | 300 _publish[path] = decl; |
| 301 } | 301 } |
| 302 } | 302 } |
| 303 | 303 |
| 304 // NOTE: the following is not possible in Dart; fields must be declared. | 304 // NOTE: the following is not possible in Dart; fields must be declared. |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 return new StyleElement() | 447 return new StyleElement() |
| 448 ..text = cssText | 448 ..text = cssText |
| 449 ..attributes[_STYLE_SCOPE_ATTRIBUTE] = '$name-$scopeDescriptor'; | 449 ..attributes[_STYLE_SCOPE_ATTRIBUTE] = '$name-$scopeDescriptor'; |
| 450 } | 450 } |
| 451 | 451 |
| 452 /** | 452 /** |
| 453 * Fetch a list of all *Changed methods so we can observe the associated | 453 * Fetch a list of all *Changed methods so we can observe the associated |
| 454 * properties. | 454 * properties. |
| 455 */ | 455 */ |
| 456 void inferObservers() { | 456 void inferObservers() { |
| 457 var options = const smoke.QueryOptions(includeProperties: false, | 457 var options = const smoke.QueryOptions(includeFields: false, |
| 458 includeMethods: true, includeInherited: true); | 458 includeProperties: false, includeMethods: true, includeInherited: true); |
| 459 for (var decl in smoke.query(_type, options)) { | 459 for (var decl in smoke.query(_type, options)) { |
| 460 String name = smoke.symbolToName(decl.name); | 460 String name = smoke.symbolToName(decl.name); |
| 461 if (name.endsWith(_OBSERVE_SUFFIX) && name != 'attributeChanged') { | 461 if (name.endsWith(_OBSERVE_SUFFIX) && name != 'attributeChanged') { |
| 462 // TODO(jmesserly): now that we have a better system, should we | 462 // TODO(jmesserly): now that we have a better system, should we |
| 463 // deprecate *Changed methods? | 463 // deprecate *Changed methods? |
| 464 if (_observe == null) _observe = new HashMap(); | 464 if (_observe == null) _observe = new HashMap(); |
| 465 name = name.substring(0, name.length - 7); | 465 name = name.substring(0, name.length - 7); |
| 466 _observe[new PropertyPath(name)] = [decl.name]; | 466 _observe[new PropertyPath(name)] = [decl.name]; |
| 467 } | 467 } |
| 468 } | 468 } |
| 469 } | 469 } |
| 470 | 470 |
| 471 /** | 471 /** |
| 472 * Fetch a list of all methods annotated with [ObserveProperty] so we can | 472 * Fetch a list of all methods annotated with [ObserveProperty] so we can |
| 473 * observe the associated properties. | 473 * observe the associated properties. |
| 474 */ | 474 */ |
| 475 void explodeObservers() { | 475 void explodeObservers() { |
| 476 var options = const smoke.QueryOptions(includeProperties: false, | 476 var options = const smoke.QueryOptions(includeFields: false, |
| 477 includeMethods: true, includeInherited: true, | 477 includeProperties: false, includeMethods: true, includeInherited: true, |
| 478 withAnnotations: const [ObserveProperty]); | 478 withAnnotations: const [ObserveProperty]); |
| 479 for (var decl in smoke.query(_type, options)) { | 479 for (var decl in smoke.query(_type, options)) { |
| 480 for (var meta in decl.annotations) { | 480 for (var meta in decl.annotations) { |
| 481 if (meta is! ObserveProperty) continue; | 481 if (meta is! ObserveProperty) continue; |
| 482 if (_observe == null) _observe = new HashMap(); | 482 if (_observe == null) _observe = new HashMap(); |
| 483 for (String name in meta.names) { | 483 for (String name in meta.names) { |
| 484 _observe.putIfAbsent(new PropertyPath(name), () => []).add(decl.name); | 484 _observe.putIfAbsent(new PropertyPath(name), () => []).add(decl.name); |
| 485 } | 485 } |
| 486 } | 486 } |
| 487 } | 487 } |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 | 644 |
| 645 // Dart note: we need this function because we have additional renames JS does | 645 // Dart note: we need this function because we have additional renames JS does |
| 646 // not have. The JS renames are simply case differences, whereas we have ones | 646 // not have. The JS renames are simply case differences, whereas we have ones |
| 647 // like doubleclick -> dblclick and stripping the webkit prefix. | 647 // like doubleclick -> dblclick and stripping the webkit prefix. |
| 648 String _eventNameFromType(String eventType) { | 648 String _eventNameFromType(String eventType) { |
| 649 final result = _reverseEventTranslations[eventType]; | 649 final result = _reverseEventTranslations[eventType]; |
| 650 return result != null ? result : eventType; | 650 return result != null ? result : eventType; |
| 651 } | 651 } |
| 652 | 652 |
| 653 final _ATTRIBUTES_REGEX = new RegExp(r'\s|,'); | 653 final _ATTRIBUTES_REGEX = new RegExp(r'\s|,'); |
| OLD | NEW |