| Index: components/webui_generator/generator/view_model.py
|
| diff --git a/components/webui_generator/generator/view_model.py b/components/webui_generator/generator/view_model.py
|
| deleted file mode 100644
|
| index a92080722d55202796f838e1a1afe541f6226791..0000000000000000000000000000000000000000
|
| --- a/components/webui_generator/generator/view_model.py
|
| +++ /dev/null
|
| @@ -1,329 +0,0 @@
|
| -# Copyright 2015 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import os
|
| -import datetime
|
| -import util
|
| -
|
| -H_FILE_TEMPLATE = \
|
| -"""// Copyright %(year)d The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// NOTE: this file is generated from "%(source)s". Do not modify directly.
|
| -
|
| -#ifndef %(include_guard)s
|
| -#define %(include_guard)s
|
| -
|
| -#include "base/macros.h"
|
| -#include "components/webui_generator/view_model.h"
|
| -#include "%(export_h_include_path)s"
|
| -
|
| -namespace content {
|
| -class BrowserContext;
|
| -}
|
| -
|
| -%(children_forward_declarations)s
|
| -
|
| -namespace gen {
|
| -
|
| -class %(export_macro)s %(class_name)s : public ::webui_generator::ViewModel {
|
| - public:
|
| - using FactoryFunction = %(class_name)s* (*)(content::BrowserContext*);
|
| -
|
| -%(context_keys)s
|
| -
|
| - static %(class_name)s* Create(content::BrowserContext* context);
|
| - static void SetFactory(FactoryFunction factory);
|
| -
|
| - %(class_name)s();
|
| -
|
| -%(children_getters)s
|
| -
|
| -%(context_getters)s
|
| -
|
| -%(event_handlers)s
|
| -
|
| - void Initialize() override {}
|
| - void OnAfterChildrenReady() override {}
|
| - void OnViewBound() override {}
|
| -
|
| - private:
|
| - void OnEvent(const std::string& event) final;
|
| -
|
| - static FactoryFunction factory_function_;
|
| -};
|
| -
|
| -} // namespace gen
|
| -
|
| -#endif // %(include_guard)s
|
| -"""
|
| -
|
| -CHILD_FORWARD_DECLARATION_TEMPLATE = \
|
| -"""namespace gen {
|
| - class %(child_type)s;
|
| -}
|
| -"""
|
| -CONTEXT_KEY_DECLARATION_TEMPLATE = \
|
| -""" static const char %s[];"""
|
| -
|
| -CHILD_GETTER_DECLARATION_TEMPLATE = \
|
| -""" virtual gen::%(child_type)s* %(method_name)s() const;""";
|
| -
|
| -CONTEXT_VALUE_GETTER_DECLARATION_TEMPLATE = \
|
| -""" %(type)s %(method_name)s() const;"""
|
| -
|
| -EVENT_HANDLER_DECLARATION_TEMPLATE = \
|
| -""" virtual void %s() = 0;"""
|
| -
|
| -CC_FILE_TEMPLATE = \
|
| -"""// Copyright %(year)d The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// NOTE: this file is generated from "%(source)s". Do not modify directly.
|
| -
|
| -#include "%(header_path)s"
|
| -
|
| -#include "base/logging.h"
|
| -#include "components/webui_generator/view.h"
|
| -%(children_includes)s
|
| -
|
| -namespace gen {
|
| -
|
| -%(context_keys)s
|
| -
|
| -%(class_name)s::FactoryFunction %(class_name)s::factory_function_;
|
| -
|
| -%(class_name)s* %(class_name)s::Create(content::BrowserContext* context) {
|
| - CHECK(factory_function_) << "Factory function for %(class_name)s was not "
|
| - "set.";
|
| - return factory_function_(context);
|
| -}
|
| -
|
| -void %(class_name)s::SetFactory(FactoryFunction factory) {
|
| - factory_function_ = factory;
|
| -}
|
| -
|
| -%(class_name)s::%(class_name)s() {
|
| -%(constructor_body)s
|
| -}
|
| -
|
| -%(children_getters)s
|
| -
|
| -%(context_getters)s
|
| -
|
| -void %(class_name)s::OnEvent(const std::string& event) {
|
| -%(event_dispatcher_body)s
|
| - LOG(ERROR) << "Unknown event '" << event << "'";
|
| -}
|
| -
|
| -} // namespace gen
|
| -"""
|
| -
|
| -CONTEXT_KEY_DEFINITION_TEMPLATE = \
|
| -"""const char %(class_name)s::%(name)s[] = "%(value)s";"""
|
| -
|
| -CHILD_GETTER_DEFINITION_TEMPLATE = \
|
| -"""gen::%(child_type)s* %(class_name)s::%(method_name)s() const {
|
| - return static_cast<gen::%(child_type)s*>(
|
| - view()->GetChild("%(child_id)s")->GetViewModel());
|
| -}
|
| -"""
|
| -
|
| -CONTEXT_VALUE_GETTER_DEFINITION_TEMPLATE = \
|
| -"""%(type)s %(class_name)s::%(method_name)s() const {
|
| - return context().%(context_getter)s(%(key_constant)s);
|
| -}
|
| -"""
|
| -
|
| -FIELD_TYPE_TO_GETTER_TYPE = {
|
| - 'boolean': 'bool',
|
| - 'integer': 'int',
|
| - 'double': 'double',
|
| - 'string': 'std::string',
|
| - 'string_list': 'login::StringList'
|
| -}
|
| -
|
| -DISPATCH_EVENT_TEMPLATE = \
|
| -""" if (event == "%(event_id)s") {
|
| - %(method_name)s();
|
| - return;
|
| - }"""
|
| -
|
| -def GetCommonSubistitutions(declaration):
|
| - subs = {}
|
| - subs['year'] = datetime.date.today().year
|
| - subs['class_name'] = declaration.view_model_class
|
| - subs['source'] = declaration.path
|
| - return subs
|
| -
|
| -def FieldNameToConstantName(field_name):
|
| - return 'kContextKey' + util.ToUpperCamelCase(field_name)
|
| -
|
| -def GenContextKeysDeclarations(fields):
|
| - return '\n'.join(
|
| - (CONTEXT_KEY_DECLARATION_TEMPLATE % \
|
| - FieldNameToConstantName(f.name) for f in fields))
|
| -
|
| -def GenChildrenForwardDeclarations(children):
|
| - lines = []
|
| - for declaration in set(children.itervalues()):
|
| - lines.append(CHILD_FORWARD_DECLARATION_TEMPLATE % {
|
| - 'child_type': declaration.view_model_class
|
| - })
|
| - return '\n'.join(lines)
|
| -
|
| -def ChildIdToChildGetterName(id):
|
| - return 'Get%s' % util.ToUpperCamelCase(id)
|
| -
|
| -def GenChildrenGettersDeclarations(children):
|
| - lines = []
|
| - for id, declaration in children.iteritems():
|
| - lines.append(CHILD_GETTER_DECLARATION_TEMPLATE % {
|
| - 'child_type': declaration.view_model_class,
|
| - 'method_name': ChildIdToChildGetterName(id)
|
| - })
|
| - return '\n'.join(lines)
|
| -
|
| -def FieldNameToGetterName(field_name):
|
| - return 'Get%s' % util.ToUpperCamelCase(field_name)
|
| -
|
| -def GenContextGettersDeclarations(context_fields):
|
| - lines = []
|
| - for field in context_fields:
|
| - lines.append(CONTEXT_VALUE_GETTER_DECLARATION_TEMPLATE % {
|
| - 'type': FIELD_TYPE_TO_GETTER_TYPE[field.type],
|
| - 'method_name': FieldNameToGetterName(field.name)
|
| - })
|
| - return '\n'.join(lines)
|
| -
|
| -def EventIdToMethodName(event):
|
| - return 'On' + util.ToUpperCamelCase(event)
|
| -
|
| -def GenEventHandlersDeclarations(events):
|
| - lines = []
|
| - for event in events:
|
| - lines.append(EVENT_HANDLER_DECLARATION_TEMPLATE %
|
| - EventIdToMethodName(event))
|
| - return '\n'.join(lines)
|
| -
|
| -def GenHFile(declaration):
|
| - subs = GetCommonSubistitutions(declaration)
|
| - subs['include_guard'] = \
|
| - util.PathToIncludeGuard(declaration.view_model_include_path)
|
| - subs['context_keys'] = GenContextKeysDeclarations(declaration.fields)
|
| - subs['children_forward_declarations'] = \
|
| - GenChildrenForwardDeclarations(declaration.children)
|
| - subs['children_getters'] = \
|
| - GenChildrenGettersDeclarations(declaration.children);
|
| - subs['context_getters'] = \
|
| - GenContextGettersDeclarations(declaration.fields);
|
| - subs['event_handlers'] = GenEventHandlersDeclarations(declaration.events)
|
| - subs['export_h_include_path'] = declaration.export_h_include_path
|
| - subs['export_macro'] = declaration.component_export_macro
|
| - return H_FILE_TEMPLATE % subs
|
| -
|
| -def GenContextKeysDefinitions(declaration):
|
| - lines = []
|
| - for field in declaration.fields:
|
| - definition = CONTEXT_KEY_DEFINITION_TEMPLATE % {
|
| - 'class_name': declaration.view_model_class,
|
| - 'name': FieldNameToConstantName(field.name),
|
| - 'value': field.id
|
| - }
|
| - lines.append(definition)
|
| - return '\n'.join(lines)
|
| -
|
| -def GenChildrenIncludes(children):
|
| - lines = []
|
| - for declaration in set(children.itervalues()):
|
| - lines.append('#include "%s"' % declaration.view_model_include_path)
|
| - return '\n'.join(lines)
|
| -
|
| -def GenContextFieldInitialization(field):
|
| - lines = []
|
| - key_constant = FieldNameToConstantName(field.name)
|
| - setter_method = 'Set' + util.ToUpperCamelCase(field.type)
|
| - if field.type == 'string_list':
|
| - lines.append(' {')
|
| - lines.append(' std::vector<std::string> defaults;')
|
| - for s in field.default_value:
|
| - lines.append(' defaults.push_back("%s");' % s)
|
| - lines.append(' context().%s(%s, defaults);' %
|
| - (setter_method, key_constant))
|
| - lines.append(' }')
|
| - else:
|
| - setter = ' context().%s(%s, ' % (setter_method, key_constant)
|
| - if field.type in ['integer', 'double']:
|
| - setter += str(field.default_value)
|
| - elif field.type == 'boolean':
|
| - setter += 'true' if field.default_value else 'false'
|
| - else:
|
| - assert field.type == 'string'
|
| - setter += '"%s"' % field.default_value
|
| - setter += ");"
|
| - lines.append(setter)
|
| - return '\n'.join(lines)
|
| -
|
| -def GenChildrenGettersDefenitions(declaration):
|
| - lines = []
|
| - for id, child in declaration.children.iteritems():
|
| - lines.append(CHILD_GETTER_DEFINITION_TEMPLATE % {
|
| - 'child_type': child.view_model_class,
|
| - 'class_name': declaration.view_model_class,
|
| - 'method_name': ChildIdToChildGetterName(id),
|
| - 'child_id': id
|
| - });
|
| - return '\n'.join(lines)
|
| -
|
| -def GenContextGettersDefinitions(declaration):
|
| - lines = []
|
| - for field in declaration.fields:
|
| - lines.append(CONTEXT_VALUE_GETTER_DEFINITION_TEMPLATE % {
|
| - 'type': FIELD_TYPE_TO_GETTER_TYPE[field.type],
|
| - 'class_name': declaration.view_model_class,
|
| - 'method_name': FieldNameToGetterName(field.name),
|
| - 'context_getter': 'Get' + util.ToUpperCamelCase(
|
| - field.type),
|
| - 'key_constant': FieldNameToConstantName(field.name)
|
| - });
|
| - return '\n'.join(lines)
|
| -
|
| -def GenEventDispatcherBody(events):
|
| - lines = []
|
| - for event in events:
|
| - lines.append(DISPATCH_EVENT_TEMPLATE % {
|
| - 'event_id': util.ToLowerCamelCase(event),
|
| - 'method_name': EventIdToMethodName(event)
|
| - });
|
| - return '\n'.join(lines)
|
| -
|
| -def GenCCFile(declaration):
|
| - subs = GetCommonSubistitutions(declaration)
|
| - subs['header_path'] = declaration.view_model_include_path
|
| - subs['context_keys'] = GenContextKeysDefinitions(declaration)
|
| - subs['children_includes'] = GenChildrenIncludes(declaration.children)
|
| - initializations = [GenContextFieldInitialization(field) \
|
| - for field in declaration.fields]
|
| - initializations.append(' base::DictionaryValue diff;');
|
| - initializations.append(' context().GetChangesAndReset(&diff);');
|
| - subs['constructor_body'] = '\n'.join(initializations)
|
| - subs['children_getters'] = GenChildrenGettersDefenitions(declaration)
|
| - subs['context_getters'] = GenContextGettersDefinitions(declaration)
|
| - subs['event_dispatcher_body'] = GenEventDispatcherBody(declaration.events)
|
| - return CC_FILE_TEMPLATE % subs
|
| -
|
| -def ListOutputs(declaration, destination):
|
| - dirname = os.path.join(destination, os.path.dirname(declaration.path))
|
| - h_file_path = os.path.join(dirname, declaration.view_model_h_name)
|
| - cc_file_path = os.path.join(dirname, declaration.view_model_cc_name)
|
| - return [h_file_path, cc_file_path]
|
| -
|
| -def Gen(declaration, destination):
|
| - h_file_path, cc_file_path = ListOutputs(declaration, destination)
|
| - util.CreateDirIfNotExists(os.path.dirname(h_file_path))
|
| - open(h_file_path, 'w').write(GenHFile(declaration))
|
| - open(cc_file_path, 'w').write(GenCCFile(declaration))
|
| -
|
|
|