diff --git a/apps/shared.de.i18n b/apps/shared.de.i18n index 113bd5e36..12cc7f5ae 100644 --- a/apps/shared.de.i18n +++ b/apps/shared.de.i18n @@ -14,6 +14,7 @@ Deviation = "Varianz" DisplayValues = "Werte anzeigen" ExitExamMode1 = "Wollen Sie den Testmodus " ExitExamMode2 = "verlassen?" +FillWithFormula = "Fill with formula" ForbiddenValue = "Verbotener Wert" FunctionColumn = "0(0) Spalte" FunctionOptions = "Optionen Funktion" diff --git a/apps/shared.en.i18n b/apps/shared.en.i18n index d79ebdd48..c1bf80b6b 100644 --- a/apps/shared.en.i18n +++ b/apps/shared.en.i18n @@ -14,6 +14,7 @@ Deviation = "Variance" DisplayValues = "Display values" ExitExamMode1 = "Exit the exam " ExitExamMode2 = "mode?" +FillWithFormula = "Fill with formula" ForbiddenValue = "Forbidden value" FunctionColumn = "0(0) column" FunctionOptions = "Function options" diff --git a/apps/shared.es.i18n b/apps/shared.es.i18n index bb8ae627a..77e646102 100644 --- a/apps/shared.es.i18n +++ b/apps/shared.es.i18n @@ -14,6 +14,7 @@ Deviation = "Varianza" DisplayValues = "Visualizar los valores" ExitExamMode1 = "Salir del modo " ExitExamMode2 = "examen ?" +FillWithFormula = "Fill with formula" ForbiddenValue = "Valor prohibido" FunctionColumn = "Columna 0(0)" FunctionOptions = "Opciones de la funcion" diff --git a/apps/shared.fr.i18n b/apps/shared.fr.i18n index 48126b6ca..1548bed93 100644 --- a/apps/shared.fr.i18n +++ b/apps/shared.fr.i18n @@ -14,6 +14,7 @@ Deviation = "Variance" DisplayValues = "Afficher les valeurs" ExitExamMode1 = "Voulez-vous sortir " ExitExamMode2 = "du mode examen ?" +FillWithFormula = "Fill with formula" ForbiddenValue = "Valeur interdite" FunctionColumn = "Colonne 0(0)" FunctionOptions = "Options de la fonction" diff --git a/apps/shared.pt.i18n b/apps/shared.pt.i18n index da794f9ff..6742fd2fd 100644 --- a/apps/shared.pt.i18n +++ b/apps/shared.pt.i18n @@ -14,6 +14,7 @@ Deviation = "Variancia" DisplayValues = "Exibir os valores" ExitExamMode1 = "Voce quer sair do modo de " ExitExamMode2 = "exame ?" +FillWithFormula = "Fill with formula" ForbiddenValue = "Valor proibida" FunctionColumn = "Coluna 0(0)" FunctionOptions = "Opcoes de funcao" diff --git a/apps/shared/store_controller.cpp b/apps/shared/store_controller.cpp index 0dc5b2da7..3b2fcd304 100644 --- a/apps/shared/store_controller.cpp +++ b/apps/shared/store_controller.cpp @@ -14,10 +14,14 @@ StoreController::StoreController(Responder * parentResponder, FloatPairStore * s ButtonRowDelegate(header, nullptr), m_editableCells{}, m_store(store), - m_storeParameterController(this, store) + m_storeParameterController(this, store, this) { } +void StoreController::displayFormulaInput() { + +} + bool StoreController::textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) { AppsContainer * appsContainer = ((TextFieldDelegateApp *)app())->container(); Context * globalContext = appsContainer->globalContext(); diff --git a/apps/shared/store_controller.h b/apps/shared/store_controller.h index 59ed0bea8..8019a9428 100644 --- a/apps/shared/store_controller.h +++ b/apps/shared/store_controller.h @@ -13,6 +13,8 @@ class StoreController : public EditableCellTableViewController, public ButtonRow public: StoreController(Responder * parentResponder, FloatPairStore * store, ButtonRowController * header); + void displayFormulaInput(); + // TextFieldDelegate bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; @@ -57,6 +59,7 @@ protected: StoreParameterController m_storeParameterController; private: bool cellShouldBeTransparent(int i, int j); + }; } diff --git a/apps/shared/store_parameter_controller.cpp b/apps/shared/store_parameter_controller.cpp index 2bceea42e..6625dd84e 100644 --- a/apps/shared/store_parameter_controller.cpp +++ b/apps/shared/store_parameter_controller.cpp @@ -1,17 +1,20 @@ #include "store_parameter_controller.h" +#include "store_controller.h" #include namespace Shared { -StoreParameterController::StoreParameterController(Responder * parentResponder, FloatPairStore * store) : +StoreParameterController::StoreParameterController(Responder * parentResponder, FloatPairStore * store, StoreController * storeController) : ViewController(parentResponder), m_deleteColumn(I18n::Message::ClearColumn), + m_fillWithFormula(I18n::Message::FillWithFormula), #if COPY_IMPORT_LIST m_copyColumn(I18n::Message::CopyColumnInList), m_importList(I18n::Message::ImportList), #endif m_selectableTableView(this, this, this), m_store(store), + m_storeController(storeController), m_xColumnSelected(true), m_series(0) { @@ -40,12 +43,20 @@ bool StoreParameterController::handleEvent(Ion::Events::Event event) { stack->pop(); return true; } + case 1: + { + m_storeController->displayFormulaInput(); + StackViewController * stack = ((StackViewController *)parentResponder()); + stack->pop(); + return true; + } + #if COPY_IMPORT_LIST /* TODO: implement copy column and import list */ - case 1: - return true; case 2: return true; + case 3: + return true; #endif default: assert(false); @@ -58,7 +69,7 @@ bool StoreParameterController::handleEvent(Ion::Events::Event event) { HighlightCell * StoreParameterController::reusableCell(int index) { assert(index >= 0); assert(index < k_totalNumberOfCell); - HighlightCell * cells[] = {&m_deleteColumn};// {&m_deleteColumn, &m_copyColumn, &m_importList}; + HighlightCell * cells[] = {&m_deleteColumn, &m_fillWithFormula};// {&m_deleteColumn, &m_fillWithFormula, &m_copyColumn, &m_importList}; return cells[index]; } diff --git a/apps/shared/store_parameter_controller.h b/apps/shared/store_parameter_controller.h index 3efdf94a5..c7df1c8a0 100644 --- a/apps/shared/store_parameter_controller.h +++ b/apps/shared/store_parameter_controller.h @@ -7,9 +7,11 @@ namespace Shared { +class StoreController; + class StoreParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource { public: - StoreParameterController(Responder * parentResponder, FloatPairStore * store); + StoreParameterController(Responder * parentResponder, FloatPairStore * store, StoreController * storeController); void selectXColumn(bool xColumnSelected) { m_xColumnSelected = xColumnSelected; } void selectSeries(int series) { m_series = series; } View * view() override { return &m_selectableTableView; } @@ -22,15 +24,17 @@ public: int reusableCellCount() override { return k_totalNumberOfCell; } private: #if COPY_IMPORT_LIST - constexpr static int k_totalNumberOfCell = 3; + constexpr static int k_totalNumberOfCell = 4; MessageTableCellWithChevron m_copyColumn; MessageTableCellWithChevron m_importList; #else - constexpr static int k_totalNumberOfCell = 1; + constexpr static int k_totalNumberOfCell = 2; #endif MessageTableCell m_deleteColumn; + MessageTableCell m_fillWithFormula; SelectableTableView m_selectableTableView; FloatPairStore * m_store; + StoreController * m_storeController; bool m_xColumnSelected; int m_series; };