diff --git a/apps/probability/parameters_controller.cpp b/apps/probability/parameters_controller.cpp index 970fa66eb..e1255a075 100644 --- a/apps/probability/parameters_controller.cpp +++ b/apps/probability/parameters_controller.cpp @@ -58,15 +58,18 @@ void ParametersController::ContentView::layoutSubviews() { /* Parameters Controller */ ParametersController::ParametersController(Responder * parentResponder, Law * law) : - ViewController(parentResponder), - m_selectableTableView(SelectableTableView(this, this, Metric::TopMargin, Metric::RightMargin, - Metric::BottomMargin, Metric::LeftMargin)), + FloatParameterController(parentResponder), m_contentView(ContentView(this, &m_selectableTableView)), m_law(law), m_buttonSelected(false) { } +ExpressionTextFieldDelegate * ParametersController::textFieldDelegate() { + ExpressionTextFieldDelegate * myApp = (ExpressionTextFieldDelegate *)app(); + return myApp; +} + View * ParametersController::view() { return &m_contentView; } @@ -81,14 +84,16 @@ bool ParametersController::handleEvent(Ion::Events::Event event) { m_contentView.button()->setBackgroundColor(Palette::FocusCellBackgroundColor); m_selectableTableView.deselectTable(); app()->setFirstResponder(m_contentView.button()); + return true; } if (event == Ion::Events::Up && m_buttonSelected) { m_buttonSelected = false; m_contentView.button()->setBackgroundColor(KDColorWhite); m_selectableTableView.selectCellAtLocation(0, numberOfRows()-1); app()->setFirstResponder(&m_selectableTableView); + return true; } - return false; + return FloatParameterController::handleEvent(event); } void ParametersController::didBecomeFirstResponder() { @@ -98,8 +103,7 @@ void ParametersController::didBecomeFirstResponder() { m_contentView.layoutSubviews(); m_buttonSelected = false; m_contentView.button()->setBackgroundColor(KDColorWhite); - m_selectableTableView.selectCellAtLocation(0, 0); - app()->setFirstResponder(&m_selectableTableView); + FloatParameterController::didBecomeFirstResponder(); } int ParametersController::numberOfRows() { @@ -109,9 +113,10 @@ int ParametersController::numberOfRows() { void ParametersController::willDisplayCellForIndex(TableViewCell * cell, int index) { TextMenuListCell * myCell = (TextMenuListCell *) cell; myCell->setText(m_law->parameterNameAtIndex(index)); - char buffer[Constant::FloatBufferSizeInScientificMode]; + FloatParameterController::willDisplayCellForIndex(cell, index); + /*char buffer[Constant::FloatBufferSizeInScientificMode]; Float(m_law->parameterValueAtIndex(index)).convertFloatToText(buffer, Constant::FloatBufferSizeInScientificMode, Constant::NumberOfDigitsInMantissaInScientificMode); - myCell->setAccessoryText(buffer); + myCell->setAccessoryText(buffer);*/ } TableViewCell * ParametersController::reusableCell(int index) { @@ -124,8 +129,12 @@ int ParametersController::reusableCellCount() { return m_law->numberOfParameter(); } -KDCoordinate ParametersController::cellHeight() { - return 35; +float ParametersController::parameterAtIndex(int index) { + return m_law->parameterValueAtIndex(index); +} + +void ParametersController::setParameterAtIndex(int parameterIndex, float f) { + m_law->setParameterAtIndex(f, parameterIndex); } } diff --git a/apps/probability/parameters_controller.h b/apps/probability/parameters_controller.h index a68c67295..54f8fb49f 100644 --- a/apps/probability/parameters_controller.h +++ b/apps/probability/parameters_controller.h @@ -2,14 +2,15 @@ #define PROBABILITY_PARAMETERS_CONTROLLER_H #include +#include "../float_parameter_controller.h" #include "law.h" namespace Probability { -class ParametersController : public ViewController, public SimpleListViewDataSource { +class ParametersController : public FloatParameterController { public: ParametersController(Responder * parentResponder, Law * law); - + ExpressionTextFieldDelegate * textFieldDelegate() override; View * view() override; const char * title() const override; bool handleEvent(Ion::Events::Event event) override; @@ -17,10 +18,11 @@ public: int numberOfRows() override; void willDisplayCellForIndex(TableViewCell * cell, int index) override; - KDCoordinate cellHeight() override; TableViewCell * reusableCell(int index) override; int reusableCellCount() override; private: + float parameterAtIndex(int index) override; + void setParameterAtIndex(int parameterIndex, float f) override; class ContentView : public View { public: ContentView(Responder * parentResponder, SelectableTableView * selectableTableView); @@ -38,8 +40,7 @@ private: PointerTextView m_secondParameterDefinition; SelectableTableView * m_selectableTableView; }; - TextMenuListCell m_menuListCell[2]; - SelectableTableView m_selectableTableView; + EditableTextMenuListCell m_menuListCell[2]; ContentView m_contentView; Law * m_law; bool m_buttonSelected;