void LoanAssumptionDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const {
    if (!index.data(Qt::UserRole).isNull()) {
        switch (index.data(Qt::UserRole).toInt()) {
        case static_cast<qint8>(AssumptionType::DoubleAssumption) :
        case static_cast<qint8>(AssumptionType::DoubleAssumption0To100) :
            qobject_cast<QDoubleSpinBox*>(editor)->setValue(index.model()->data(index, Qt::EditRole).toDouble());
            break;
        case static_cast<qint8>(AssumptionType::IntegerAssumption) :
            qobject_cast<QSpinBox*>(editor)->setValue(index.model()->data(index, Qt::EditRole).toInt());
            break;
        case static_cast<qint8>(AssumptionType::BloombergVectorAssumption) :
        case static_cast<qint8>(AssumptionType::IntegerVectorAssumption) :
        case static_cast<qint8>(AssumptionType::DayCountVectorAssumption) :
            qobject_cast<QLineEdit*>(editor)->setText(index.model()->data(index, Qt::EditRole).toString());
            break;
        default:
            return;
        }
        emit Edited();
    }
}
void AssumptionsComboDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const {
	model->setData(index, (static_cast<QComboBox*>(editor))->currentData(), Qt::UserRole);
	model->setData(index, (static_cast<QComboBox*>(editor))->currentText(), Qt::EditRole);
	emit Edited();
}