Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrl_TableViewItemEvent.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0/
10 //
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.
16 //
17
18 #include <FBaseSysLog.h>
19 #include <FUiCtrlITableViewItemEventListener.h>
20 #include <FUiCtrlIGroupedTableViewItemEventListener.h>
21 #include <FUiCtrlISectionTableViewItemEventListener.h>
22 #include <FUiCtrlTableView.h>
23 #include <FUiCtrlGroupedTableView.h>
24 #include <FUiCtrlSectionTableView.h>
25 #include <FUiCtrlTableViewItem.h>
26 #include <FUiCtrlTableViewGroupItem.h>
27 #include <FUiCtrlTableViewContextItem.h>
28 #include <FUiCtrlTableViewItemBase.h>
29 #include "FUiCtrl_TableViewItem.h"
30 #include "FUiCtrl_TableViewItemEvent.h"
31 #include "FUiCtrl_TableViewItemEventArg.h"
32
33
34 // using namespace
35 using namespace Tizen::Base;
36 using namespace Tizen::Base::Runtime;
37
38 namespace Tizen { namespace Ui { namespace Controls
39 {
40
41 _TableViewItemEvent::_TableViewItemEvent(void)
42         : __pSource(null)
43         , __invokeTableViewItemCallback(true)
44         , __style(TABLE_VIEW_STYLE_SIMPLE)
45 {
46         // nothing
47 }
48
49 _TableViewItemEvent::~_TableViewItemEvent(void)
50 {
51         // nothing
52 }
53
54 result
55 _TableViewItemEvent::Construct(Tizen::Ui::Control* pSource, TableViewStyle style)
56 {
57         result r = _Event::Initialize();
58         SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] Could not construct TableViewItemEvent!");
59
60         __pSource = pSource;
61
62         __style = style;
63
64         return r;
65 }
66
67 Tizen::Ui::Control*
68 _TableViewItemEvent::GetSource(void) const
69 {
70         return __pSource;
71 }
72
73 void
74 _TableViewItemEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
75 {
76         // cast to _ItemEventArg
77         _TableViewItemEventArg* pEventArg = dynamic_cast<_TableViewItemEventArg*>(const_cast<IEventArg*>(&arg));
78         SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
79
80         int index1 = pEventArg->GetArg1();
81         int index2 = pEventArg->GetArg2();
82         int index3 = pEventArg->GetArg3();
83         int index4 = pEventArg->GetArg4();
84
85         bool activated = pEventArg->GetActivated();
86         bool tempInvokeTableViewItemCallback = __invokeTableViewItemCallback;
87         __invokeTableViewItemCallback = true;
88
89         if (index2 < 0)
90         {
91                 index2 = -1;
92         }
93
94         switch (pEventArg->GetNotifyType())
95         {
96         case TABLEVIEW_NOTIFY_TYPE_SELECTED_ITEM:
97                 if (tempInvokeTableViewItemCallback == true)
98                 {
99                         _TableViewItem* pItem = pEventArg->GetItem();
100                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
101                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
102
103                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
104                         {
105                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
106                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
107
108                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
109                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
110
111                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
112                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
113
114                                 pItemListener->OnTableViewItemStateChanged(*pTableView, index1, pItem, TABLE_VIEW_ITEM_STATUS_SELECTED);
115                         }
116                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
117                         {
118                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
119                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
120
121                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
122                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
123
124                                 if (index2 == -1)
125                                 {
126                                         TableViewGroupItem* pGroupItem = dynamic_cast<TableViewGroupItem*>(pItemBase);
127                                         SysTryReturnVoidResult(NID_UI_CTRL, pGroupItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
128
129                                         pItemListener->OnGroupedTableViewGroupItemStateChanged(*pTableView, index1, pGroupItem, TABLE_VIEW_ITEM_STATUS_SELECTED);
130                                 }
131                                 else
132                                 {
133                                         TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
134                                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
135
136                                         pItemListener->OnGroupedTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_SELECTED);
137                                 }
138                         }
139                         else
140                         {
141                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
142                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
143
144                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
145                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
146
147                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
148                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
149
150                                 pItemListener->OnSectionTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_SELECTED);
151                         }
152                 }
153                 break;
154
155         case TABLEVIEW_NOTIFY_TYPE_HIGHLIGHED_ITEM:
156                 if (tempInvokeTableViewItemCallback == true)
157                 {
158                         _TableViewItem* pItem = pEventArg->GetItem();
159                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
160                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
161
162                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
163                         {
164                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
165                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
166
167                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
168                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
169
170                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
171                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
172
173                                 pItemListener->OnTableViewItemStateChanged(*pTableView, index1, pItem, TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED);
174                         }
175                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
176                         {
177                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
178                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
179
180                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
181                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
182
183                                 if (index2 == -1)
184                                 {
185                                         TableViewGroupItem* pGroupItem = dynamic_cast<TableViewGroupItem*>(pItemBase);
186                                         SysTryReturnVoidResult(NID_UI_CTRL, pGroupItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
187
188                                         pItemListener->OnGroupedTableViewGroupItemStateChanged(*pTableView, index1, pGroupItem, TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED);
189                                 }
190                                 else
191                                 {
192                                         TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
193                                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
194
195                                         pItemListener->OnGroupedTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED);
196                                 }
197                         }
198                         else
199                         {
200                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
201                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
202
203                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
204                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
205
206                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
207                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
208
209                                 pItemListener->OnSectionTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED);
210                         }
211                 }
212                 break;
213
214         case TABLEVIEW_NOTIFY_TYPE_ANNEX_CHECK:
215                 if (tempInvokeTableViewItemCallback == true)
216                 {
217                         _TableViewItem* pItem = pEventArg->GetItem();
218                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
219                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
220
221                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
222                         {
223                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
224                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
225
226                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
227                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
228
229                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
230                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
231
232                                 pItemListener->OnTableViewItemStateChanged(*pTableView, index1, pItem, TABLE_VIEW_ITEM_STATUS_CHECKED);
233                         }
234                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
235                         {
236                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
237                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
238
239                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
240                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
241
242                                 if (index2 == -1)
243                                 {
244                                         TableViewGroupItem* pGroupItem = dynamic_cast<TableViewGroupItem*>(pItemBase);
245                                         SysTryReturnVoidResult(NID_UI_CTRL, pGroupItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
246
247                                         pItemListener->OnGroupedTableViewGroupItemStateChanged(*pTableView, index1, pGroupItem, TABLE_VIEW_ITEM_STATUS_CHECKED);
248                                 }
249                                 else
250                                 {
251                                         TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
252                                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
253
254                                         pItemListener->OnGroupedTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_CHECKED);
255                                 }
256                         }
257                         else
258                         {
259                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
260                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
261
262                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
263                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
264
265                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
266                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
267
268                                 pItemListener->OnSectionTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_CHECKED);
269                         }
270                 }
271                 break;
272
273         case TABLEVIEW_NOTIFY_TYPE_ANNEX_UNCHECK:
274                 if (tempInvokeTableViewItemCallback == true)
275                 {
276                         _TableViewItem* pItem = pEventArg->GetItem();
277                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
278                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
279
280                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
281                         {
282                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
283                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
284
285                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
286                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
287
288                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
289                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
290
291                                 pItemListener->OnTableViewItemStateChanged(*pTableView, index1, pItem, TABLE_VIEW_ITEM_STATUS_UNCHECKED);
292                         }
293                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
294                         {
295                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
296                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
297
298                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
299                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
300
301                                 if (index2 == -1)
302                                 {
303                                         TableViewGroupItem* pGroupItem = dynamic_cast<TableViewGroupItem*>(pItemBase);
304                                         SysTryReturnVoidResult(NID_UI_CTRL, pGroupItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
305                                         pItemListener->OnGroupedTableViewGroupItemStateChanged(*pTableView, index1, pGroupItem, TABLE_VIEW_ITEM_STATUS_UNCHECKED);
306                                 }
307                                 else
308                                 {
309                                         TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
310                                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
311
312                                         pItemListener->OnGroupedTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_UNCHECKED);
313                                 }
314                         }
315                         else
316                         {
317                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
318                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
319
320                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
321                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
322
323                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
324                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
325
326                                 pItemListener->OnSectionTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_UNCHECKED);
327                         }
328                 }
329                 break;
330
331         case TABLEVIEW_NOTIFY_TYPE_ANNEX_MORE:
332                 if (tempInvokeTableViewItemCallback == true)
333                 {
334                         _TableViewItem* pItem = pEventArg->GetItem();
335                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
336                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
337
338                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
339                         {
340                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
341                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
342
343                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
344                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
345
346                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
347                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
348
349                                 pItemListener->OnTableViewItemStateChanged(*pTableView, index1, pItem, TABLE_VIEW_ITEM_STATUS_MORE);
350                         }
351                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
352                         {
353                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
354                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
355
356                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
357                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
358
359                                 if (index2 == -1)
360                                 {
361                                         TableViewGroupItem* pGroupItem = dynamic_cast<TableViewGroupItem*>(pItemBase);
362                                         SysTryReturnVoidResult(NID_UI_CTRL, pGroupItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
363
364                                         pItemListener->OnGroupedTableViewGroupItemStateChanged(*pTableView, index1, pGroupItem, TABLE_VIEW_ITEM_STATUS_MORE);
365                                 }
366                                 else
367                                 {
368                                         TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
369                                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
370
371                                         pItemListener->OnGroupedTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_MORE);
372                                 }
373                         }
374                         else
375                         {
376                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
377                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
378
379                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
380                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
381
382                                 TableViewItem* pItem = dynamic_cast<TableViewItem*>(pItemBase);
383                                 SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
384
385                                 pItemListener->OnSectionTableViewItemStateChanged(*pTableView, index1, index2, pItem, TABLE_VIEW_ITEM_STATUS_MORE);
386                         }
387                 }
388                 break;
389
390         case TABLEVIEW_NOTIFY_TYPE_ITEM_SWEPT:
391 //              if (tempInvokeTableViewItemCallback == true)
392 //              {
393 //                      if (index3 == TABLE_VIEW_SWEEP_DIRECTION_LEFT)
394 //                      {
395 //                              pItemListener->OnTableViewItemSwept(*pTableView, itemTag, TABLE_VIEW_SWEEP_DIRECTION_LEFT);
396 //                      }
397 //                      else
398 //                      {
399 //                              pItemListener->OnTableViewItemSwept(*pTableView, itemTag, TABLE_VIEW_SWEEP_DIRECTION_RIGHT);
400 //                      }
401 //              }
402                 break;
403
404         case TABLEVIEW_NOTIFY_TYPE_TOUCH_LONG_PRESSED:
405 //              pItemListener->OnTableViewItemLongPressed(*pTableView, itemTag, __invokeTableViewItemCallback);
406                 break;
407
408         case TABLEVIEW_NOTIFY_TYPE_REORDERED_ITEM:
409                 if (tempInvokeTableViewItemCallback == true)
410                 {
411                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
412                         {
413                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
414                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
415
416                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
417                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
418
419                                 pItemListener->OnTableViewItemReordered(*pTableView, index1, index2);
420                         }
421                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
422                         {
423                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
424                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
425
426                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
427                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
428
429                                 pItemListener->OnGroupedTableViewItemReordered(*pTableView, index1, index2, index3, index4);
430                         }
431                 }
432                 break;
433
434         case TABLEVIEW_NOTIFY_TYPE_CONTEXT_ITEM_ACTIVATION:
435                 if (tempInvokeTableViewItemCallback == true)
436                 {
437                         _TableViewItem* pItem = pEventArg->GetItem();
438                         SysTryReturnVoidResult(NID_UI_CTRL, pItem != null, E_INVALID_ARG, ("[E_INVALID_ARG] event argument is invalid type."));
439                         TableViewItemBase* pItemBase = static_cast<TableViewItemBase*>(pItem->GetAppInfo());
440
441                         TableViewContextItem* pContextItem = dynamic_cast<TableViewContextItem*>(pItemBase);
442                         SysTryReturnVoidResult(NID_UI_CTRL, pContextItem != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
443
444                         if (__style == TABLE_VIEW_STYLE_SIMPLE)
445                         {
446                                 ITableViewItemEventListener* pItemListener = dynamic_cast<ITableViewItemEventListener*>(&listener);
447                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
448
449                                 TableView* pTableView = dynamic_cast<TableView*>(GetSource());
450                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
451
452                                 pItemListener->OnTableViewContextItemActivationStateChanged(*pTableView, index1, pContextItem, activated);
453                         }
454                         else if (__style == TABLE_VIEW_STYLE_GROUPED)
455                         {
456                                 IGroupedTableViewItemEventListener* pItemListener = dynamic_cast<IGroupedTableViewItemEventListener*>(&listener);
457                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
458
459                                 GroupedTableView* pTableView = dynamic_cast<GroupedTableView*>(GetSource());
460                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
461
462                                 pItemListener->OnGroupedTableViewContextItemActivationStateChanged(*pTableView, index1, index2, pContextItem, activated);
463                         }
464                         else
465                         {
466                                 ISectionTableViewItemEventListener* pItemListener = dynamic_cast<ISectionTableViewItemEventListener*>(&listener);
467                                 SysTryReturnVoidResult(NID_UI_CTRL, pItemListener != null, E_INVALID_ARG, ("[E_INVALID_ARG] invalid listener type."));
468
469                                 SectionTableView* pTableView = dynamic_cast<SectionTableView*>(GetSource());
470                                 SysTryReturnVoidResult(NID_UI_CTRL, pTableView != null, E_INVALID_STATE, ("[E_INVALID_STATE] This instance isn't constructed."));
471
472                                 pItemListener->OnSectionTableViewContextItemActivationStateChanged(*pTableView, index1, index2, pContextItem, activated);
473                         }
474                 }
475                 break;
476
477         default:
478                 return;
479         }
480
481         return;
482 }
483
484 }}} // Tizen::Ui::Controls
485