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

Side by Side Diff: tools/dom/scripts/htmleventgenerator.py

Issue 12092118: Change the way that events are annotated. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Line length. Created 7 years, 10 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/web_audio/dartium/web_audio_dartium.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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,
401 annotation_name), ' ')
400 402
401 members_emitter.Emit( 403 members_emitter.Emit(
402 "\n" 404 "\n"
403 " $(ANNOTATIONS)static const EventStreamProvider<$TYPE> " 405 " $(ANNOTATIONS)static const EventStreamProvider<$TYPE> "
404 "$(NAME)Event = const EventStreamProvider<$TYPE>('$DOM_NAME');\n", 406 "$(NAME)Event = const EventStreamProvider<$TYPE>('$DOM_NAME');\n",
405 ANNOTATIONS=annotations, 407 ANNOTATIONS=annotations,
406 NAME=html_name, 408 NAME=html_name,
407 DOM_NAME=dom_name, 409 DOM_NAME=dom_name,
408 TYPE=event_type) 410 TYPE=event_type)
409 411
410 def EmitStreamGetters(self, interface, custom_events, 412 def EmitStreamGetters(self, interface, custom_events,
411 members_emitter, library_name): 413 members_emitter, library_name):
412 events = self._GetEvents(interface, custom_events) 414 events = self._GetEvents(interface, custom_events)
413 if not events: 415 if not events:
414 return 416 return
415 417
416 for event_info in events: 418 for event_info in events:
417 (dom_name, html_name, event_type) = event_info 419 (dom_name, html_name, event_type) = event_info
418 getter_name = 'on%s%s' % (html_name[:1].upper(), html_name[1:]) 420 getter_name = 'on%s%s' % (html_name[:1].upper(), html_name[1:])
421 annotation_name = 'on' + dom_name
419 422
420 # If the provider is declared elsewhere, point to that. 423 # If the provider is declared elsewhere, point to that.
421 redirection = self._GetEventRedirection(interface, html_name, event_type) 424 redirection = self._GetEventRedirection(interface, html_name, event_type)
422 if redirection: 425 if redirection:
423 provider = '%s.%sEvent' % (redirection, html_name) 426 provider = '%s.%sEvent' % (redirection, html_name)
424 else: 427 else:
425 provider = html_name + 'Event' 428 provider = html_name + 'Event'
426 429
427 annotations = FormatAnnotationsAndComments( 430 annotations = FormatAnnotationsAndComments(
428 GetAnnotationsAndComments(library_name, interface.id, dom_name), ' ') 431 GetAnnotationsAndComments(library_name, interface.id,
432 annotation_name), ' ')
429 433
430 members_emitter.Emit( 434 members_emitter.Emit(
431 "\n" 435 "\n"
432 " $(ANNOTATIONS)Stream<$TYPE> get $(NAME) => " 436 " $(ANNOTATIONS)Stream<$TYPE> get $(NAME) => "
433 "$PROVIDER.forTarget(this);\n", 437 "$PROVIDER.forTarget(this);\n",
434 ANNOTATIONS=annotations, 438 ANNOTATIONS=annotations,
435 NAME=getter_name, 439 NAME=getter_name,
436 PROVIDER=provider, 440 PROVIDER=provider,
437 TYPE=event_type) 441 TYPE=event_type)
438 442
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 parent_events_class_name = 'Events' 591 parent_events_class_name = 'Events'
588 interfaces_with_events = set() 592 interfaces_with_events = set()
589 for parent in self._database.Hierarchy(interface): 593 for parent in self._database.Hierarchy(interface):
590 if parent != interface and parent.id in self._event_classes: 594 if parent != interface and parent.id in self._event_classes:
591 parent_name = self._renamer.RenameInterface(parent) 595 parent_name = self._renamer.RenameInterface(parent)
592 parent_events_class_name = parent_name + 'Events' 596 parent_events_class_name = parent_name + 'Events'
593 interfaces_with_events.add(parent) 597 interfaces_with_events.add(parent)
594 if len(interfaces_with_events) > 1: 598 if len(interfaces_with_events) > 1:
595 raise Exception('Only one parent event class allowed ' + interface.id) 599 raise Exception('Only one parent event class allowed ' + interface.id)
596 return parent_events_class_name 600 return parent_events_class_name
OLDNEW
« no previous file with comments | « sdk/lib/web_audio/dartium/web_audio_dartium.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698