예제 #1
0
    def _load_classes(self, project):
        clazze_objs = project.object_manager.get_objects(editor_types.CLAZZ_NAME_CLAZZ)
        for clazz_obj in clazze_objs:
            atstruct, data = clazz_obj.clazz.atstruct, clazz_obj.raw_data

            name = data['name']
            attrs = self._parse_struct_attrs(data['attrs'], project)
            exporter = data.get('exporter', u'')
            verifier = data.get('verifier', u'')
#                 # Add reserved attrs: tags & export
#                 attrs.insert(0, Attr('tags',   ATList(ATStr(1), unique=True), 'TAGS') )
#                 attrs.insert(0, Attr('export', ATBool(0), 'export?') )
#
#                 # move "name" & "id" to front
#                 for attr_name in ['name', 'id']:
#                     for attr in attrs:
#                         if attr.name == attr_name:
#                             attrs.remove(attr)
#                             attrs.insert(0, attr)
#                             break

            str_template = clazz_obj.get_attr_value('str_template')
            struct = Struct(name, attrs, str_template=str_template, exporter=exporter, verifier=verifier)
            clazz = Clazz(ATStruct(struct))

            # extra settings
            clazz.unique_attrs = clazz_obj.get_attr_value('unique_attrs',)
            # clazz.name_attr = clazz_obj.get_attr_value('name_attr')
            clazz.max_number = clazz_obj.get_attr_value('max_number')
            clazz.min_number = clazz_obj.get_attr_value('min_number')

            icon = clazz_obj.get_attr_value('icon')
            if icon:
                # icon path is relative to editor project root
                icon = util.normpath(icon)
                if not os.path.isabs(icon):
                    icon = util.normpath(os.path.join(const.PROJECT_FOLDER_TYPE, icon))
                clazz.icon = icon

            self._clazzes[clazz.name] = clazz
예제 #2
0
 def get_attr_data(self):
     from structer import util
     path = util.normpath(self.GetPath())       
     return get_relative_path(path, self.project.path)
예제 #3
0
 def get_attr_data(self):
     from structer import util
     path = util.normpath(self.GetPath())
     return get_relative_path(path, self.project.path)