2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiCtrl_PublicDateTimeChangeEvent.cpp
20 * @brief This is the implementation file for the _PublicDateTimeChangeEvent and _PublicDateTimeChangeEventArg classes.
23 #include <FBaseErrors.h>
24 #include <FBaseSysLog.h>
25 #include <FSysSystemTime.h>
26 #include <FUiIDateChangeEventListener.h>
27 #include <FUiIDateTimeChangeEventListener.h>
28 #include <FUiITimeChangeEventListener.h>
29 #include "FUiCtrl_PublicDateTimeChangeEvent.h"
31 using namespace Tizen::Base;
32 using namespace Tizen::Base::Runtime;
33 using namespace Tizen::System;
35 namespace Tizen { namespace Ui { namespace Controls
38 _PublicDateTimeChangeEventArg::_PublicDateTimeChangeEventArg(DateTimePublicChangeStatus status)
46 SystemTime::GetCurrentTime(WALL_TIME, __dateTime1);
49 _PublicDateTimeChangeEventArg::~_PublicDateTimeChangeEventArg(void)
55 _PublicDateTimeChangeEventArg::SetDateTime(const Tizen::Base::DateTime& dateTime)
57 __dateTime1 = dateTime;
63 _PublicDateTimeChangeEventArg::GetYear(void) const
69 _PublicDateTimeChangeEventArg::GetMonth(void) const
75 _PublicDateTimeChangeEventArg::GetDay(void) const
81 _PublicDateTimeChangeEventArg::GetHour(void) const
87 _PublicDateTimeChangeEventArg::GetMinute(void) const
93 _PublicDateTimeChangeEventArg::GetDateTime(void) const
98 DateTimePublicChangeStatus
99 _PublicDateTimeChangeEventArg::GetStatus(void) const
105 _PublicDateTimeChangeEventArg::SetTime(int hour, int minute)
114 _PublicDateTimeChangeEventArg::SetDate(int year, int month, int day)
123 ////////////////////////////////////////////////////////////////////////////////
124 /// _PublicDateTimeChangeEventArg class end
126 _PublicDateTimeChangeEvent::_PublicDateTimeChangeEvent(const Tizen::Ui::Control& source)
129 result r = _Event::Initialize();
133 __pSource = const_cast<Control*>(&source);
137 _PublicDateTimeChangeEvent::~_PublicDateTimeChangeEvent(void)
143 _PublicDateTimeChangeEvent::FireImpl(IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
145 const _PublicDateTimeChangeEventArg* pArg = dynamic_cast <const _PublicDateTimeChangeEventArg*>(&arg);
146 SysTryReturnVoidResult(NID_UI_CTRL, (pArg != null), E_INVALID_ARG,
147 "[E_INVALID_ARG] Invalid argument(s) is used. The instance of _PublicDateTimeChangeEventArg is null.");
149 DateTimePublicChangeStatus status = pArg->GetStatus();
150 if ((status == DATETIME_PUBLIC_CHANGE_SAVED) || (status == DATETIME_PUBLIC_CHANGE_CANCELED))
152 IDateTimeChangeEventListener* pChangeEventListener = dynamic_cast <IDateTimeChangeEventListener*>(&listener);
153 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
154 "[E_INVALID_ARG] Invalid argument(s) is used. The instance of IDateTimeChangeEventListener is null.");
156 if (status == DATETIME_PUBLIC_CHANGE_SAVED)
158 pChangeEventListener->OnDateTimeChanged(*__pSource, pArg->GetYear(), pArg->GetMonth(), pArg->GetDay(),
159 pArg->GetHour(), pArg->GetMinute());
163 pChangeEventListener->OnDateTimeChangeCanceled(*__pSource);
166 else if ((status == DATE_PUBLIC_CHANGE_SAVED) || (status == DATE_PUBLIC_CHANGE_CANCELED))
168 IDateChangeEventListener* pChangeEventListener = dynamic_cast <IDateChangeEventListener*>(&listener);
169 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
170 "[E_INVALID_ARG] Invalid argument(s) is used. The instance of IDateChangeEventListener is null.");
172 if (status == DATE_PUBLIC_CHANGE_SAVED)
174 pChangeEventListener->OnDateChanged(*__pSource, pArg->GetYear(), pArg->GetMonth(), pArg->GetDay());
178 pChangeEventListener->OnDateChangeCanceled(*__pSource);
181 else if ((status == TIME_PUBLIC_CHANGE_SAVED) || (status == TIME_PUBLIC_CHANGE_CANCELED))
183 ITimeChangeEventListener* pChangeEventListener = dynamic_cast <ITimeChangeEventListener*>(&listener);
184 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
185 "[E_INVALID_ARG] Invalid argument(s) is used. The instance of ITimeChangeEventListener is null.");
187 if (status == TIME_PUBLIC_CHANGE_SAVED)
189 pChangeEventListener->OnTimeChanged(*__pSource, pArg->GetHour(), pArg->GetMinute());
193 pChangeEventListener->OnTimeChangeCanceled(*__pSource);
196 SetLastResult(E_SUCCESS);
200 const Tizen::Ui::Control*
201 _PublicDateTimeChangeEvent::GetSource(void) const
206 Tizen::Base::Runtime::IEventArg*
207 _PublicDateTimeChangeEvent::CreateDateTimeChangeEventArgN(DateTimePublicChangeStatus status)
209 _PublicDateTimeChangeEventArg* pEventArg = new (std::nothrow) _PublicDateTimeChangeEventArg(status);
210 SysTryReturn(NID_UI_CTRL, (pEventArg != null), null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
215 }}} // Tizen::Ui::Controls