mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps] Factorize banner view implementation.
Change-Id: Iedc4350d2bed0f1b1c597c2492e028293f58d5f2
This commit is contained in:
@@ -5,7 +5,8 @@ namespace Statistics {
|
||||
|
||||
BoxController::BoxController(Responder * parentResponder, Store * store) :
|
||||
ViewController(parentResponder),
|
||||
m_view(BoxView(store)),
|
||||
m_boxBannerView(BoxBannerView()),
|
||||
m_view(BoxView(store, &m_boxBannerView)),
|
||||
m_store(store)
|
||||
{
|
||||
}
|
||||
@@ -26,7 +27,11 @@ bool BoxController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
if (event == Ion::Events::Left || event == Ion::Events::Right) {
|
||||
int nextSelectedQuantile = event == Ion::Events::Left ? m_view.selectedQuantile()-1 : m_view.selectedQuantile()+1;
|
||||
return m_view.selectQuantile(nextSelectedQuantile);
|
||||
if (m_view.selectQuantile(nextSelectedQuantile)) {
|
||||
reloadBannerView();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -40,6 +45,7 @@ void BoxController::didBecomeFirstResponder() {
|
||||
}
|
||||
m_view.selectMainView(true);
|
||||
m_view.reload();
|
||||
reloadBannerView();
|
||||
}
|
||||
|
||||
bool BoxController::isEmpty() {
|
||||
@@ -60,4 +66,32 @@ Responder * BoxController::tabController() const {
|
||||
return (parentResponder()->parentResponder()->parentResponder());
|
||||
}
|
||||
|
||||
void BoxController::reloadBannerView() {
|
||||
const char * calculationName[5] = {"Minimum", "Premier quartile", "Mediane", "Troisieme quartile", "Maximum"};
|
||||
m_boxBannerView.setLegendAtIndex((char *)calculationName[m_view.selectedQuantile()], 0);
|
||||
|
||||
char buffer[Constant::FloatBufferSizeInScientificMode];
|
||||
float calculation = 0.0f;
|
||||
switch(m_view.selectedQuantile()) {
|
||||
case 0:
|
||||
calculation = m_store->minValue();
|
||||
break;
|
||||
case 1:
|
||||
calculation = m_store->firstQuartile();
|
||||
break;
|
||||
case 2:
|
||||
calculation = m_store->median();
|
||||
break;
|
||||
case 3:
|
||||
calculation = m_store->thirdQuartile();
|
||||
break;
|
||||
case 4:
|
||||
calculation = m_store->maxValue();
|
||||
break;
|
||||
}
|
||||
Float(calculation).convertFloatToText(buffer, Constant::FloatBufferSizeInScientificMode, Constant::NumberOfDigitsInMantissaInScientificMode);
|
||||
m_boxBannerView.setLegendAtIndex(buffer, 1);
|
||||
m_boxBannerView.layoutSubviews();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user