Chromium Code Reviews| Index: lib/dom/scripts/systemhtml.py |
| diff --git a/lib/dom/scripts/systemhtml.py b/lib/dom/scripts/systemhtml.py |
| index 24dae45acaf688f1b9dc8a8cca641f6f7575e552..ee19d46acfbce4769376db6db6abbbbf5fff5a21 100644 |
| --- a/lib/dom/scripts/systemhtml.py |
| +++ b/lib/dom/scripts/systemhtml.py |
| @@ -448,7 +448,7 @@ def _OnAttributeToEventName(on_method): |
| else: |
| return event_name |
| -def _DomToHtmlEvents(interface_id, events): |
| +def DomToHtmlEvents(interface_id, events): |
| event_names = set(map(_OnAttributeToEventName, events)) |
| if interface_id in _html_manual_events: |
| for manual_event_name in _html_manual_events[interface_id]: |
| @@ -456,6 +456,11 @@ def _DomToHtmlEvents(interface_id, events): |
| return sorted(event_names, key=lambda name: _html_event_names[name]) |
| +def DomToHtmlEvent(event_name): |
| + assert event_name in _html_event_names, \ |
| + 'No known html even name for event: ' + event_name |
|
Anton Muhin
2012/05/15 14:54:57
nit: even<t>
podivilov
2012/05/16 12:32:24
Done.
|
| + return _html_event_names[event_name] |
| + |
| # ------------------------------------------------------------------------------ |
| class HtmlSystemShared(object): |
| @@ -778,7 +783,7 @@ class HtmlDartInterfaceGenerator(DartInterfaceGenerator): |
| self._EmitConstant(self._members_emitter, constant) |
| def AddEventAttributes(self, event_attrs): |
| - event_attrs = _DomToHtmlEvents(self._interface.id, event_attrs) |
| + event_attrs = DomToHtmlEvents(self._interface.id, event_attrs) |
| self._shared._event_classes.add(self._interface.id) |
| events_interface = self._interface.id + 'Events' |
| self._EmitEventGetter(events_interface) |
| @@ -1065,7 +1070,7 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator): |
| lambda type_name: self._NarrowInputType(type_name))) |
| def AddEventAttributes(self, event_attrs): |
| - event_attrs = _DomToHtmlEvents(self._interface.id, event_attrs) |
| + event_attrs = DomToHtmlEvents(self._interface.id, event_attrs) |
| events_class = '_' + self._interface.id + 'EventsImpl' |
| events_interface = self._interface.id + 'Events' |
| self._EmitEventGetter(events_class) |
| @@ -1319,13 +1324,11 @@ class HtmlDartiumInterfaceGenerator(object): |
| self._EmitFactoryProvider(interface_name, constructor_info) |
| emit_events, events = self._shared.GetEventAttributes(self._interface) |
| - if not emit_events: |
| - return |
| - elif events: |
| - self.AddEventAttributes(events) |
| - else: |
| - parent_events_class = self._shared.GetParentEventsClass(self._interface) |
| - self._EmitEventGetter('_' + parent_events_class + 'Impl') |
| + if emit_events: |
| + self._members_emitter.Emit( |
| + '\n' |
| + ' Events get on() => $THIS.on;\n', |
| + THIS=self.DomObjectName()) |
| def _EmitFactoryProvider(self, interface_name, constructor_info): |
| template_file = 'factoryprovider_%s.darttemplate' % interface_name |
| @@ -1430,45 +1433,6 @@ class HtmlDartiumInterfaceGenerator(object): |
| self._SecondaryContext(interface) |
| self.AddOperation(info) |
| - def AddEventAttributes(self, event_attrs): |
| - event_attrs = _DomToHtmlEvents(self._interface.id, event_attrs) |
| - events_class = '_' + self._interface.id + 'EventsImpl' |
| - events_interface = self._interface.id + 'Events' |
| - self._EmitEventGetter(events_class) |
| - |
| - self._shared._event_classes.add(self._interface.id) |
| - |
| - parent_event_class = self._shared.GetParentEventsClass(self._interface) |
| - |
| - # TODO(jacobr): specify the type of _ptr as EventTarget |
| - events_members = self._dart_code.Emit( |
| - '\n' |
| - 'class $CLASSNAME extends $SUPER implements $INTERFACE {\n' |
| - ' $CLASSNAME(_ptr) : super(_ptr);\n' |
| - '$!MEMBERS}\n', |
| - CLASSNAME=events_class, |
| - INTERFACE=events_interface, |
| - SUPER='_' + parent_event_class + 'Impl') |
| - |
| - for event_name in event_attrs: |
| - if event_name in _html_event_names: |
| - events_members.Emit( |
| - "\n" |
| - " EventListenerList get $NAME() => _get('$RAWNAME');\n", |
| - RAWNAME=event_name, |
| - NAME=_html_event_names[event_name]) |
| - else: |
| - raise Exception('No known html even name for event: ' + event_name) |
| - |
| - def _EmitEventGetter(self, events_class): |
| - self._members_emitter.Emit( |
| - '\n' |
| - ' $TYPE get on() {\n' |
| - ' if (_on == null) _on = new $TYPE(this);\n' |
| - ' return _on;\n' |
| - ' }\n', |
| - TYPE=events_class) |
| - |
| def _SecondaryContext(self, interface): |
| if interface is not self._current_secondary_parent: |
| self._current_secondary_parent = interface |