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_TableView.cpp
20 * @brief This file implements the _TableView class.
23 #include <FGrp_BitmapImpl.h>
24 #include "FUi_ControlManager.h"
25 #include "FUi_ResourceManager.h"
26 #include "FUiAnim_VisualElement.h"
27 #include "FUiCtrl_ListViewModel.h"
28 #include "FUiCtrl_FastScroll.h"
29 #include "FUiCtrl_Scroll.h"
30 #include "FUiCtrl_TableView.h"
31 #include "FUiCtrl_TableViewPresenter.h"
32 #include "FUiCtrl_TableViewItem.h"
33 #include "FUiCtrl_TableViewItemProvider.h"
34 #include "FUiCtrl_TableViewItemProviderAdaptor.h"
35 #include "FUiCtrl_UiTableViewItemEvent.h"
36 #include "FUi_CoordinateSystemUtils.h"
39 using namespace Tizen::Base;
40 using namespace Tizen::Ui;
41 using namespace Tizen::Ui::Animations;
42 using namespace Tizen::Graphics;
44 namespace Tizen { namespace Ui { namespace Controls
47 IMPLEMENT_PROPERTY(_TableView);
49 _TableView::_TableView(void)
50 : __pTableViewPresenter(null)
52 , __pTableViewItemEvent(null)
53 , __itemDividerEnabled(false)
54 , __sweepEnabled(false)
55 , __reorderEnabled(false)
56 , __sectionStyle(false)
57 , __groupedLookEnable(false)
58 , __tableViewStyle(TABLE_VIEW_STYLE_SIMPLE)
59 , __scrollStyle(TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT)
60 , __pBitmapOfEmptyTableView(null)
61 , __pBackgroundBitmap(null)
62 , __textOfEmptyTableView(L"Empty TableView")
63 , __pExpandGroupAnimation(null)
64 , __pCollapseGroupAnimation(null)
65 , __pSweptAnimation(null)
66 , __pRemoveItemtAnimation(null)
68 GET_COLOR_CONFIG(TABLEVIEW::SECTIONITEM_BG_NORMAL, __sectionStyleColor);
69 GET_COLOR_CONFIG(TABLEVIEW::ITEM_DIVIDER_BOTTOM_BG_NORMAL, __itemDividerColor);
72 _TableView::~_TableView(void)
74 if (__pTableViewPresenter)
76 __pTableViewPresenter->BlockAnimationCallback(true);
79 if (GetVisualElement() != null)
81 __pExpandGroupAnimation->SetVisualElementAnimationTickEventListener(null);
82 __pExpandGroupAnimation->SetVisualElementAnimationStatusEventListener(null);
84 __pCollapseGroupAnimation->SetVisualElementAnimationTickEventListener(null);
85 __pCollapseGroupAnimation->SetVisualElementAnimationStatusEventListener(null);
87 __pSweptAnimation->SetVisualElementAnimationTickEventListener(null);
88 __pSweptAnimation->SetVisualElementAnimationStatusEventListener(null);
90 __pRemoveItemtAnimation->SetVisualElementAnimationTickEventListener(null);
91 __pRemoveItemtAnimation->SetVisualElementAnimationStatusEventListener(null);
93 GetVisualElement()->RemoveAllAnimations();
96 //SuperClass will delete.
97 __pTableViewPresenter = null;
99 if (__pFastScroll != null)
101 DetachSystemChild(*__pFastScroll);
103 delete __pFastScroll;
104 __pFastScroll = null;
107 delete __pTableViewItemEvent;
108 __pTableViewItemEvent = null;
110 delete __pExpandGroupAnimation;
111 __pExpandGroupAnimation = null;
113 delete __pCollapseGroupAnimation;
114 __pCollapseGroupAnimation = null;
116 delete __pSweptAnimation;
117 __pSweptAnimation = null;
119 delete __pRemoveItemtAnimation;
120 __pRemoveItemtAnimation = null;
124 _TableView::CreateTableViewN(TableViewStyle style, bool itemDivider, TableViewScrollBarStyle scrollStyle)
127 result r = E_SUCCESS;
129 _TableView* pTableView = null;
131 _ControlManager* pControlManager = _ControlManager::GetInstance();
132 SysTryReturn(NID_UI_CTRL, pControlManager, null, E_SYSTEM, "[%s] A system error has been occurred.", GetErrorMessage(E_SYSTEM));
133 pTableView = new (std::nothrow) _TableView;
134 SysTryCatch(NID_UI_CTRL, pTableView != null, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
137 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , E_SYSTEM, "[%s] Propagating", GetErrorMessage(r));
139 pTableView->AcquireHandle();
141 r = pTableView->Initialize(style, itemDivider, scrollStyle);
142 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Failed to Initialize", GetErrorMessage(r));
152 _TableView::Initialize(TableViewStyle style, bool itemDivider, TableViewScrollBarStyle scrollStyle)
154 result r = E_SUCCESS;
156 _TableViewPresenter* pPresenter = new (std::nothrow) _TableViewPresenter();
157 SysTryReturn(NID_UI_CTRL, pPresenter != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
159 r = pPresenter->Construct(this);
160 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
162 r = _ScrollPanel::Initialize(*pPresenter, false);
163 SetTableViewPresenter(pPresenter);
164 SetScrollAreaAutoResizingEnabled(false);
166 FloatRectangle rect = GetBoundsF();
167 SetScrollAreaBounds(rect);
169 SetTableViewStyle(style);
170 SetScrollStyle(scrollStyle);
171 SetItemDividerEnabled(itemDivider);
174 GET_COLOR_CONFIG(TABLEVIEW::BG_NORMAL, bgColor);
175 SetBackgroundColor(bgColor);
177 __pExpandGroupAnimation = new (std::nothrow) VisualElementValueAnimation;
178 SysTryReturn(NID_UI_CTRL, __pExpandGroupAnimation != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
180 __pExpandGroupAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
182 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
184 __pExpandGroupAnimation->SetVisualElementAnimationTickEventListener(__pTableViewPresenter);
186 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
188 __pExpandGroupAnimation->SetVisualElementAnimationStatusEventListener(__pTableViewPresenter);
190 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
192 __pCollapseGroupAnimation = new (std::nothrow) VisualElementValueAnimation;
193 SysTryReturn(NID_UI_CTRL, __pCollapseGroupAnimation != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
195 __pCollapseGroupAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
197 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
199 __pCollapseGroupAnimation->SetVisualElementAnimationTickEventListener(__pTableViewPresenter);
201 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
203 __pCollapseGroupAnimation->SetVisualElementAnimationStatusEventListener(__pTableViewPresenter);
205 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
207 __pSweptAnimation = new (std::nothrow) VisualElementValueAnimation;
208 SysTryReturn(NID_UI_CTRL, __pSweptAnimation != null, false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
210 __pSweptAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
212 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
214 __pSweptAnimation->SetVisualElementAnimationTickEventListener(__pTableViewPresenter);
216 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
218 __pSweptAnimation->SetVisualElementAnimationStatusEventListener(__pTableViewPresenter);
220 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
222 __pRemoveItemtAnimation = new (std::nothrow) VisualElementValueAnimation;
223 SysTryReturn(NID_UI_CTRL, __pRemoveItemtAnimation != null, false, E_OUT_OF_MEMORY,"[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
225 __pRemoveItemtAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn"));
227 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
229 __pRemoveItemtAnimation->SetVisualElementAnimationTickEventListener(this);
231 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
233 __pRemoveItemtAnimation->SetVisualElementAnimationStatusEventListener(this);
235 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
240 delete __pExpandGroupAnimation;
241 __pExpandGroupAnimation = null;
243 delete __pCollapseGroupAnimation;
244 __pCollapseGroupAnimation = null;
246 delete __pSweptAnimation;
247 __pSweptAnimation = null;
249 delete __pRemoveItemtAnimation;
250 __pRemoveItemtAnimation = null;
256 _TableView::GetTableViewPresenter(void) const
258 return __pTableViewPresenter;
262 _TableView::SetTableViewPresenter(const _TableViewPresenter* pPresenter)
264 __pTableViewPresenter = const_cast<_TableViewPresenter*>(pPresenter);
268 _TableView::SetItemProvider(const _TableViewItemProvider* pProvider)
270 return __pTableViewPresenter->SetItemProvider(pProvider);
274 _TableView::SetItemProviderAdaptor(_TableViewItemProviderAdaptor* pProviderAdaptor)
276 __pTableViewPresenter->SetTableViewItemProviderAdaptor(pProviderAdaptor);
279 _TableViewItemProviderAdaptor*
280 _TableView::GetItemProviderAdaptor(void) const
282 return __pTableViewPresenter->GetTableViewItemProviderAdaptor();
286 _TableView::SetSweepEnabled(bool enable)
288 __sweepEnabled = enable;
292 _TableView::IsSweepEnabled(void) const
294 return __sweepEnabled;
298 _TableView::IsReorderModeEnabled(void) const
300 return __reorderEnabled;
304 _TableView::SetReorderModeEnabled(bool enable)
306 if (__reorderEnabled != enable)
308 __reorderEnabled = enable;
310 __pTableViewPresenter->SetReorderMode(enable);
317 _TableView::SetAnnexFocused(bool isAnnexFocused)
319 return __pTableViewPresenter->SetAnnexFocused(isAnnexFocused);
323 _TableView::SetTableViewFocused(bool focusStatus)
325 return __pTableViewPresenter->SetTableViewFocused(focusStatus);
329 _TableView::IsTableViewFocused(void)
331 return __pTableViewPresenter->IsTableViewFocused();
335 _TableView::SetItemChecked(int groupIndex, int itemIndex, bool check)
337 if (IsOnProcessing())
339 return E_INVALID_OPERATION;
341 return __pTableViewPresenter->SetItemChecked(groupIndex, itemIndex, check);
345 _TableView::IsItemChecked(int groupIndex, int itemIndex) const
347 return __pTableViewPresenter->IsItemChecked(groupIndex, itemIndex);
351 _TableView::SetItemEnabled(int groupIndex, int itemIndex, bool enable)
353 if (IsOnProcessing())
355 return E_INVALID_OPERATION;
357 return __pTableViewPresenter->SetItemEnabled(groupIndex, itemIndex, enable);
361 _TableView::CheckItemHeightAndRefreshLayout(int groupIndex, int itemIndex)
363 TableViewItemTag itemTag = {groupIndex, itemIndex};
364 __pTableViewPresenter->CheckItemHeightAndRefreshLayout(itemTag, true);
368 _TableView::FindItem(int groupIndex, int itemIndex) const
370 TableViewItemTag itemTag = {groupIndex, itemIndex};
372 return __pTableViewPresenter->FindItem(itemTag);
376 _TableView::UnloadItem(int groupIndex, int itemIndex)
378 if (IsOnProcessing())
382 return __pTableViewPresenter->UnloadItem(groupIndex, itemIndex);
386 _TableView::LoadItem(int groupIndex, int itemIndex)
388 if (IsOnProcessing())
392 return __pTableViewPresenter->LoadItem(groupIndex, itemIndex);
396 _TableView::RefreshItemLayout(int groupIndex, int itemIndex)
398 __pTableViewPresenter->RefreshItemLayout(groupIndex, itemIndex);
402 _TableView::GetFirstLoadedItemIndex(int& groupIndex, int& itemIndex) const
404 __pTableViewPresenter->GetFirstLoadedItemIndex(groupIndex, itemIndex);
408 _TableView::GetLastLoadedItemIndex(int& groupIndex, int& itemIndex) const
410 __pTableViewPresenter->GetLastLoadedItemIndex(groupIndex, itemIndex);
414 _TableView::ResetSweepItem(void)
416 __pTableViewPresenter->ResetSweepItem();
420 _TableView::GetSweepItemIndex(int& groupIndex, int& itemIndex) const
422 __pTableViewPresenter->GetSweepItemIndex(groupIndex, itemIndex);
426 _TableView::GetPressedItemCount(void)
428 return __pTableViewPresenter->GetPressedItemCount();
432 _TableView::GetTopMargin(void) const
434 return __pTableViewPresenter->GetTopMargin();
438 _TableView::SetTopMargin(float topMargin)
440 return __pTableViewPresenter->SetTopMargin(topMargin);
444 _TableView::GetBottomMargin(void) const
446 return __pTableViewPresenter->GetBottomMargin();
450 _TableView::SetBottomMargin(float bottomMargin)
452 return __pTableViewPresenter->SetBottomMargin(bottomMargin);
456 _TableView::IsItemEnabled(int groupIndex, int itemIndex) const
458 return __pTableViewPresenter->IsItemEnabled(groupIndex, itemIndex);
462 _TableView::GetTopDrawnItemIndex(int& groupIndex, int& itemIndex) const
467 return __pTableViewPresenter->GetTopDrawnItemIndex(groupIndex, itemIndex);
471 _TableView::SetTopDrawnItemIndex(int groupIndex, int itemIndex)
473 if (IsOnProcessing())
475 return E_INVALID_OPERATION;
477 return __pTableViewPresenter->SetTopDrawnItemIndex(groupIndex, itemIndex);
481 _TableView::GetBottomDrawnItemIndex(int& groupIndex, int& itemIndex) const
486 return __pTableViewPresenter->GetBottomDrawnItemIndex(groupIndex, itemIndex);
490 _TableView::SetBottomDrawnItemIndex(int groupIndex, int itemIndex)
492 if (IsOnProcessing())
494 return E_INVALID_OPERATION;
496 return __pTableViewPresenter->SetBottomDrawnItemIndex(groupIndex, itemIndex);
500 _TableView::ScrollByPixel(float scrollDistance)
502 return __pTableViewPresenter->ScrollByPixel(scrollDistance);
506 _TableView::SetScrollEnabled(bool enable)
508 __pTableViewPresenter->SetScrollEnabled(enable);
512 _TableView::IsScrollEnabled(void) const
514 return __pTableViewPresenter->IsScrollEnabled();
518 _TableView::AddTableViewItemEventListener(const _ITableViewItemEventListener& listener)
520 result r = E_SUCCESS;
522 if (__pTableViewItemEvent == null)
524 __pTableViewItemEvent = new (std::nothrow) _UiTableViewItemEvent();
525 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
527 r = __pTableViewItemEvent->Construct(this, TABLE_VIEW_STYLE_SIMPLE);
528 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[%s] A system error has been occurred. Unable to construct Item Event.", GetErrorMessage(E_SYSTEM));
531 r = __pTableViewItemEvent->AddListener(listener);
532 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(GetLastResult()));
538 _TableView::RemoveTableViewItemEventListener(const _ITableViewItemEventListener& listener)
540 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
542 return __pTableViewItemEvent->RemoveListener(listener);
546 _TableView::AddGroupedTableViewItemEventListener(const _ITableViewItemEventListener& listener)
548 result r = E_SUCCESS;
550 if (__pTableViewItemEvent == null)
552 __pTableViewItemEvent = new (std::nothrow) _UiTableViewItemEvent();
553 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
555 r = __pTableViewItemEvent->Construct(this, TABLE_VIEW_STYLE_GROUPED);
556 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[%s] A system error has been occurred. Unable to construct Item Event.", GetErrorMessage(E_SYSTEM));
559 r = __pTableViewItemEvent->AddListener(listener);
560 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(GetLastResult()));
566 _TableView::RemoveGroupedTableViewItemEventListener(const _ITableViewItemEventListener& listener)
568 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
570 return __pTableViewItemEvent->RemoveListener(listener);
574 _TableView::AddSectionTableViewItemEventListener(const _ITableViewItemEventListener& listener)
576 result r = E_SUCCESS;
578 if (__pTableViewItemEvent == null)
580 __pTableViewItemEvent = new (std::nothrow) _UiTableViewItemEvent();
581 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
583 r = __pTableViewItemEvent->Construct(this, TABLE_VIEW_STYLE_SECTION);
584 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[%s] A system error has been occurred. Unable to construct Item Event.", GetErrorMessage(E_SYSTEM));
587 r = __pTableViewItemEvent->AddListener(listener);
588 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(GetLastResult()));
594 _TableView::RemoveSectionTableViewItemEventListener(const _ITableViewItemEventListener& listener)
596 SysTryReturn(NID_UI_CTRL, __pTableViewItemEvent != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
598 return __pTableViewItemEvent->RemoveListener(listener);
602 _TableView::AddFastScrollListener(const _IUiFastScrollListener& listener)
604 SysTryReturn(NID_UI_CTRL, __pFastScroll != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
605 __pFastScroll->AddFastScrollEventListener(listener);
611 _TableView::RemoveFastScrollListener(const _IUiFastScrollListener& listener)
613 SysTryReturn(NID_UI_CTRL, __pFastScroll != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
614 __pFastScroll->RemoveFastScrollEventListener(listener);
620 _TableView::GetFastScrollBar(void) const
622 return __pFastScroll;
626 _TableView::SetFastScrollIndex(const String& text, bool useSearchIcon)
628 SysTryReturn(NID_UI_CTRL,
629 (__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL || __scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL_FIXED),
630 E_INVALID_OPERATION, E_INVALID_OPERATION, "[%s]The style of TableView scroll is not TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL", GetErrorMessage(E_INVALID_OPERATION));
631 SysTryReturn(NID_UI_CTRL, __pFastScroll != null, E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "[%s] This instance is not available.", GetErrorMessage(E_OBJ_NOT_FOUND));
632 SysTryReturn(NID_UI_CTRL, (useSearchIcon || (!useSearchIcon && text.GetLength() > 0)), E_INVALID_ARG, E_INVALID_ARG,"[%s] Invalid input argument.",GetErrorMessage(E_INVALID_ARG));
634 result r = E_SUCCESS;
636 const wchar_t* pIndexTextArray = text.GetPointer();
638 int indexCount = text.GetLength();
641 // Set the primary index.
642 _FastScrollIndex* pRootIndex = __pFastScroll->GetIndex();
643 if (pRootIndex == null)
645 pRootIndex = _FastScrollIndex::CreateFastScrollIndexN();
647 SysTryReturn(NID_UI_CTRL, pRootIndex != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
649 r = __pFastScroll->SetIndex(pRootIndex);
650 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
654 pRootIndex->RemoveChildren(true);
657 if (useSearchIcon == true)
659 Bitmap* pSearchIcon = null;
660 String fastScrollSearchIconIndex(L"[SEARCH_ICON_INDEX]");
662 r = GET_BITMAP_CONFIG_N(TABLEVIEW::SEARCH_ICON_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSearchIcon);
663 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[%s] A system error has been occurred. SearchIcon image load failed.", GetErrorMessage(E_SYSTEM));
665 _FastScrollIndex* pIndex = pRootIndex->AddChildIndex(&fastScrollSearchIconIndex, pSearchIcon);
666 SysTryReturn(NID_UI_CTRL, pIndex, E_INVALID_STATE, E_INVALID_STATE, "[%s] Primary Index is in an invalid state.", GetErrorMessage(E_INVALID_STATE));
671 r = pRootIndex->AddChildTextIndexArray(childOrder, pIndexTextArray, indexLenth, indexCount);
672 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
674 r = __pFastScroll->UpdateIndex();
675 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
680 _TableView::SetScrollStyle(TableViewScrollBarStyle scrollStyle)
682 __scrollStyle = scrollStyle;
688 _TableView::GetTableViewStyle(void) const
690 return __tableViewStyle;
694 _TableView::SetTableViewStyle(TableViewStyle style)
696 if(__tableViewStyle == style)
701 __tableViewStyle = style;
703 if (__tableViewStyle == TABLE_VIEW_STYLE_SECTION)
706 GET_FIXED_VALUE_CONFIG(TABLEVIEW::SECTIONITEM_TOP_MARGIN, _CONTROL_ORIENTATION_PORTRAIT, topMargin);
707 SetTopMargin(topMargin);
710 GET_SHAPE_CONFIG(TABLEVIEW::GROUPITEM_LEFT_MARGIN, _CONTROL_ORIENTATION_PORTRAIT, x);
711 __pTableViewPresenter->SetLeftMargin(x);
713 __groupedLookEnable = true;
717 TableViewScrollBarStyle
718 _TableView::GetScrollStyle(void) const
720 return __scrollStyle;
724 _TableView::GetGroupCount(void) const
726 return __pTableViewPresenter->GetGroupCount();
730 _TableView::GetItemCountAt(int groupIndex) const
732 SysTryReturn(NID_UI_CTRL, groupIndex >= 0 && groupIndex < GetGroupCount(), -1, E_INVALID_ARG, "[%s] Invalid argument is used. Group Index={%d} ", GetErrorMessage(E_INVALID_ARG), groupIndex);
734 int itemCount = __pTableViewPresenter->GetItemCountAt(groupIndex);
736 if (GetTableViewStyle() == TABLE_VIEW_STYLE_SECTION)
738 // sub section footer
739 if (__pTableViewPresenter->HasSectionFooter(groupIndex) == true)
753 _TableView::RefreshTableView(int groupIndex, int itemIndex, TableViewRefreshType type, bool animation)
755 if (IsOnProcessing())
757 return E_INVALID_OPERATION;
760 return __pTableViewPresenter->RefreshTableView(groupIndex, itemIndex, type, animation);
764 _TableView::RefreshAllItems(void)
766 if (IsOnProcessing())
768 return E_INVALID_OPERATION;
771 return __pTableViewPresenter->RefreshAllItems();
776 _TableView::UpdateTableView(bool isRestoreAnnexFocusValue)
778 if (IsOnProcessing())
780 return E_INVALID_OPERATION;
782 return __pTableViewPresenter->UpdateTableView(isRestoreAnnexFocusValue);
786 _TableView::GetItemIndexFromPosition(const Point& position, int& groupIndex, int& itemIndex) const
788 return __pTableViewPresenter->GetItemIndexFromPosition(_CoordinateSystemUtils::ConvertToFloat(position), groupIndex, itemIndex);
792 _TableView::GetItemIndexFromPosition(const Tizen::Graphics::FloatPoint& position, int& groupIndex, int& itemIndex) const
794 return __pTableViewPresenter->GetItemIndexFromPosition(position, groupIndex, itemIndex);
799 _TableView::SetPropertySectionColor(const Variant& sectionColor)
801 __sectionStyleColor = sectionColor.ToColor();
807 _TableView::SetSectionColor(const Color& color)
809 if (GetTableViewStyle() != TABLE_VIEW_STYLE_SECTION)
811 SysLog(NID_UI_CTRL, "[%s] The style of TableView is not TABLE_VIEW_STYLE_SECTION.", GetErrorMessage(E_INVALID_OPERATION));
812 return E_INVALID_OPERATION;
815 if (__sectionStyleColor == color)
820 result r = SetProperty("sectionColor", Variant(color));
821 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
823 return __pTableViewPresenter->SetStatusChanged(true);
827 _TableView::GetPropertySectionColor(void) const
829 return Variant(__sectionStyleColor);
833 _TableView::GetSectionColor(void) const
835 if (GetTableViewStyle() != TABLE_VIEW_STYLE_SECTION)
837 SetLastResult(E_SUCCESS);
841 Variant sectionColor = GetProperty("sectionColor");
843 return sectionColor.ToColor();
847 _TableView::GetPropertyItemDividerColor(void) const
849 return Variant(__itemDividerColor);
853 _TableView::GetItemDividerColor(void) const
855 Variant itemDividerColor = GetProperty("itemDividerColor");
857 return itemDividerColor.ToColor();
861 _TableView::SetPropertyItemDividerColor(const Variant& itemDividerColor)
863 if(__itemDividerColor == itemDividerColor.ToColor())
868 __itemDividerColor = itemDividerColor.ToColor();
870 return __pTableViewPresenter->SetStatusChanged(true);
874 _TableView::SetItemDividerColor(const Color& color)
876 return SetProperty("itemDividerColor", Variant(color));
880 _TableView::IsItemDividerEnabled(void) const
882 return __itemDividerEnabled;
886 _TableView::SetItemDividerEnabled(bool enable)
888 __itemDividerEnabled = enable;
892 _TableView::GetBitmapOfEmptyTableView(void) const
894 return __pBitmapOfEmptyTableView;
898 _TableView::SetBitmapOfEmptyTableView(const Bitmap* pBitmap)
900 Bitmap* pCloneBitmap = null;
904 delete __pBitmapOfEmptyTableView;
905 __pBitmapOfEmptyTableView = null;
911 pCloneBitmap = _BitmapImpl::CloneN(*pBitmap);
912 SysTryReturn(NID_UI_CTRL, pCloneBitmap != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
914 delete __pBitmapOfEmptyTableView;
915 __pBitmapOfEmptyTableView = pCloneBitmap;
918 return __pTableViewPresenter->SetStatusChanged(true);
922 _TableView::GetPropertyTextColorOfEmptyTableView(void) const
924 return Variant(__textColorOfEmptyTableView);
928 _TableView::GetTextColorOfEmptyTableView(void) const
930 Variant textColorOfEmptyTableView = GetProperty("textColorOfEmptyTableView");
932 return textColorOfEmptyTableView.ToColor();
936 _TableView::SetPropertyTextColorOfEmptyTableView(const Variant& textColorOfEmptyTableView)
938 __textColorOfEmptyTableView = textColorOfEmptyTableView.ToColor();
944 _TableView::SetTextColorOfEmptyTableView(const Color& color)
946 if (__textColorOfEmptyTableView == color)
951 result r = SetProperty("textColorOfEmptyTableView", Variant(color));
953 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
955 return __pTableViewPresenter->SetStatusChanged(true);
959 _TableView::GetPropertyTextOfEmptyTableView(void) const
961 return Variant(__textOfEmptyTableView);
965 _TableView::GetTextOfEmptyTableView(void) const
967 Variant textOfEmptyTableView = GetProperty("textOfEmptyTableView");
969 return textOfEmptyTableView.ToString();
973 _TableView::SetPropertyTextOfEmptyTableView(const Variant& textOfEmptyTableView)
975 __textOfEmptyTableView = textOfEmptyTableView.ToString();
981 _TableView::SetTextOfEmptyTableView(const String& text)
983 if (__textOfEmptyTableView == text)
988 result r = SetProperty("textOfEmptyTableView", Variant(text));
990 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
992 return __pTableViewPresenter->SetStatusChanged(true);
996 _TableView::FireTableViewItemEvent(int groupIndex, int itemIndex, TableViewNotifyType type, _TableViewItem* pItem)
998 if (type == TABLEVIEW_NOTIFY_TYPE_ANNEX_CHECK)
1000 __pTableViewPresenter->GetModel()->SetItemChecked(groupIndex, itemIndex, true);
1002 else if (type == TABLEVIEW_NOTIFY_TYPE_ANNEX_UNCHECK)
1004 __pTableViewPresenter->GetModel()->SetItemChecked(groupIndex, itemIndex, false);
1007 if (__pTableViewItemEvent != null)
1009 _TableViewItemEventArg* pArg = new (std::nothrow) _TableViewItemEventArg(groupIndex, itemIndex, 0, 0, pItem, type);
1010 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
1011 __pTableViewItemEvent->Fire(*pArg);
1016 _TableView::FireTableViewItemSweepEvent(int groupIndex, int itemIndex, TableViewSweepDirection directioin)
1018 if (__pTableViewItemEvent != null)
1020 _TableViewItemEventArg* pArg = new (std::nothrow) _TableViewItemEventArg(groupIndex, itemIndex, directioin, 0, null, TABLEVIEW_NOTIFY_TYPE_ITEM_SWEPT);
1021 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_OUT_OF_MEMORY,"[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
1022 __pTableViewItemEvent->Fire(*pArg);
1027 _TableView::FireTableViewItemReorderEvent(int fromItemIndex, int toItemIndex)
1029 if (__pTableViewItemEvent != null)
1031 _TableViewItemEventArg* pArg = new (std::nothrow) _TableViewItemEventArg(fromItemIndex, toItemIndex, 0, 0, null, TABLEVIEW_NOTIFY_TYPE_REORDERED_ITEM);
1032 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
1033 __pTableViewItemEvent->Fire(*pArg);
1037 _TableView::FireTableViewItemReorderEvent(int fromGroupIndex, int fromItemIndex, int toGroupIndex, int toItemIndex)
1039 if (__pTableViewItemEvent != null)
1041 _TableViewItemEventArg* pArg = new (std::nothrow) _TableViewItemEventArg(fromGroupIndex, fromItemIndex, toGroupIndex, toItemIndex, null, TABLEVIEW_NOTIFY_TYPE_REORDERED_ITEM);
1042 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
1043 __pTableViewItemEvent->Fire(*pArg);
1048 _TableView::FireTableViewContextItemActivationEvent(int groupIndex, int itemIndex, _TableViewItem* pItem, bool activated)
1050 if (__pTableViewItemEvent != null)
1052 _TableViewItemEventArg* pArg = new (std::nothrow) _TableViewItemEventArg(groupIndex, itemIndex, 0, 0, pItem, TABLEVIEW_NOTIFY_TYPE_CONTEXT_ITEM_ACTIVATION, activated);
1053 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
1054 __pTableViewItemEvent->Fire(*pArg);
1059 _TableView::ExpandGroup(int groupIndex)
1061 if (IsOnProcessing())
1063 return E_INVALID_OPERATION;
1065 return __pTableViewPresenter->ExpandGroup(groupIndex, true);
1069 _TableView::CollapseGroup(int groupIndex)
1071 if (IsOnProcessing())
1073 return E_INVALID_OPERATION;
1075 return __pTableViewPresenter->CollapseGroup(groupIndex, true);
1079 _TableView::IsGroupExpanded(int groupIndex) const
1081 return __pTableViewPresenter->IsGroupExpanded(groupIndex);
1085 _TableView::ExpandAllGroup(bool animation)
1087 if (IsOnProcessing())
1089 return E_INVALID_OPERATION;
1092 int groupCount = GetGroupCount();
1094 for (int i = 0; i < groupCount; i++)
1096 __pTableViewPresenter->ExpandGroup(i, false);
1103 _TableView::CollapseAllGroup(bool animation)
1105 if (IsOnProcessing())
1107 return E_INVALID_OPERATION;
1110 int groupCount = GetGroupCount();
1112 for (int i = 0; i < groupCount; i++)
1114 __pTableViewPresenter->CollapseGroup(i, false);
1121 _TableView::StopExpandCollapseAnimation(void)
1123 __pTableViewPresenter->StopExpandCollapseAnimation();
1127 _TableView::SetGroupedLookEnabled(bool enable)
1129 __groupedLookEnable = enable;
1131 if (__tableViewStyle == TABLE_VIEW_STYLE_SECTION && !__groupedLookEnable)
1133 __pTableViewPresenter->SetLeftMargin(0);
1138 _TableView::IsGroupedLookEnabled(void) const
1140 return __groupedLookEnable;
1144 _TableView::GetFirstDrawnFlag(void) const
1146 return __pTableViewPresenter->GetFirstDrawnFlag();
1150 _TableView::GetMaxItemCachingSize(void) const
1152 return __pTableViewPresenter->GetMaxItemCachingSize();
1156 _TableView::OpenContextItem(int groupIndex, int itemIndex)
1158 return __pTableViewPresenter->OpenContextItem(groupIndex, itemIndex);
1161 _TableView::CloseContextItem(int groupIndex, int itemIndex)
1163 return __pTableViewPresenter->CloseContextItem(groupIndex, itemIndex);
1166 _TableView::IsContextItemOpened(int groupIndex, int itemIndex) const
1168 return __pTableViewPresenter->IsContextItemOpened(groupIndex, itemIndex);
1172 _TableView::SetSectionHeaderTextHorizontalAlignment(int sectionIndex, HorizontalAlignment alignment)
1174 return __pTableViewPresenter->SetSectionHeaderTextHorizontalAlignment(sectionIndex, alignment);
1178 _TableView::GetSectionHeaderTextHorizontalAlignment(int sectionIndex) const
1180 return __pTableViewPresenter->GetSectionHeaderTextHorizontalAlignment(sectionIndex);
1184 _TableView::SetSectionFooterTextHorizontalAlignment(int sectionIndex, HorizontalAlignment alignment)
1186 return __pTableViewPresenter->SetSectionFooterTextHorizontalAlignment(sectionIndex, alignment);
1190 _TableView::GetSectionFooterTextHorizontalAlignment(int sectionIndex) const
1192 return __pTableViewPresenter->GetSectionFooterTextHorizontalAlignment(sectionIndex);
1196 _TableView::FireItemTouchReleasedEventDuringPressing(int groupIndex, int itemIndex)
1198 __pTableViewPresenter->FireItemTouchReleasedEventDuringPressing(groupIndex, itemIndex);
1202 _TableView::OnDraw(void)
1204 __pTableViewPresenter->Draw();
1208 _TableView::OnChildAttached(const _Control& child)
1210 _ScrollPanel::OnChildAttached(child);
1214 _TableView::OnChildDetached(const _Control& child)
1216 _ScrollPanel::OnChildDetached(child);
1220 _TableView::OnBoundsChanged(void)
1222 if (__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL || __scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL_FIXED || __scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_NONE)
1224 _Scroll* pScroll = _ScrollPanel::GetScrollBar();
1225 if (pScroll == null)
1227 FloatRectangle bounds = GetBoundsF();
1229 pScroll = _Scroll::CreateScrollN(*this,
1230 SCROLL_DIRECTION_VERTICAL,
1238 SysTryReturnVoidResult(NID_UI_CTRL, pScroll != null, GetLastResult(), "[%s] Propagating", GetErrorMessage(GetLastResult()));
1240 pScroll->EnableScrollingEffect(false);
1241 pScroll->SetVisibleState(false);
1242 _ScrollPanel::SetScrollBar(pScroll);
1244 pScroll->AddScrollEventListener(*this);
1245 AttachSystemChild(*pScroll);
1248 if (__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL || __scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL_FIXED)
1250 if (__pFastScroll == null)
1252 if (__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL_FIXED)
1254 __pFastScroll = _FastScroll::CreateFastScrollN(*this, false);
1258 __pFastScroll = _FastScroll::CreateFastScrollN(*this);
1261 if (__pFastScroll != null)
1263 AttachSystemChild(*__pFastScroll);
1268 __pFastScroll->OnParentBoundsChanged();
1274 _Scroll* pScroll = _ScrollPanel::GetScrollBar();
1276 if (pScroll == null)
1278 FloatRectangle bounds = GetBoundsF();
1280 pScroll = _Scroll::CreateScrollN(*this,
1281 SCROLL_DIRECTION_VERTICAL,
1282 ((__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FIXED) ? false : true),
1283 ((__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_JUMP_TO_TOP) ? true : false),
1284 ((__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_THUMB) ? true : false),
1285 ((__scrollStyle == TABLE_VIEW_SCROLL_BAR_STYLE_FIXED) ? true : false),
1289 SysTryReturnVoidResult(NID_UI_CTRL, pScroll != null, GetLastResult(), "[%s] Propagating", GetErrorMessage(GetLastResult()));
1291 pScroll->EnableScrollingEffect(true);
1292 _ScrollPanel::SetScrollBar(pScroll);
1294 pScroll->AddScrollEventListener(*this);
1295 AttachSystemChild(*pScroll);
1299 _ScrollPanel::OnBoundsChanged();
1303 _TableView::OnChangeLayout(_ControlOrientation orientation)
1305 __pTableViewPresenter->OnChangeLayout(orientation);
1308 _UiTouchEventDelivery
1309 _TableView::OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
1311 return __pTableViewPresenter->OnPreviewTouchPressed(source, touchinfo);
1314 _UiTouchEventDelivery
1315 _TableView::OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
1317 return __pTableViewPresenter->OnPreviewTouchMoved(source, touchinfo);
1320 _UiTouchEventDelivery
1321 _TableView::OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
1323 return __pTableViewPresenter->OnPreviewTouchReleased(source, touchinfo);
1326 _UiTouchEventDelivery
1327 _TableView::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
1329 return __pTableViewPresenter->OnPreviewTouchCanceled(source, touchinfo);
1333 _TableView::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
1335 return __pTableViewPresenter->OnTouchPressed(source, touchinfo);
1339 _TableView::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
1341 return __pTableViewPresenter->OnTouchMoved(source, touchinfo);
1345 _TableView::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
1347 return __pTableViewPresenter->OnTouchReleased(source, touchinfo);
1351 _TableView::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
1353 return __pTableViewPresenter->OnTouchCanceled(source, touchinfo);
1357 _TableView::OnFocusGained(const _Control& source)
1359 __pTableViewPresenter->SetTableViewFocused(true);
1365 _TableView::SetFocusItemOnPressedState(int groupIndex, int itemIndex)
1367 __pTableViewPresenter->SetFocusItemOnPressedState(groupIndex, itemIndex);
1371 _TableView::OnTraversalControlFocusGained(void)
1373 return __pTableViewPresenter->OnTraversalControlFocusGained();
1377 _TableView::OnTraversalControlFocusLost(void)
1379 return __pTableViewPresenter->OnTraversalControlFocusLost();
1383 _TableView::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
1385 return __pTableViewPresenter->OnFlickGestureDetected(gesture);
1389 _TableView::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
1391 return __pTableViewPresenter->OnFlickGestureCanceled(gesture);
1395 _TableView::SetTableViewStatusChanged(bool changed)
1397 return __pTableViewPresenter->SetStatusChanged(changed);
1401 _TableView::IsOnProcessing(void)
1403 _TableViewItemProviderAdaptor* pProviderAdapter = __pTableViewPresenter->GetTableViewItemProviderAdaptor();
1404 if (pProviderAdapter != null)
1406 if (pProviderAdapter->IsOnProcessing())
1415 VisualElementValueAnimation*
1416 _TableView::GetVisualElementValueAnimation(const Tizen::Base::String& keyName) const
1420 VisualElementValueAnimation* pAnimation = null;
1422 if (keyName == L"EXPAND_GROUP_ANIMATION")
1424 pAnimation = __pExpandGroupAnimation;
1426 else if (keyName == L"COLLAPSE_GROUP_ANIMATION")
1428 pAnimation = __pCollapseGroupAnimation;
1430 else if (keyName == L"SWEEP_ITEM_ANIMATION")
1432 pAnimation = __pSweptAnimation;
1434 else if (keyName == L"REMOVE_ITEM_ANIMATION")
1436 pAnimation = __pRemoveItemtAnimation;
1443 _TableView::SetFocusDuringOrientationChange(void)
1445 __pTableViewPresenter->SetFocusDuringOrientationChange();
1449 _TableView::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
1451 return __pTableViewPresenter->OnKeyPressed(source, keyInfo);
1455 _TableView::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
1457 return __pTableViewPresenter->OnKeyReleased(source, keyInfo);
1461 _TableView::IsChildControlFocusManage(void) const
1467 _TableView::OnDrawFocus(void)
1469 return __pTableViewPresenter->OnDrawFocus();
1473 _TableView::OnFocusModeStateChanged(void)
1475 return __pTableViewPresenter->OnFocusModeStateChanged();
1479 _TableView::OnVisibleStateChanged(void)
1481 return __pTableViewPresenter->OnVisibleStateChanged();
1485 _TableView::OnAncestorEnableStateChanged(const _Control& control)
1487 return __pTableViewPresenter->OnAncestorEnableStateChanged(control);
1491 _TableView::OnAncestorVisibleStateChanged(const _Control& control)
1493 return __pTableViewPresenter->OnAncestorVisibleStateChanged(control);
1497 _TableView::OnFocusableStateChanged(bool focusalbeState)
1499 return __pTableViewPresenter->OnFocusableStateChanged(focusalbeState);
1502 }}} // Tizen::Ui::Controls