AnovaRepeatedMeasuresForm::AnovaRepeatedMeasuresForm(QWidget *parent) : AnalysisForm("AnovaRepeatedMeasuresForm", parent), ui(new Ui::AnovaRepeatedMeasuresForm) { ui->setupUi(this); ui->listAvailableFields->setModel(&_availableVariablesModel); _designTableModel = new TableModelAnovaDesign(this); ui->repeatedMeasuresFactors->setModel(_designTableModel); // this is a hack to allow deleting factors and levels :/ // ideally this would be handled between the TableView and the model // and wouldn't require the surrounding classes' intervention like this connect(ui->repeatedMeasuresFactors, SIGNAL(clicked(QModelIndex)), this, SLOT(anovaDesignTableClicked(QModelIndex))); _withinSubjectCellsListModel = new TableModelAnovaWithinSubjectCells(this); _withinSubjectCellsListModel->setSource(&_availableVariablesModel); _withinSubjectCellsListModel->setVariableTypesSuggested(Column::ColumnTypeScale); _withinSubjectCellsListModel->setVariableTypesAllowed(Column::ColumnTypeScale | Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->repeatedMeasuresCells->setModel(_withinSubjectCellsListModel); _betweenSubjectsFactorsListModel = new TableModelVariablesAssigned(this); _betweenSubjectsFactorsListModel->setSource(&_availableVariablesModel); _betweenSubjectsFactorsListModel->setVariableTypesSuggested(Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->betweenSubjectFactors->setModel(_betweenSubjectsFactorsListModel); _covariatesListModel = new TableModelVariablesAssigned(this); _covariatesListModel->setSource(&_availableVariablesModel); _covariatesListModel->setVariableTypesSuggested(Column::ColumnTypeScale); _covariatesListModel->setVariableTypesAllowed(Column::ColumnTypeScale | Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->covariates->setModel(_covariatesListModel); ui->buttonAssignRMCells->setSourceAndTarget(ui->listAvailableFields, ui->repeatedMeasuresCells); ui->buttonAssignBSFactors->setSourceAndTarget(ui->listAvailableFields, ui->betweenSubjectFactors); ui->buttonAssignCovariates->setSourceAndTarget(ui->listAvailableFields, ui->covariates); _withinSubjectsTermsModel = new TableModelAnovaModel(this); ui->withinModelTerms->setModel(_withinSubjectsTermsModel); connect(_withinSubjectsTermsModel, SIGNAL(termsChanged()), this, SLOT(termsChanged())); _betweenSubjectsTermsModel = new TableModelAnovaModel(this); ui->betweenModelTerms->setModel(_betweenSubjectsTermsModel); connect(_betweenSubjectsTermsModel, SIGNAL(termsChanged()), this, SLOT(termsChanged())); _contrastsModel = new TableModelVariablesOptions(); ui->contrasts->setModel(_contrastsModel); connect(_designTableModel, SIGNAL(designChanging()), this, SLOT(factorsChanging())); connect(_designTableModel, SIGNAL(designChanged()), this, SLOT(withinSubjectsDesignChanged())); connect(_designTableModel, SIGNAL(factorAdded(Terms)), _withinSubjectsTermsModel, SLOT(addFixedFactors(Terms))); connect(_designTableModel, SIGNAL(factorRemoved(Terms)), _withinSubjectsTermsModel, SLOT(removeVariables(Terms))); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignmentsChanging()), this, SLOT(factorsChanging())); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignmentsChanged()), this, SLOT(factorsChanged())); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignedTo(Terms)), _betweenSubjectsTermsModel, SLOT(addFixedFactors(Terms))); connect(_betweenSubjectsFactorsListModel, SIGNAL(unassigned(Terms)), _betweenSubjectsTermsModel, SLOT(removeVariables(Terms))); connect(_covariatesListModel, SIGNAL(assignmentsChanging()), this, SLOT(factorsChanging())); connect(_covariatesListModel, SIGNAL(assignmentsChanged()), this, SLOT(factorsChanged())); connect(_covariatesListModel, SIGNAL(assignedTo(Terms)), _betweenSubjectsTermsModel, SLOT(addCovariates(Terms))); connect(_covariatesListModel, SIGNAL(unassigned(Terms)), _betweenSubjectsTermsModel, SLOT(removeVariables(Terms))); _plotFactorsAvailableTableModel = new TableModelVariablesAvailable(); ui->plotVariables->setModel(_plotFactorsAvailableTableModel); _horizontalAxisTableModel = new TableModelVariablesAssigned(this); _horizontalAxisTableModel->setSource(_plotFactorsAvailableTableModel); ui->plotHorizontalAxis->setModel(_horizontalAxisTableModel); _seperateLinesTableModel = new TableModelVariablesAssigned(this); _seperateLinesTableModel->setSource(_plotFactorsAvailableTableModel); ui->plotSeparateLines->setModel(_seperateLinesTableModel); _seperatePlotsTableModel = new TableModelVariablesAssigned(this); _seperatePlotsTableModel->setSource(_plotFactorsAvailableTableModel); ui->plotSeparatePlots->setModel(_seperatePlotsTableModel); ui->buttonAssignHorizontalAxis->setSourceAndTarget(ui->plotVariables, ui->plotHorizontalAxis); ui->buttonAssignSeperateLines->setSourceAndTarget(ui->plotVariables, ui->plotSeparateLines); ui->buttonAssignSeperatePlots->setSourceAndTarget(ui->plotVariables, ui->plotSeparatePlots); ui->containerModel->hide(); ui->containerFactors->hide(); ui->containerOptions->hide(); ui->containerPostHocTests->hide(); ui->containerDescriptivesPlot->hide(); ui->containerAssumptions->hide(); ui->withinModelTerms->setFactorsLabel("Repeated Measures Components"); ui->betweenModelTerms->setFactorsLabel("Between Subjects Components"); ui->confidenceIntervalInterval->setLabel("Confidence interval"); connect(_designTableModel, SIGNAL(designChanged()), this, SLOT(withinSubjectsDesignChanged())); #ifdef QT_NO_DEBUG ui->groupCompareMainEffects->hide(); #else ui->groupCompareMainEffects->setStyleSheet("background-color: pink ;"); #endif }
AnovaRepeatedMeasuresBayesianForm::AnovaRepeatedMeasuresBayesianForm(QWidget *parent) : AnalysisForm("AnovaRepeatedMeasuresBayesianForm", parent), ui(new Ui::AnovaRepeatedMeasuresBayesianForm) { ui->setupUi(this); ui->listAvailableFields->setModel(&_availableVariablesModel); _designTableModel = new TableModelAnovaDesign(this); ui->repeatedMeasuresFactors->setModel(_designTableModel); // this is a hack to allow deleting factors and levels :/ // ideally this would be handled between the TableView and the model // and wouldn't require the surrounding classes' intervention like this connect(ui->repeatedMeasuresFactors, SIGNAL(clicked(QModelIndex)), this, SLOT(anovaDesignTableClicked(QModelIndex))); _withinSubjectCellsListModel = new TableModelAnovaWithinSubjectCells(this); _withinSubjectCellsListModel->setSource(&_availableVariablesModel); _withinSubjectCellsListModel->setVariableTypesSuggested(Column::ColumnTypeScale); _withinSubjectCellsListModel->setVariableTypesAllowed(Column::ColumnTypeScale | Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->repeatedMeasuresCells->setModel(_withinSubjectCellsListModel); _betweenSubjectsFactorsListModel = new TableModelVariablesAssigned(this); _betweenSubjectsFactorsListModel->setSource(&_availableVariablesModel); _betweenSubjectsFactorsListModel->setVariableTypesSuggested(Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->betweenSubjectFactors->setModel(_betweenSubjectsFactorsListModel); _covariatesListModel = new TableModelVariablesAssigned(this); _covariatesListModel->setSource(&_availableVariablesModel); _covariatesListModel->setVariableTypesSuggested(Column::ColumnTypeScale); _covariatesListModel->setVariableTypesAllowed(Column::ColumnTypeScale | Column::ColumnTypeNominal | Column::ColumnTypeOrdinal); ui->covariates->setModel(_covariatesListModel); ui->buttonAssignFixed->setSourceAndTarget(ui->listAvailableFields, ui->repeatedMeasuresCells); ui->buttonAssignRandom->setSourceAndTarget(ui->listAvailableFields, ui->betweenSubjectFactors); ui->buttonAssignCovariates->setSourceAndTarget(ui->listAvailableFields, ui->covariates); _anovaModel = new TableModelAnovaModel(this); _anovaModel->setPiecesCanBeAssigned(false); ui->modelTerms->setModel(_anovaModel); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignmentsChanging()), this, SLOT(factorsChanging())); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignmentsChanged()), this, SLOT(factorsChanged())); connect(_betweenSubjectsFactorsListModel, SIGNAL(assignedTo(Terms)), _anovaModel, SLOT(addFixedFactors(Terms))); connect(_betweenSubjectsFactorsListModel, SIGNAL(unassigned(Terms)), _anovaModel, SLOT(removeVariables(Terms))); connect(_covariatesListModel, SIGNAL(assignmentsChanging()), this, SLOT(factorsChanging())); connect(_covariatesListModel, SIGNAL(assignmentsChanged()), this, SLOT(factorsChanged())); connect(_covariatesListModel, SIGNAL(assignedTo(Terms)), _anovaModel, SLOT(addCovariates(Terms))); connect(_covariatesListModel, SIGNAL(unassigned(Terms)), _anovaModel, SLOT(removeVariables(Terms))); connect(_designTableModel, SIGNAL(designChanging()), this, SLOT(factorsChanging())); connect(_designTableModel, SIGNAL(designChanged()), this, SLOT(withinSubjectsDesignChanged())); connect(_designTableModel, SIGNAL(factorAdded(Terms)), _anovaModel, SLOT(addFixedFactors(Terms))); connect(_designTableModel, SIGNAL(factorRemoved(Terms)), _anovaModel, SLOT(removeVariables(Terms))); ui->containerModel->hide(); #ifdef QT_DEBUG ui->groupBox->setStyleSheet("QWidget { background-color: pink; }"); #else ui->groupBox->hide(); #endif }