[apps/graph/list] Use selectable table view in parameter controller

Change-Id: I833d7775ec77d8900e378a3fa536f66ce5b4902b
This commit is contained in:
Émilie Feral
2016-10-25 15:38:21 +02:00
parent 49862196c8
commit b1b9af61f9
2 changed files with 7 additions and 32 deletions

View File

@@ -8,9 +8,8 @@ ParameterController::ParameterController(Responder * parentResponder, FunctionSt
m_colorCell(ListViewCell((char*)"Couleur de la fonction")),
m_enableCell(SwitchListViewCell((char*)"Activer/Desactiver")),
m_deleteCell(ListViewCell((char*)"Supprimer la fonction")),
m_tableView(TableView(this,Metric::TopMargin, Metric::RightMargin,
m_selectableTableView(SelectableTableView(this, this, Metric::TopMargin, Metric::RightMargin,
Metric::BottomMargin, Metric::LeftMargin)),
m_activeCell(0),
m_functionStore(functionStore)
{
}
@@ -20,12 +19,12 @@ const char * ParameterController::title() const {
}
View * ParameterController::view() {
return &m_tableView;
return &m_selectableTableView;
}
void ParameterController::didBecomeFirstResponder() {
m_tableView.reloadData();
setActiveCell(0);
m_selectableTableView.setSelectedCellAtLocation(0, 0);
app()->setFirstResponder(&m_selectableTableView);
}
void ParameterController::willDisplayCellForIndex(TableViewCell * cell, int index) {
@@ -35,33 +34,12 @@ void ParameterController::willDisplayCellForIndex(TableViewCell * cell, int inde
}
}
void ParameterController::setActiveCell(int index) {
if (index < 0 || index >= k_totalNumberOfCell) {
return;
}
ListViewCell * previousCell = (ListViewCell *)(m_tableView.cellAtLocation(0, m_activeCell));
previousCell->setHighlighted(false);
m_activeCell = index;
m_tableView.scrollToCell(0, index);
ListViewCell * cell = (ListViewCell *)(m_tableView.cellAtLocation(0, index));
cell->setHighlighted(true);
}
void ParameterController::setFunction(Function * function) {
m_function = function;
}
bool ParameterController::handleEvent(Ion::Events::Event event) {
switch (event) {
case Ion::Events::Event::DOWN_ARROW:
setActiveCell(m_activeCell+1);
return true;
case Ion::Events::Event::UP_ARROW:
setActiveCell(m_activeCell-1);
return true;
case Ion::Events::Event::ENTER:
return handleEnter();
default:
@@ -70,7 +48,7 @@ bool ParameterController::handleEvent(Ion::Events::Event event) {
}
bool ParameterController::handleEnter() {
switch (m_activeCell) {
switch (m_selectableTableView.selectedRow()) {
case 0:
{
return true;
@@ -78,7 +56,7 @@ bool ParameterController::handleEnter() {
case 1:
{
m_function->setActive(!m_function->isActive());
m_tableView.reloadData();
m_selectableTableView.reloadData();
return true;
}
case 2: