2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
\r
4 // Licensed under the Flora License, Version 1.1 (the License);
\r
5 // you may not use this file except in compliance with the License.
\r
6 // You may obtain a copy of the License at
\r
8 // http://floralicense.org/license/
\r
10 // Unless required by applicable law or agreed to in writing, software
\r
11 // distributed under the License is distributed on an AS IS BASIS,
\r
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 // See the License for the specific language governing permissions and
\r
14 // limitations under the License.
\r
18 * @file StNfcPredefinedItemForm.cpp
\r
19 * @brief This is the implementation file for NfcPredefinedItemForm class.
\r
22 #include <FSystem.h>
\r
23 #include "StNfcPredefinedItemForm.h"
\r
24 #include "StResourceManager.h"
\r
25 #include "StSettingScenesList.h"
\r
26 #include "StTypes.h"
\r
28 using namespace Tizen::App;
\r
29 using namespace Tizen::Base;
\r
30 using namespace Tizen::Base::Collection;
\r
31 using namespace Tizen::Graphics;
\r
32 using namespace Tizen::System;
\r
33 using namespace Tizen::Ui;
\r
34 using namespace Tizen::Ui::Controls;
\r
35 using namespace Tizen::Ui::Scenes;
\r
37 static const int ID_GROUP_NFC_PREDEFINED_ITEM = 0;
\r
38 static const int ID_GROUP_NFC_PREDEFINED_ITEM_COUNT = 1;
\r
39 static const int ID_GROUP_ITEM_NFC_PREDEFINED_ITEM = 0;
\r
41 static const int ID_GROUP_NFC_PREDEFINED_ITEM_LIST = 1;
\r
42 static const int ID_GROUP_NFC_PREDEFINED_ITEM_LIST_DEFAULT_COUNT = 0;
\r
44 static const int NFC_PREDEFINED_ITEM_DEFAULT_GROUP_COUNT = 2;
\r
45 static const int W_TEXT_GAP = 30;
\r
47 NfcPredefinedItemForm::NfcPredefinedItemForm(void)
\r
48 : __pNfcPredefinedItemPresentationModelInstance(null)
\r
49 , __pReservedPushCandidatesAppIdList(null)
\r
54 NfcPredefinedItemForm::~NfcPredefinedItemForm(void)
\r
59 NfcPredefinedItemForm::CreateFooter(void)
\r
61 Footer* pFooter = GetFooter();
\r
64 pFooter->SetBackButton();
\r
65 SetFormBackEventListener(this);
\r
69 NfcPredefinedItemForm::OnInitializing(void)
\r
71 CreateHeader(ResourceManager::GetString(L"IDS_NFC_BODY_PREDEFINED_ITEM_ABB"));
\r
79 NfcPredefinedItemForm::OnTerminating(void)
\r
81 SetFormBackEventListener(null);
\r
86 NfcPredefinedItemForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)
\r
88 __pNfcPredefinedItemPresentationModelInstance = NfcPredefinedItemPresentationModel::GetInstance();
\r
89 __pNfcPredefinedItemPresentationModelInstance->InitReservedPushCandidatesList();
\r
90 __pReservedPushCandidatesAppIdList = __pNfcPredefinedItemPresentationModelInstance->GetAllListReservedPushCandidatesAppIdList();
\r
91 __itemCount = __pReservedPushCandidatesAppIdList->GetCount();
\r
93 __pTableView->UpdateTableView();
\r
95 bool NfcReservedPushActivated = __pNfcPredefinedItemPresentationModelInstance->IsNfcReservedPushActivated();
\r
96 __pTableView->SetItemChecked(ID_GROUP_NFC_PREDEFINED_ITEM, ID_GROUP_ITEM_NFC_PREDEFINED_ITEM, NfcReservedPushActivated);
\r
98 int selectItemIndex = __pNfcPredefinedItemPresentationModelInstance->GetSelectNfcReservedPushCandidatesAppIdIndex();
\r
99 AppLogDebug("selectItemIndex %d", selectItemIndex);
\r
100 SelectItemCheckIndex(selectItemIndex);
\r
104 NfcPredefinedItemForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId)
\r
109 NfcPredefinedItemForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
\r
111 SceneManager* pSceneManager = SceneManager::GetInstance();
\r
112 AppAssert(pSceneManager);
\r
114 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), null);
\r
118 NfcPredefinedItemForm::GetGroupCount(void)
\r
120 return NFC_PREDEFINED_ITEM_DEFAULT_GROUP_COUNT;
\r
124 NfcPredefinedItemForm::GetItemCount(int groupIndex)
\r
127 if (groupIndex == ID_GROUP_NFC_PREDEFINED_ITEM)
\r
129 itemCount = ID_GROUP_NFC_PREDEFINED_ITEM_COUNT;
\r
133 itemCount = __itemCount;
\r
139 TableViewGroupItem*
\r
140 NfcPredefinedItemForm::CreateGroupItem(int groupIndex, int itemWidth)
\r
142 AppLogDebug("ENTER");
\r
143 AppLogDebug("group[%d] width[%d]", groupIndex, itemWidth);
\r
145 int itemHeight = H_GROUP_INDEX_NO_TITLE_DEFAULT;
\r
146 int yItemOffset = H_GROUP_INDEX_HELP_TEXT_TOP_GAP;
\r
147 LabelTextStyle style = LABEL_TEXT_STYLE_NORMAL;
\r
148 Rectangle itemMainText;
\r
149 int fontSize = GetFontSize();
\r
151 Label* pLabel = null;
\r
153 TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
\r
155 yItemOffset = H_GROUP_INDEX_NO_HELP_TEXT_GAP;
\r
156 itemHeight = H_GROUP_INDEX_NO_TITLE_DEFAULT;
\r
158 itemMainText.x = X_GROUP_ITEM_DEFAULT_LABEL;
\r
159 itemMainText.y = yItemOffset;
\r
160 itemMainText.width = itemWidth;
\r
161 itemMainText.height = itemHeight + H_GROUP_INDEX_HELP_TEXT_TOP_GAP;
\r
163 RelativeLayout relativeLayout;
\r
164 relativeLayout.Construct();
\r
166 pItem->Construct(relativeLayout, Dimension(itemWidth, itemHeight));
\r
167 pItem->SetBackgroundColor(COLOR_BG_GROUP_INDEX_DEFAULT);
\r
169 pLabel = new (std::nothrow) Label();
\r
170 pLabel->Construct(itemMainText, groupText);
\r
171 pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
\r
172 pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
\r
173 pLabel->SetTextConfig(fontSize, style);
\r
174 pLabel->SetTextColor(COLOR_HELP_TEXT_TYPE_01);
\r
176 pItem->AddControl(pLabel);
\r
177 pItem->SetEnabled(false);
\r
178 relativeLayout.SetMargin(*pLabel, itemMainText.x, 0, 0, 0);
\r
179 relativeLayout.SetRelation(*pLabel, pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
\r
180 relativeLayout.SetRelation(*pLabel, pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
\r
186 NfcPredefinedItemForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
\r
188 AppLogDebug("group[%d] item[%d] width[%d]", groupIndex, itemIndex, itemWidth);
\r
189 int itemHeight = H_GROUP_ITEM_DEFAULT;
\r
190 int fontSize = GetFontSize();
\r
191 Rectangle itemMainRectangle;
\r
192 Rectangle itemSubRectangle;
\r
194 String itemMainText;
\r
195 String itemSubText;
\r
197 ItemTypeOneLine(itemMainRectangle);
\r
198 TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
\r
200 TableViewItem* pItem = new (std::nothrow) TableViewItem();
\r
202 switch (groupIndex)
\r
204 case ID_GROUP_NFC_PREDEFINED_ITEM:
\r
206 ItemTypeTwoLine(itemMainRectangle, itemSubRectangle, fontSize);
\r
207 itemMainText = ResourceManager::GetString(L"IDS_NFC_BODY_PREDEFINED_ITEM_ABB");
\r
208 itemSubText = *static_cast<String*>(__pReservedPushCandidatesAppIdList->GetAt(itemIndex));
\r
209 style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;
\r
213 case ID_GROUP_NFC_PREDEFINED_ITEM_LIST:
\r
215 style = TABLE_VIEW_ANNEX_STYLE_RADIO;
\r
216 itemMainText = *static_cast<String*>(__pReservedPushCandidatesAppIdList->GetAt(itemIndex));
\r
224 RelativeLayout relativeLayout;
\r
225 relativeLayout.Construct();
\r
227 result r = pItem->Construct(relativeLayout, Dimension(itemWidth, itemHeight), style);
\r
230 AppLogDebug("Construct fail [%s]", GetErrorMessage(r));
\r
235 pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
\r
237 Label* pLabel = new (std::nothrow) Label();
\r
238 r = pLabel->Construct(itemMainRectangle, itemMainText);
\r
239 pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
\r
240 pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
\r
241 pLabel->SetTextColor(COLOR_MAIN_TEXT);
\r
243 pItem->AddControl(pLabel);
\r
244 if (groupIndex == ID_GROUP_NFC_PREDEFINED_ITEM)
\r
246 relativeLayout.SetMargin(*pLabel, itemMainRectangle.x, RELATIVE_LAYOUT_RIGHT_MARGIN_ONOFF_SLIDING, 0, 0);
\r
250 relativeLayout.SetMargin(*pLabel, itemMainRectangle.x + RELATIVE_LAYOUT_LEFT_MARGIN, RELATIVE_LAYOUT_RIGHT_MARGIN, 0, 0);
\r
252 relativeLayout.SetRelation(*pLabel, pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
\r
253 relativeLayout.SetRelation(*pLabel, pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
\r
255 if (groupIndex == ID_GROUP_NFC_PREDEFINED_ITEM)
\r
257 Label* pSecondLineLabel = new (std::nothrow) Label();
\r
258 if (pSecondLineLabel == null)
\r
260 AppLogDebug("pLabel is null");
\r
264 r = pSecondLineLabel->Construct(itemSubRectangle, itemSubText);
\r
267 AppLogDebug("Construct fail [%s]", GetErrorMessage(r));
\r
268 delete pSecondLineLabel;
\r
272 pSecondLineLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
\r
273 pSecondLineLabel->SetTextConfig(FONT_SIZE_SUB_TEXT, LABEL_TEXT_STYLE_NORMAL);
\r
274 pSecondLineLabel->SetTextColor(COLOR_SUB_TEXT);
\r
276 pItem->AddControl(pSecondLineLabel);
\r
277 relativeLayout.SetMargin(*pSecondLineLabel, itemSubRectangle.x, RELATIVE_LAYOUT_RIGHT_MARGIN, 0, 0);
\r
278 relativeLayout.SetRelation(*pSecondLineLabel, pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
\r
279 relativeLayout.SetRelation(*pSecondLineLabel, pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
\r
286 NfcPredefinedItemForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
\r
288 AppLogDebug("ENTER");
\r
297 NfcPredefinedItemForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
\r
299 AppLogDebug("ENTER");
\r
308 NfcPredefinedItemForm::OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status)
\r
310 switch (groupIndex)
\r
312 case ID_GROUP_NFC_PREDEFINED_ITEM:
\r
314 result r = E_FAILURE;
\r
315 if (status == TABLE_VIEW_ITEM_STATUS_CHECKED)
\r
317 r = __pNfcPredefinedItemPresentationModelInstance->NfcReservedPushActivated();
\r
321 r = __pNfcPredefinedItemPresentationModelInstance->NfcReservedPushDeactivated();
\r
324 if (r == E_FAILURE)
\r
326 AppLogDebug("NfcReservedPushActivated is fail [%s]", GetErrorMessage(r));
\r
332 case ID_GROUP_NFC_PREDEFINED_ITEM_LIST:
\r
334 __pNfcPredefinedItemPresentationModelInstance->SetSelectNfcReservedPushCandidatesAppIdIndex(itemIndex);
\r
335 SelectItemCheckIndex(itemIndex);
\r
345 NfcPredefinedItemForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
\r
350 NfcPredefinedItemForm::GetDefaultGroupItemHeight(void)
\r
352 return H_GROUP_INDEX_NO_TITLE_DEFAULT;
\r
356 NfcPredefinedItemForm::GetDefaultItemHeight(void)
\r
358 return H_GROUP_ITEM_DEFAULT;
\r
362 NfcPredefinedItemForm::UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem)
\r
367 NfcPredefinedItemForm::UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
\r
369 switch (groupIndex)
\r
371 case ID_GROUP_NFC_PREDEFINED_ITEM:
\r
373 Label* secondLabel = static_cast<Label*>(pItem->GetControl(1));
\r
374 int selectItemIndex = __pNfcPredefinedItemPresentationModelInstance->GetSelectNfcReservedPushCandidatesAppIdIndex();
\r
375 String itemSubText = *static_cast<String*>(__pReservedPushCandidatesAppIdList->GetAt(selectItemIndex));
\r
376 secondLabel->SetText(itemSubText);
\r
383 __pTableView->RefreshItem(ID_GROUP_NFC_PREDEFINED_ITEM, ID_GROUP_ITEM_NFC_PREDEFINED_ITEM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
\r
387 NfcPredefinedItemForm::OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated)
\r
392 NfcPredefinedItemForm::OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status)
\r
397 NfcPredefinedItemForm::SelectItemCheckIndex(int itemIndex)
\r
399 if (__pTableView == null)
\r
401 AppLogDebug("__pTableView is null");
\r
405 for (int i = 0; i < __itemCount; i++)
\r
407 if (i == itemIndex)
\r
409 __pTableView->SetItemChecked(ID_GROUP_NFC_PREDEFINED_ITEM_LIST, i, true);
\r
412 __pTableView->SetItemChecked(ID_GROUP_NFC_PREDEFINED_ITEM_LIST, i, false);
\r
415 __pTableView->Invalidate(true);
\r
416 __pTableView->RefreshItem(ID_GROUP_NFC_PREDEFINED_ITEM, ID_GROUP_ITEM_NFC_PREDEFINED_ITEM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
\r