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

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

Issue 21607003: Add Event delegation to Elements and groups of elements. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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 | « tools/dom/scripts/htmleventgenerator.py ('k') | tools/dom/src/EventStreamProvider.dart » ('j') | 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 shared functionality for the system to generate 6 """This module provides shared functionality for the system to generate
7 Dart:html APIs from the IDL database.""" 7 Dart:html APIs from the IDL database."""
8 8
9 import emitter 9 import emitter
10 import logging 10 import logging
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 self._backend.ImplementationTemplate(), 563 self._backend.ImplementationTemplate(),
564 LIBRARYNAME='dart.dom.%s' % self._library_name, 564 LIBRARYNAME='dart.dom.%s' % self._library_name,
565 ANNOTATIONS=annotations, 565 ANNOTATIONS=annotations,
566 CLASS_MODIFIERS=class_modifiers, 566 CLASS_MODIFIERS=class_modifiers,
567 CLASSNAME=self._interface_type_info.implementation_name(), 567 CLASSNAME=self._interface_type_info.implementation_name(),
568 EXTENDS=' extends %s' % base_class if base_class else '', 568 EXTENDS=' extends %s' % base_class if base_class else '',
569 IMPLEMENTS=implements_str, 569 IMPLEMENTS=implements_str,
570 MIXINS=mixins_str, 570 MIXINS=mixins_str,
571 DOMNAME=self._interface.doc_js_name, 571 DOMNAME=self._interface.doc_js_name,
572 NATIVESPEC=native_spec) 572 NATIVESPEC=native_spec)
573 stream_getter_signatures_emitter = None
574 element_stream_getters_emitter = None
575 if type(self._implementation_members_emitter) == tuple:
576 # We add event stream getters for both Element and ElementList, so in
577 # impl_Element.darttemplate, we have two additional "holes" for emitters
578 # to fill in, with small variations. These store these specialized
579 # emitters.
580 stream_getter_signatures_emitter = self._implementation_members_emitter[0]
581 element_stream_getters_emitter = self._implementation_members_emitter[1]
582 self._implementation_members_emitter = \
583 self._implementation_members_emitter[2]
573 self._backend.StartInterface(self._implementation_members_emitter) 584 self._backend.StartInterface(self._implementation_members_emitter)
574 585
575 self._backend.EmitHelpers(base_class) 586 self._backend.EmitHelpers(base_class)
576 self._event_generator.EmitStreamProviders( 587 self._event_generator.EmitStreamProviders(
577 self._interface, 588 self._interface,
578 self._backend.CustomJSMembers(), 589 self._backend.CustomJSMembers(),
579 self._implementation_members_emitter, 590 self._implementation_members_emitter,
580 self._library_name) 591 self._library_name)
581 self._backend.AddConstructors( 592 self._backend.AddConstructors(
582 constructors, factory_provider, factory_constructor_name) 593 constructors, factory_provider, factory_constructor_name)
583 594
584 self._backend.EmitSupportCheck() 595 self._backend.EmitSupportCheck()
585 596
586 merged_interface = self._interface_type_info.merged_interface() 597 merged_interface = self._interface_type_info.merged_interface()
587 if merged_interface: 598 if merged_interface:
588 self._backend.AddMembers(self._database.GetInterface(merged_interface), 599 self._backend.AddMembers(self._database.GetInterface(merged_interface),
589 not self._backend.ImplementsMergedMembers()) 600 not self._backend.ImplementsMergedMembers())
590 601
591 self._backend.AddMembers(self._interface) 602 self._backend.AddMembers(self._interface)
592 self._backend.AddSecondaryMembers(self._interface) 603 self._backend.AddSecondaryMembers(self._interface)
593 self._event_generator.EmitStreamGetters( 604 self._event_generator.EmitStreamGetters(
594 self._interface, 605 self._interface,
595 [], 606 [],
596 self._implementation_members_emitter, 607 self._implementation_members_emitter,
597 self._library_name) 608 self._library_name, stream_getter_signatures_emitter,
609 element_stream_getters_emitter)
598 self._backend.FinishInterface() 610 self._backend.FinishInterface()
599 611
600 def _ImplementationEmitter(self): 612 def _ImplementationEmitter(self):
601 basename = self._interface_type_info.implementation_name() 613 basename = self._interface_type_info.implementation_name()
602 if (self._interface_type_info.merged_into() and 614 if (self._interface_type_info.merged_into() and
603 self._backend.ImplementsMergedMembers()): 615 self._backend.ImplementsMergedMembers()):
604 # Merged members are implemented in target interface implementation. 616 # Merged members are implemented in target interface implementation.
605 return emitter.Emitter() 617 return emitter.Emitter()
606 return self._library_emitter.FileEmitter(basename, self._library_name) 618 return self._library_emitter.FileEmitter(basename, self._library_name)
607 619
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 for library_name in libraries: 1217 for library_name in libraries:
1206 self._libraries[library_name] = DartLibrary( 1218 self._libraries[library_name] = DartLibrary(
1207 library_name, template_loader, library_type, output_dir) 1219 library_name, template_loader, library_type, output_dir)
1208 1220
1209 def AddFile(self, basename, library_name, path): 1221 def AddFile(self, basename, library_name, path):
1210 self._libraries[library_name].AddFile(path) 1222 self._libraries[library_name].AddFile(path)
1211 1223
1212 def Emit(self, emitter, auxiliary_dir): 1224 def Emit(self, emitter, auxiliary_dir):
1213 for lib in self._libraries.values(): 1225 for lib in self._libraries.values():
1214 lib.Emit(emitter, auxiliary_dir) 1226 lib.Emit(emitter, auxiliary_dir)
OLDNEW
« no previous file with comments | « tools/dom/scripts/htmleventgenerator.py ('k') | tools/dom/src/EventStreamProvider.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698