3 // Open Service Platform
4 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 // All rights reserved.
7 // This software contains confidential and proprietary information
8 // of Samsung Electronics Co., Ltd.
9 // The user of this software agrees not to disclose, disseminate or copy such
10 // Confidential Information and shall use the software only in accordance with
11 // the terms of the license agreement the user entered into with Samsung.
14 #include "FeatureManagerForm.h"
17 using namespace Tizen::App;
18 using namespace Tizen::Ui;
19 using namespace Tizen::Ui::Controls;
20 using namespace Tizen::Ui::Scenes;
21 using namespace Tizen::Base;
22 using namespace Tizen::Graphics;
24 FeatureManagerForm::FeatureManagerForm(void)
25 : __pIconListView(null)
30 FeatureManagerForm::~FeatureManagerForm(void)
35 FeatureManagerForm::Initialize(void)
37 Construct(FORM_STYLE_NORMAL| FORM_STYLE_HEADER| FORM_STYLE_INDICATOR | FORM_STYLE_FOOTER);
39 SetFormBackEventListener(this);
45 FeatureManagerForm::OnInitializing(void)
47 Header* pHeader = GetHeader();
48 pHeader->SetTitleText(L"Delete Features");
49 if (!CreateMainList())
54 Footer* pFooter = GetFooter();
55 pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
56 pFooter->SetBackButton();
58 FooterItem pFooterItemSend;
59 pFooterItemSend.Construct(ID_FOOTER_ITEM_DELETE);
60 pFooterItemSend.SetText(L"Delete");
61 pFooter->AddItem(pFooterItemSend);
62 pFooter->AddActionEventListener(*this);
68 FeatureManagerForm::OnTerminating(void)
75 FeatureManagerForm::CreateMainList(void)
77 __pIconListView = new IconListView();
78 __pIconListView->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height),
79 Dimension(GetClientAreaBounds().width - 100, 250), ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
80 __pIconListView->SetItemProvider(*this);
81 __pIconListView->AddIconListViewItemEventListener(*this);
82 AddControl(*__pIconListView);
89 FeatureManagerForm::OnActionPerformed (const Tizen::Ui::Control &source, int actionId)
91 Tizen::Ui::Controls::Frame *pFrame = Tizen::App::Application::GetInstance()->GetAppFrame()->GetFrame();
92 MainForm* pForm = static_cast<MainForm*>(pFrame->GetControl(L"IDF_FORM", true));
94 SceneManager* pSceneManager = SceneManager::GetInstance();
95 AppAssert(pSceneManager);
99 case ID_FOOTER_ITEM_DELETE:
101 for (int i = this->GetItemCount(); i >= 0; i--)
103 if (__pIconListView->IsItemChecked(i))
105 AppLog("MainForm:: deleting item %i", i);
106 pForm->GetFeatureManager()->DeleteFeature(i);
110 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_ZOOM_OUT));
119 FeatureManagerForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
121 SceneManager* pSceneManager = SceneManager::GetInstance();
122 AppAssert(pSceneManager);
123 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_ZOOM_OUT));
128 FeatureManagerForm::GetItemCount(void)
130 Tizen::Ui::Controls::Frame *pFrame = Tizen::App::Application::GetInstance()->GetAppFrame()->GetFrame();
131 MainForm* pForm = static_cast<MainForm*>(pFrame->GetControl(L"IDF_FORM", true));
135 if (pForm->GetFeatureManager())
137 return pForm->GetFeatureManager()->GetTotalNumberOfFeatures();
145 FeatureManagerForm::DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem)
152 Tizen::Ui::Controls::IconListViewItem*
153 FeatureManagerForm::CreateItem(int index)
155 IconListViewItem* pIconListViewItem = new IconListViewItem();
156 Tizen::Ui::Controls::Frame *pFrame = Tizen::App::Application::GetInstance()->GetAppFrame()->GetFrame();
157 MainForm* pForm = static_cast<MainForm*>(pFrame->GetControl(L"IDF_FORM", true));
158 if (pForm->GetFeatureManager())
160 const Tizen::Uix::Vision::ImageFeatureInfo* pFeature = pForm->GetFeatureManager()->GetImageFeatureInfo(index);
163 return pIconListViewItem;
166 ByteBuffer* pByteBuffer = null;
167 pByteBuffer = pFeature->GetThumbnailN();
168 if (pByteBuffer == null)
172 int __thumbnailWidth = pFeature->GetThumbnailWidth();
173 int __thumbnailHeight = pFeature->GetThumbnailHeight();
174 unsigned char* ptr = const_cast<unsigned char*>(pByteBuffer->GetPointer());
175 unsigned char* end = ptr + __thumbnailWidth * __thumbnailHeight;
177 ByteBuffer imageBuffer;
178 imageBuffer.Construct(__thumbnailWidth * __thumbnailHeight * 4);
179 unsigned char* iptr = const_cast<unsigned char*>(imageBuffer.GetPointer());
181 for (;ptr < end; ++ptr)
189 Bitmap* pBitmap = new Bitmap();
190 pBitmap->Construct(imageBuffer, Dimension(__thumbnailWidth, __thumbnailHeight), BITMAP_PIXEL_FORMAT_R8G8B8A8);
192 //before this we should get name of the item
193 Tizen::Base::String name;
194 name.Format(80, L"%i: %ls", index, pFeature->GetDescription().GetPointer());
196 pIconListViewItem->Construct(*pBitmap, &name);
204 return pIconListViewItem;
208 FeatureManagerForm::OnIconListViewItemStateChanged(Tizen::Ui::Controls::IconListView &view, int index, Tizen::Ui::Controls::IconListViewItemStatus status)
213 FeatureManagerForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
214 const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)
216 __pIconListView->ScrollToItem(0);
217 __pIconListView->UpdateList();
227 FeatureManagerForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
228 const Tizen::Ui::Scenes::SceneId& nextSceneId)