Creates an editor in a separate window, specific for the component
        type this delegate represents. :qtdoc:`Re-implemented<QStyledItemDelegate.createEditor>`

def createEditor(self, parent, option, index):
        """Creates an editor in a separate window, specific for the component
        type this delegate represents. :qtdoc:`Re-implemented<QStyledItemDelegate.createEditor>`"""
        # bring up separate window for component parameters
        view = parent.parentWidget()
        component = view.model().data(index)

        if component is not None:
            editor = component.showEditor()
        else:
            print 'delegate data type', type(component)
            raise Exception('UnknownDelegateType')

        # connect editor to update defaults
        editor.attributesSaved.connect(view.updateDefaults)
        editor.attributesSaved.connect(view.somethingChanged)

        if component.name == 'Vocalization':
            # find any associated file auto-parameters
            files = view.model().autoParams().findFileParam(component)
            if files is not None:
                editor.selectMany(files)
            editor.vocalFilesChanged.connect(view.updateVocalAuto)

        return editor