From 6cabbcc21432acdfc57fa30ea6ecd42f14b7853b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 6 Jun 2018 10:37:00 +0200 Subject: [PATCH] [apps/reg] Add cell "Change the regression" --- apps/regression/Makefile | 1 + apps/regression/base.de.i18n | 1 + apps/regression/base.en.i18n | 1 + apps/regression/base.es.i18n | 1 + apps/regression/base.fr.i18n | 1 + apps/regression/base.pt.i18n | 1 + apps/regression/store_controller.h | 3 +- .../regression/store_parameter_controller.cpp | 30 +++++++++++++++++++ apps/regression/store_parameter_controller.h | 23 ++++++++++++++ 9 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 apps/regression/store_parameter_controller.cpp create mode 100644 apps/regression/store_parameter_controller.h diff --git a/apps/regression/Makefile b/apps/regression/Makefile index 137b37fd3..fa4722579 100644 --- a/apps/regression/Makefile +++ b/apps/regression/Makefile @@ -17,6 +17,7 @@ app_objs += $(addprefix apps/regression/,\ regression_context.o\ store.o\ store_controller.o\ + store_parameter_controller.o\ ) app_objs += $(addprefix apps/regression/model/,\ diff --git a/apps/regression/base.de.i18n b/apps/regression/base.de.i18n index 7c79c2df9..c638f2358 100644 --- a/apps/regression/base.de.i18n +++ b/apps/regression/base.de.i18n @@ -10,3 +10,4 @@ YPrediction = "Berechne X" ValueNotReachedByRegression = "Wert wird nicht von der Regression erreicht" NumberOfDots = "Punktanzahl" Covariance = "Kovarianz" +ChangeRegression = "Change regression" diff --git a/apps/regression/base.en.i18n b/apps/regression/base.en.i18n index 9ae54e17c..b03ceef92 100644 --- a/apps/regression/base.en.i18n +++ b/apps/regression/base.en.i18n @@ -10,3 +10,4 @@ YPrediction = "Prediction given Y" ValueNotReachedByRegression = "Value not reached by regression" NumberOfDots = "Number of points" Covariance = "Covariance" +ChangeRegression = "Change regression" diff --git a/apps/regression/base.es.i18n b/apps/regression/base.es.i18n index f988363d6..487485e28 100644 --- a/apps/regression/base.es.i18n +++ b/apps/regression/base.es.i18n @@ -10,3 +10,4 @@ YPrediction = "Prediccion dado Y" ValueNotReachedByRegression = "No se alcanza este valor" NumberOfDots = "Numero de puntos" Covariance = "Covarianza" +ChangeRegression = "Change regression" diff --git a/apps/regression/base.fr.i18n b/apps/regression/base.fr.i18n index bbfdb0167..ddb287afb 100644 --- a/apps/regression/base.fr.i18n +++ b/apps/regression/base.fr.i18n @@ -10,3 +10,4 @@ YPrediction = "Prediction sachant Y" ValueNotReachedByRegression = "Valeur non atteinte par la regression" NumberOfDots = "Nombre de points" Covariance = "Covariance" +ChangeRegression = "Change regression" diff --git a/apps/regression/base.pt.i18n b/apps/regression/base.pt.i18n index 6d4116dbd..9ae7191ba 100644 --- a/apps/regression/base.pt.i18n +++ b/apps/regression/base.pt.i18n @@ -10,3 +10,4 @@ YPrediction = "Predicao dado Y" ValueNotReachedByRegression = "Valor nao alcancado pela regressao" NumberOfDots = "Numero de pontos" Covariance = "Covariancia" +ChangeRegression = "Change regression" diff --git a/apps/regression/store_controller.h b/apps/regression/store_controller.h index cf83809ff..481f3216f 100644 --- a/apps/regression/store_controller.h +++ b/apps/regression/store_controller.h @@ -4,6 +4,7 @@ #include #include "store.h" #include "regression_context.h" +#include "store_parameter_controller.h" #include "../shared/store_controller.h" #include "../shared/store_title_cell.h" @@ -23,7 +24,7 @@ private: Shared::StoreParameterController * storeParameterController() override { return &m_storeParameterController; } Shared::StoreTitleCell * m_titleCells[k_numberOfTitleCells]; RegressionContext m_regressionContext; - Shared::StoreParameterController m_storeParameterController; + StoreParameterController m_storeParameterController; }; } diff --git a/apps/regression/store_parameter_controller.cpp b/apps/regression/store_parameter_controller.cpp new file mode 100644 index 000000000..11732f3ab --- /dev/null +++ b/apps/regression/store_parameter_controller.cpp @@ -0,0 +1,30 @@ +#include "store_parameter_controller.h" +#include "store_controller.h" +#include + +namespace Regression { + +StoreParameterController::StoreParameterController(Responder * parentResponder, Shared::DoublePairStore * store, StoreController * storeController) : + Shared::StoreParameterController(parentResponder, store, storeController), + m_changeRegression(I18n::Message::ChangeRegression) +{ +} + +bool StoreParameterController::handleEvent(Ion::Events::Event event) { + if ((event == Ion::Events::OK || event == Ion::Events::EXE) && selectedRow() == numberOfRows() - 1) { + //TODO + return true; + } + return Shared::StoreParameterController::handleEvent(event); +} + +HighlightCell * StoreParameterController::reusableCell(int index) { + assert(index >= 0); + assert(index < reusableCellCount() - 1); + if (index == reusableCellCount() - 1) { + return &m_changeRegression; + } + return Shared::StoreParameterController::reusableCell(index); +} + +} diff --git a/apps/regression/store_parameter_controller.h b/apps/regression/store_parameter_controller.h new file mode 100644 index 000000000..dd2a4ee54 --- /dev/null +++ b/apps/regression/store_parameter_controller.h @@ -0,0 +1,23 @@ +#ifndef REGRESSION_STORE_PARAMETER_CONTROLLER_H +#define REGRESSION_STORE_PARAMETER_CONTROLLER_H + +#include "../shared/store_parameter_controller.h" + +namespace Regression { + +class StoreController; + +class StoreParameterController : public Shared::StoreParameterController { +public: + StoreParameterController(Responder * parentResponder, Shared::DoublePairStore * store, StoreController * storeController); + bool handleEvent(Ion::Events::Event event) override; + int numberOfRows() override { return Shared::StoreParameterController::numberOfRows() + 1; } + HighlightCell * reusableCell(int index) override; + int reusableCellCount() override { return Shared::StoreParameterController::reusableCellCount() + 1; } +private: + MessageTableCell m_changeRegression; +}; + +} + +#endif