def __init__(self, *args, **kwargs): styles = kwargs.get('styles', {}) self.update_draw_bullets_methods(styles) global map_types_item self.map_types_item = setup_map_types_item(item_types_map) Tree.__init__(self, *args, **kwargs) for t in self.item_types: if 'create_%s'%t.__name__ in globals().keys(): setattr(self, 'create_%s'%t.__name__, globals()['create_%s'%t.__name__])
item_types_map = {TAG_Byte: ("Byte", IntField, 0), TAG_Double: ("Floating point", FloatField, 0.0), TAG_Float: ("Floating point", FloatField, 0.0), TAG_Int: ("Integral", IntField, 0), TAG_Long: ("Long", IntField, 0), TAG_Short: ("Short", IntField, 0), TAG_String: ("String", TextFieldWrapped, ""), TAG_List: ("List", TAG_List_Type, None), TAG_Compound: ("Compound", None, None), TAG_Byte_Array: ("Byte Array", TextFieldWrapped, ""), TAG_Int_Array: ("Int Array", TextFieldWrapped, ""), TAG_Short_Array: ("Short Array", TextFieldWrapped, ""), } map_types_item = setup_map_types_item(item_types_map) TAG_List_Type.choices = map_types_item.keys() #----------------------------------------------------------------------------- def create_base_item(self, i_type, i_name, i_value): return i_name, i_type(type(item_types_map[i_type][2])(i_value), i_name) create_TAG_Byte = create_TAG_Int = create_TAG_Short = create_TAG_Long = \ create_TAG_String = create_TAG_Double = create_TAG_Float = create_base_item def create_TAG_Compound(self, i_type, i_name, i_value): return i_name, i_type([], i_name) def create_TAG_List(self, i_type, i_name, i_value): return i_name, i_type([], i_name, globals()[map_types_item[i_value][0].__name__.upper()])