def _create_default_field_editor(self, field, parent=None, **kwargs):
        from app import APP
        editor_class_name = field.editor_class
        default_class = EntryWidgets.Text
        options = {}
        prefix = ''
        suffix = ''

        if self.form.is_field_fixed(field.name):
            editor_class_name = 'Static'

        if field.isarray:
            if field.arrayof:
                editor_class_name = "List"
                prefix = "Array"
                options['recordlist'] = RecordList(field.arrayof).reload()
                default_class = EntryWidgets.ArrayCombo
            else:
                prefix = 'Array'
                default_class = EntryWidgets.ArrayText
        elif field.reference:
            suffix = 'Reference'
            default_class = EntryWidgets.ListReference

        wanted_class_name = prefix + editor_class_name + suffix
        print field, field.editor_class, wanted_class_name

        if hasattr(EntryWidgets, wanted_class_name):
            editor_class = getattr(EntryWidgets, wanted_class_name)
        elif APP.getExtraDataEditor(wanted_class_name):
            editor_class = APP.getExtraDataEditor(wanted_class_name)
        else:
            editor_class = default_class

        editor = editor_class(field,
                              parent,
                              variable=self.form.getvar(field.name),
                              **options)
        return editor
    def _create_default_field_editor (self, field, parent=None, **kwargs):
        from app import APP
        editor_class_name = field.editor_class
        default_class = EntryWidgets.Text
        options = {}
        prefix = ''
        suffix = ''

        if self.form.is_field_fixed ( field.name ):
            editor_class_name = 'Static'
            
        if field.isarray:
            if field.arrayof:
                editor_class_name = "List"
                prefix = "Array"
                options['recordlist'] = RecordList ( field.arrayof ).reload()           
                default_class = EntryWidgets.ArrayCombo
            else:
                prefix = 'Array'
                default_class = EntryWidgets.ArrayText
        elif field.reference:
            suffix = 'Reference'
            default_class = EntryWidgets.ListReference
        
        wanted_class_name = prefix + editor_class_name + suffix
        print field, field.editor_class, wanted_class_name
        
        if hasattr (EntryWidgets,wanted_class_name ):
            editor_class = getattr(EntryWidgets, wanted_class_name)
        elif APP.getExtraDataEditor (wanted_class_name):
            editor_class = APP.getExtraDataEditor (wanted_class_name)
        else:
            editor_class = default_class
            
        editor = editor_class (field, parent, variable = self.form.getvar(field.name), **options )        
        return editor