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

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: 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, 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
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
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