Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 3 # for details. All rights reserved. Use of this source code is governed by a | 3 # for details. All rights reserved. Use of this source code is governed by a |
| 4 # BSD-style license that can be found in the LICENSE file. | 4 # BSD-style license that can be found in the LICENSE file. |
| 5 | 5 |
| 6 """This module provides functionality to generate dart:html event classes.""" | 6 """This module provides functionality to generate dart:html event classes.""" |
| 7 | 7 |
| 8 import logging | 8 import logging |
| 9 from generator import GetAnnotationsAndComments, FormatAnnotationsAndComments | 9 from generator import GetAnnotationsAndComments, FormatAnnotationsAndComments |
| 10 | 10 |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 383 self._template_loader = template_loader | 383 self._template_loader = template_loader |
| 384 | 384 |
| 385 def EmitStreamProviders(self, interface, custom_events, | 385 def EmitStreamProviders(self, interface, custom_events, |
| 386 members_emitter, library_name): | 386 members_emitter, library_name): |
| 387 events = self._GetEvents(interface, custom_events) | 387 events = self._GetEvents(interface, custom_events) |
| 388 if not events: | 388 if not events: |
| 389 return | 389 return |
| 390 | 390 |
| 391 for event_info in events: | 391 for event_info in events: |
| 392 (dom_name, html_name, event_type) = event_info | 392 (dom_name, html_name, event_type) = event_info |
| 393 annotation_name = dom_name + 'Event' | |
| 393 | 394 |
| 394 # If we're using a different provider, then don't declare one. | 395 # If we're using a different provider, then don't declare one. |
| 395 if self._GetEventRedirection(interface, html_name, event_type): | 396 if self._GetEventRedirection(interface, html_name, event_type): |
| 396 continue | 397 continue |
| 397 | 398 |
| 398 annotations = FormatAnnotationsAndComments( | 399 annotations = FormatAnnotationsAndComments( |
| 399 GetAnnotationsAndComments(library_name, interface.id, dom_name), ' ') | 400 GetAnnotationsAndComments(library_name, interface.id, annotation_name) , ' ') |
|
blois
2013/02/01 22:12:55
line length
Andrei Mouravski
2013/02/04 16:03:12
Done.
| |
| 400 | 401 |
| 401 members_emitter.Emit( | 402 members_emitter.Emit( |
| 402 "\n" | 403 "\n" |
| 403 " $(ANNOTATIONS)static const EventStreamProvider<$TYPE> " | 404 " $(ANNOTATIONS)static const EventStreamProvider<$TYPE> " |
| 404 "$(NAME)Event = const EventStreamProvider<$TYPE>('$DOM_NAME');\n", | 405 "$(NAME)Event = const EventStreamProvider<$TYPE>('$DOM_NAME');\n", |
| 405 ANNOTATIONS=annotations, | 406 ANNOTATIONS=annotations, |
| 406 NAME=html_name, | 407 NAME=html_name, |
| 407 DOM_NAME=dom_name, | 408 DOM_NAME=dom_name, |
| 408 TYPE=event_type) | 409 TYPE=event_type) |
| 409 | 410 |
| 410 def EmitStreamGetters(self, interface, custom_events, | 411 def EmitStreamGetters(self, interface, custom_events, |
| 411 members_emitter, library_name): | 412 members_emitter, library_name): |
| 412 events = self._GetEvents(interface, custom_events) | 413 events = self._GetEvents(interface, custom_events) |
| 413 if not events: | 414 if not events: |
| 414 return | 415 return |
| 415 | 416 |
| 416 for event_info in events: | 417 for event_info in events: |
| 417 (dom_name, html_name, event_type) = event_info | 418 (dom_name, html_name, event_type) = event_info |
| 418 getter_name = 'on%s%s' % (html_name[:1].upper(), html_name[1:]) | 419 getter_name = 'on%s%s' % (html_name[:1].upper(), html_name[1:]) |
| 420 annotation_name = 'on' + dom_name | |
| 419 | 421 |
| 420 # If the provider is declared elsewhere, point to that. | 422 # If the provider is declared elsewhere, point to that. |
| 421 redirection = self._GetEventRedirection(interface, html_name, event_type) | 423 redirection = self._GetEventRedirection(interface, html_name, event_type) |
| 422 if redirection: | 424 if redirection: |
| 423 provider = '%s.%sEvent' % (redirection, html_name) | 425 provider = '%s.%sEvent' % (redirection, html_name) |
| 424 else: | 426 else: |
| 425 provider = html_name + 'Event' | 427 provider = html_name + 'Event' |
| 426 | 428 |
| 427 annotations = FormatAnnotationsAndComments( | 429 annotations = FormatAnnotationsAndComments( |
| 428 GetAnnotationsAndComments(library_name, interface.id, dom_name), ' ') | 430 GetAnnotationsAndComments(library_name, interface.id, annotation_name) , ' ') |
|
blois
2013/02/01 22:12:55
line length
Andrei Mouravski
2013/02/04 16:03:12
Done.
| |
| 429 | 431 |
| 430 members_emitter.Emit( | 432 members_emitter.Emit( |
| 431 "\n" | 433 "\n" |
| 432 " $(ANNOTATIONS)Stream<$TYPE> get $(NAME) => " | 434 " $(ANNOTATIONS)Stream<$TYPE> get $(NAME) => " |
| 433 "$PROVIDER.forTarget(this);\n", | 435 "$PROVIDER.forTarget(this);\n", |
| 434 ANNOTATIONS=annotations, | 436 ANNOTATIONS=annotations, |
| 435 NAME=getter_name, | 437 NAME=getter_name, |
| 436 PROVIDER=provider, | 438 PROVIDER=provider, |
| 437 TYPE=event_type) | 439 TYPE=event_type) |
| 438 | 440 |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 587 parent_events_class_name = 'Events' | 589 parent_events_class_name = 'Events' |
| 588 interfaces_with_events = set() | 590 interfaces_with_events = set() |
| 589 for parent in self._database.Hierarchy(interface): | 591 for parent in self._database.Hierarchy(interface): |
| 590 if parent != interface and parent.id in self._event_classes: | 592 if parent != interface and parent.id in self._event_classes: |
| 591 parent_name = self._renamer.RenameInterface(parent) | 593 parent_name = self._renamer.RenameInterface(parent) |
| 592 parent_events_class_name = parent_name + 'Events' | 594 parent_events_class_name = parent_name + 'Events' |
| 593 interfaces_with_events.add(parent) | 595 interfaces_with_events.add(parent) |
| 594 if len(interfaces_with_events) > 1: | 596 if len(interfaces_with_events) > 1: |
| 595 raise Exception('Only one parent event class allowed ' + interface.id) | 597 raise Exception('Only one parent event class allowed ' + interface.id) |
| 596 return parent_events_class_name | 598 return parent_events_class_name |
| OLD | NEW |