private:
/**
- * @brief Creates new "Edit/Create" alarm page.
+ * @brief Creates new "Create" alarm page.
*/
- void CreateNewAlarmPage(utils::Event &e);
+ void CreateNewAlarmPage();
/**
* @brief Creates new "Delete" alarm page.
*/
- void CreateNewDeleteAlarmsPage(utils::Event &e);
+ void CreateNewDeleteAlarmsPage();
/**
* @brief Creates new "Delete" page in world clock;
- * @param e event data
*/
- void CreateNewWorldClockDeletePage(utils::Event &e);
+ void CreateNewWorldClockDeletePage();
/**
* @brief Creates new "Reorder" page in world clock;
- * @param e event data
*/
- void CreateNewWorldClockReorderPage(utils::Event &e);
+ void CreateNewWorldClockReorderPage();
model::AlarmProvider *provider_ = nullptr;
/**
* @brief Creates new "Edit" alarm page.
*/
- void CreateEditAlarmPage(utils::Event &e);
+ void CreateEditAlarmPage(model::AlarmList::Iterator it);
/**
* @brief global events subscriptions vector
+++ /dev/null
-/*
-* Copyright 2016 Samsung Electronics Co., Ltd
-*
-* Licensed under the Flora License, Version 1.1 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://floralicense.org/license/
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#ifndef _CLOCK_ALARM_EVENT_H_
-#define _CLOCK_ALARM_EVENT_H_
-
-#include "Utils/EventBus.h"
-#include "Model/AlarmList.h"
-
-namespace model {
- /**
- * @brief Global event that is broadcast request to create new
- * alarm.
- */
- class AlarmCreateRequestEvent : public utils::Event {
- };
-
- /**
- * @brief Global event that is broadcast request to delete alarms.
- */
- class AlarmDeleteRequestEvent : public utils::Event {
- };
-
- /**
- * @brief Global event that is broadcast information that alarm
- * data should be modified.
- */
- class AlarmEditRequestEvent : public utils::Event {
- public:
- /**
- * @brief Creates AlarmEditRequestEvent instance
- * @param[in] list alarm list which is a target of edition.
- * @param[in] it iterator to element within list.
- */
- AlarmEditRequestEvent(model::AlarmList& list, model::AlarmList::Iterator it)
- : alarm_list_(list), it_(it) {}
-
- /**
- * @brief Gets modification target
- * @return List with alarm to be edited.
- */
- model::AlarmList &GetAlarmList() { return alarm_list_;}
-
- /**
- * @brief Gets modification target iterator
- * @return Alarm to be edited.
- */
- model::AlarmList::Iterator &GetIterator() { return it_;}
- private:
- model::AlarmList &alarm_list_;
- model::AlarmList::Iterator it_;
- };
-
- /**
- * @brief Global event that is broadcast information that alarm
- * data has been modified.
- */
- class AlarmEditedEvent : public utils::Event {
- public:
- /**
- * @brief Creates AlarmEditedEvent instance
- * @param[in] alarm alarm which has been edited.
- */
- AlarmEditedEvent(model::Alarm& alarm) : alarm_(alarm) {}
- /**
- * @brief Gets modification target
- * @return Alarm which have been edited.
- */
- Alarm &GetAlarm() const { return alarm_;}
- private:
- Alarm &alarm_;
- };
-} /* model */
-
-#endif
+++ /dev/null
-/*
-* Copyright 2016 Samsung Electronics Co., Ltd
-*
-* Licensed under the Flora License, Version 1.1 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://floralicense.org/license/
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#ifndef _CLOCK_MODEL_WORLDCLOCKEVENT_H_
-#define _CLOCK_MODEL_WORLDCLOCKEVENT_H_
-
-#include "Utils/EventBus.h"
-#include "Model/Location.h"
-
-namespace model {
-
- /**
- * @brief class for exact Event firing.
- */
- class WorldClockDeleteRequestEvent: public utils::Event {
- };
-
- /**
- * @brief class for exact Event firing.
- */
- class WorldClockReorderRequestEvent: public utils::Event {
- };
-}
-
-#endif /* _CLOCK_MODEL_WORLDCLOCKEVENT_H_ */
* @brief Constructs object instance
* @param view AlarmListView instance which presenter will be managing
* @param list AlarmList instance which presenter will be managing
+ * @param navigateToCreateAlarms callback triggered when navigation
+ * to alarm's creation page is requested.
+ * @param navigateToDeleteAlarms callback triggered when navigation
+ * to alarm's delete page is requested.
+ * @param navigateToEditAlarms callback triggered when navigation
+ * to alarm edition page is requested.
*/
- AlarmListPresenter(view::AlarmListView &view, model::AlarmList &list);
+ AlarmListPresenter(
+ view::AlarmListView &view,
+ model::AlarmList &list,
+ std::function<void(void)> navigateToCreateAlarms,
+ std::function<void(void)> navigateToDeleteAlarms,
+ std::function<void(model::AlarmList::Iterator)> navigateToEditAlarms);
~AlarmListPresenter();
private:
view::AlarmListView &view_;
std::map<int, model::AlarmList::Iterator> alarms_;
std::vector<utils::Connection> connections_;
std::vector<utils::Connection> object_connections_;
+ std::function<void(void)> navigateToCreateAlarms_;
+ std::function<void(void)> navigateToDeleteAlarms_;
+ std::function<void(model::AlarmList::Iterator it)> navigateToEditAlarms_;
bool CheckModelSizeLimit();
void OnMenuButtonClicked();
};
* @brief Object Constructor
*
* @param[in] view World Clock tab view object
- *
* @param[in] model World Clock tab model
+ * @param[in] navigateToWorldClockDeletePage callback triggered
+ * when navigation to location delete page is requested.
+ * @param[in] navigateToWorldReorderPage triggered
+ * when navigation to locations reorder page is requested.
+ *
*/
- WorldClockPresenter(view::WorldClockView &view, model::WorldClock &model);
+ WorldClockPresenter(view::WorldClockView &view, model::WorldClock &model,
+ std::function<void(void)> navigateToWorldClockDeletePage,
+ std::function<void(void)> navigateToWorldReorderPage
+ );
/**
* @brief Destructs class object
private:
view::WorldClockView &view_;
model::WorldClock &model_;
+ std::function<void(void)> navigateToWorldClockDeletePage_;
+ std::function<void(void)> navigateToWorldReorderPage_;
/**
* @brief Updates background of locations list. If list is empty proper message is displayed
#include "Utils/EventBus.h"
#include "View/EditAlarmView.h"
#include "Presenter/EditAlarmPresenter.h"
-#include "Model/AlarmEvent.h"
#include "View/DeleteAlarmView.h"
#include "Presenter/DeleteAlarmPresenter.h"
-#include "Model/WorldClockEvents.h"
#include "View/WorldClockDeleteItemsView.h"
#include "Presenter/WorldClockDeletePresenter.h"
controller->world_clock_model_ = new model::WorldClock();
controller->world_clock_presenter_ = new WorldClockPresenter(
*(WorldClockView *)mainView->GetView(WORLD_CLOCK),
- *controller->world_clock_model_);
+ *controller->world_clock_model_,
+ std::bind(&MainController::CreateNewWorldClockDeletePage, controller),
+ std::bind(&MainController::CreateNewWorldClockReorderPage, controller));
controller->stop_watch_model_ = new model::StopWatch();
controller->stop_watch_presenter_ = new StopWatchPresenter(
world_clock_delete_page_ = new WorldClockDeleteItemsView(*main_view_);
world_clock_reorder_page_ = new WorldClockReorderView(*main_view_);
- alarm_presenter_ = new AlarmListPresenter(*(AlarmListView*)(main_view_->GetView(ALARM)), provider_->GetAlarms());
+ alarm_presenter_ = new AlarmListPresenter(*(AlarmListView*)(main_view_->GetView(ALARM)), provider_->GetAlarms(),
+ std::bind(&MainController::CreateNewAlarmPage, this),
+ std::bind(&MainController::CreateNewDeleteAlarmsPage, this),
+ std::bind(&MainController::CreateEditAlarmPage, this, _1));
idler_ = ecore_idler_add(IdlerCb, this);
-
- connections_.push_back(utils::EventBus::AddListener<AlarmCreateRequestEvent>(
- std::bind(&MainController::CreateNewAlarmPage, this, _1)));
- connections_.push_back(utils::EventBus::AddListener<AlarmDeleteRequestEvent>(
- std::bind(&MainController::CreateNewDeleteAlarmsPage, this, _1)));
- connections_.push_back(utils::EventBus::AddListener<AlarmEditRequestEvent>(
- std::bind(&MainController::CreateEditAlarmPage, this, _1)));
-
- connections_.push_back(utils::EventBus::AddListener<WorldClockDeleteRequestEvent>(
- std::bind(&MainController::CreateNewWorldClockDeletePage, this, _1)));
-
- connections_.push_back(utils::EventBus::AddListener<WorldClockReorderRequestEvent>(
- std::bind(&MainController::CreateNewWorldClockReorderPage, this, _1)));
-
initialized_ = true;
}
initialized_ = false;
}
-void MainController::CreateNewAlarmPage(Event &e)
+void MainController::CreateNewAlarmPage()
{
delete edit_presenter_;
edit_presenter_ = new EditAlarmPresenter(*edit_page_, provider_->GetAlarms());
}
-void MainController::CreateEditAlarmPage(Event &e)
+void MainController::CreateEditAlarmPage(AlarmList::Iterator it)
{
- AlarmEditRequestEvent &ev = (AlarmEditRequestEvent&)e;
-
delete edit_presenter_;
- edit_presenter_ = new EditAlarmPresenter(*edit_page_, ev.GetAlarmList(), ev.GetIterator());
+ edit_presenter_ = new EditAlarmPresenter(*edit_page_, provider_->GetAlarms(), it);
}
-void MainController::CreateNewDeleteAlarmsPage(Event &e)
+void MainController::CreateNewDeleteAlarmsPage()
{
delete delete_presenter_;
delete_presenter_ = new DeleteAlarmPresenter(*delete_page_, provider_->GetAlarms());
}
-void MainController::CreateNewWorldClockDeletePage(utils::Event &e)
+void MainController::CreateNewWorldClockDeletePage()
{
delete world_clock_delete_presenter_;
world_clock_delete_presenter_ = new WorldClockDeletePresenter(*world_clock_delete_page_, *world_clock_model_);
}
-void MainController::CreateNewWorldClockReorderPage(Event &e)
+void MainController::CreateNewWorldClockReorderPage()
{
delete world_clock_reorder_presenter_;
*/
#include "Presenter/AlarmListPresenter.h"
-#include "Model/AlarmEvent.h"
#include "Utils/EventBus.h"
#include "Utils/Log.h"
#include "Utils/Translate.h"
using std::placeholders::_1;
-AlarmListPresenter::AlarmListPresenter(AlarmListView &v, AlarmList &m) : view_(v), alarm_list_(m)
+AlarmListPresenter::AlarmListPresenter(AlarmListView &view, AlarmList &list, std::function<void(void)> navigateToCreateAlarms,
+ std::function<void(void)> navigateToDeleteAlarms,
+ std::function<void(AlarmList::Iterator)> navigateToEditAlarms) :
+ view_(view),
+ alarm_list_(list),
+ navigateToCreateAlarms_(navigateToCreateAlarms),
+ navigateToDeleteAlarms_(navigateToDeleteAlarms),
+ navigateToEditAlarms_(navigateToEditAlarms)
{
connections_.push_back(
view_.OnAddButtonClicked.Connect(std::bind(&AlarmListPresenter::OnAddButtonClicked, this)));
if (it == alarms_.end())
return;
- AlarmList::Iterator alarm_it = it->second;
- AlarmEditRequestEvent ev(alarm_list_, alarm_it);
- EventBus::FireEvent(ev);
+ if (navigateToEditAlarms_) navigateToEditAlarms_(it->second);
}
void AlarmListPresenter::OnAddButtonClicked()
{
- AlarmCreateRequestEvent ev;
-
if (alarm_list_.Size() == alarm_list_.MaxSize()) {
std::string text = Translate::Sprintf("IDS_ALM_BODY_MAXIMUM_NUMBER_OF_ALARMS_HPD_REACHED",
alarm_list_.MaxSize());
view_.ShowPopup(text);
return;
}
- EventBus::FireEvent(ev);
+
+ if (navigateToCreateAlarms_) navigateToCreateAlarms_();
}
void AlarmListPresenter::OnItemActiveStatusChanged(int idx)
void AlarmListPresenter::OnDeleteItemClicked()
{
- AlarmDeleteRequestEvent ev;
- EventBus::FireEvent(ev);
+ if (navigateToDeleteAlarms_) navigateToDeleteAlarms_();
}
void AlarmListPresenter::OnMenuButtonClicked()
*/
#include "Common/Defines.h"
-#include "Model/AlarmEvent.h"
#include "Model/AlarmProvider.h"
#include "Presenter/EditAlarmPresenter.h"
#include "Utils/Log.h"
*/
#include "Presenter/WorldClockDeletePresenter.h"
-#include "Model/WorldClockEvents.h"
#include "Utils/Log.h"
using namespace presenter;
#include "Presenter/WorldClockPresenter.h"
#include "Presenter/WorldClockDeletePresenter.h"
-#include "Model/WorldClockEvents.h"
#include "Model/WorldClock.h"
-#include "Utils/EventBus.h"
#include "Utils/Log.h"
#include "Utils/PopupManager.h"
#include "Utils/Translate.h"
namespace presenter {
-WorldClockPresenter::WorldClockPresenter(WorldClockView &view, WorldClock &model)
- : view_(view), model_(model)
+WorldClockPresenter::WorldClockPresenter(WorldClockView &view, WorldClock &model,
+ std::function<void(void)> navigateToWorldClockDeletePage,
+ std::function<void(void)> navigateToWorldReorderPage) :
+ view_(view),
+ model_(model),
+ navigateToWorldClockDeletePage_(navigateToWorldClockDeletePage),
+ navigateToWorldReorderPage_(navigateToWorldReorderPage)
{
connections_.push_back(view_.OnLeftArrowClicked.Connect(
std::bind(&WorldClockPresenter::OnLeftArrowButtonClicked, this)));
void WorldClockPresenter::OnMoreDeleteButtonClicked()
{
- WorldClockDeleteRequestEvent ev;
- EventBus::FireEvent(ev);
+ if (navigateToWorldClockDeletePage_) navigateToWorldClockDeletePage_();
}
void WorldClockPresenter::OnMoreReorderButtonClicked()
{
- WorldClockReorderRequestEvent ev;
- EventBus::FireEvent(ev);
+ if (navigateToWorldReorderPage_) navigateToWorldReorderPage_();
}
} /* presenter */