| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 | 6 |
| 7 from xml.dom import minidom | 7 from xml.dom import minidom |
| 8 from grit.format.policy_templates.writers import plist_helper | 8 from grit.format.policy_templates.writers import plist_helper |
| 9 from grit.format.policy_templates.writers import xml_formatted_writer | 9 from grit.format.policy_templates.writers import xml_formatted_writer |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 '''Class for generating policy templates in Mac plist format. | 25 '''Class for generating policy templates in Mac plist format. |
| 26 It is used by PolicyTemplateGenerator to write plist files. | 26 It is used by PolicyTemplateGenerator to write plist files. |
| 27 ''' | 27 ''' |
| 28 | 28 |
| 29 STRING_TABLE = 'Localizable.strings' | 29 STRING_TABLE = 'Localizable.strings' |
| 30 TYPE_TO_INPUT = { | 30 TYPE_TO_INPUT = { |
| 31 'string': 'string', | 31 'string': 'string', |
| 32 'int': 'integer', | 32 'int': 'integer', |
| 33 'int-enum': 'integer', | 33 'int-enum': 'integer', |
| 34 'string-enum': 'string', | 34 'string-enum': 'string', |
| 35 'string-enum-list': 'array', |
| 35 'main': 'boolean', | 36 'main': 'boolean', |
| 36 'list': 'array', | 37 'list': 'array', |
| 37 'dict': 'dictionary', | 38 'dict': 'dictionary', |
| 38 } | 39 } |
| 39 | 40 |
| 40 def _AddKeyValuePair(self, parent, key_string, value_tag): | 41 def _AddKeyValuePair(self, parent, key_string, value_tag): |
| 41 '''Adds a plist key-value pair to a parent XML element. | 42 '''Adds a plist key-value pair to a parent XML element. |
| 42 | 43 |
| 43 A key-value pair in plist consists of two XML elements next two each other: | 44 A key-value pair in plist consists of two XML elements next two each other: |
| 44 <key>key_string</key> | 45 <key>key_string</key> |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 self._AddStringKeyValuePair(dict, 'pfm_type', | 101 self._AddStringKeyValuePair(dict, 'pfm_type', |
| 101 self.TYPE_TO_INPUT[policy_type]) | 102 self.TYPE_TO_INPUT[policy_type]) |
| 102 if policy_type in ('int-enum', 'string-enum'): | 103 if policy_type in ('int-enum', 'string-enum'): |
| 103 range_list = self._AddKeyValuePair(dict, 'pfm_range_list', 'array') | 104 range_list = self._AddKeyValuePair(dict, 'pfm_range_list', 'array') |
| 104 for item in policy['items']: | 105 for item in policy['items']: |
| 105 if policy_type == 'int-enum': | 106 if policy_type == 'int-enum': |
| 106 element_type = 'integer' | 107 element_type = 'integer' |
| 107 else: | 108 else: |
| 108 element_type = 'string' | 109 element_type = 'string' |
| 109 self.AddElement(range_list, element_type, {}, str(item['value'])) | 110 self.AddElement(range_list, element_type, {}, str(item['value'])) |
| 110 elif policy_type == 'list': | 111 elif policy_type in ('list', 'string-enum-list'): |
| 111 subkeys = self._AddKeyValuePair(dict, 'pfm_subkeys', 'array') | 112 subkeys = self._AddKeyValuePair(dict, 'pfm_subkeys', 'array') |
| 112 subkeys_dict = self.AddElement(subkeys, 'dict') | 113 subkeys_dict = self.AddElement(subkeys, 'dict') |
| 113 subkeys_type = self._AddKeyValuePair(subkeys_dict, 'pfm_type', 'string') | 114 subkeys_type = self._AddKeyValuePair(subkeys_dict, 'pfm_type', 'string') |
| 114 self.AddText(subkeys_type, 'string') | 115 self.AddText(subkeys_type, 'string') |
| 115 | 116 |
| 116 def BeginTemplate(self): | 117 def BeginTemplate(self): |
| 117 self._plist.attributes['version'] = '1' | 118 self._plist.attributes['version'] = '1' |
| 118 dict = self.AddElement(self._plist, 'dict') | 119 dict = self.AddElement(self._plist, 'dict') |
| 119 | 120 |
| 120 app_name = plist_helper.GetPlistFriendlyName(self.config['app_name']) | 121 app_name = plist_helper.GetPlistFriendlyName(self.config['app_name']) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 134 '-//Apple//DTD PLIST 1.0//EN', | 135 '-//Apple//DTD PLIST 1.0//EN', |
| 135 'http://www.apple.com/DTDs/PropertyList-1.0.dtd') | 136 'http://www.apple.com/DTDs/PropertyList-1.0.dtd') |
| 136 return dom_impl.createDocument(None, 'plist', doctype) | 137 return dom_impl.createDocument(None, 'plist', doctype) |
| 137 | 138 |
| 138 def Init(self): | 139 def Init(self): |
| 139 self._doc = self.CreatePlistDocument() | 140 self._doc = self.CreatePlistDocument() |
| 140 self._plist = self._doc.documentElement | 141 self._plist = self._doc.documentElement |
| 141 | 142 |
| 142 def GetTemplateText(self): | 143 def GetTemplateText(self): |
| 143 return self.ToPrettyXml(self._doc) | 144 return self.ToPrettyXml(self._doc) |
| OLD | NEW |