Fixed Nabi Issues
[apps/osp/Internet.git] / src / IntEditBookmarkListForm.cpp
1 //
2
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 //!Internet
19 /*@file:    EditBookmarkListForm
20  *@brief:       This class defines EditBookmarkListForm used to edit the bookmark
21  *
22  */
23
24 #include <FAppUiApp.h>
25 #include <FUi.h>
26
27 #include "IntBookmarkData.h"
28 #include "IntBookmarkPresentationModel.h"
29 #include "IntCommonLib.h"
30 #include "IntEditBookmarkListForm.h"
31 #include "IntFaviconManager.h"
32 #include "IntNotificationPanel.h"
33 #include "IntSceneRegister.h"
34 #include "IntTypes.h"
35
36 using namespace Tizen::App;
37 using namespace Tizen::Base;
38 using namespace Tizen::Base::Collection;
39 using namespace Tizen::Base::Runtime;
40 using namespace Tizen::Graphics;
41 using namespace Tizen::Ui;
42 using namespace Tizen::Ui::Controls;
43 using namespace Tizen::Ui::Scenes;
44
45 static const wchar_t* IDB_ICON_FOLDER_OPEN = L"I01_icon_folder_open.png";
46 static const wchar_t* IDB_ITEM = L"edit_item.png";
47 static const wchar_t* IDB_RIGHT_ARROW = L"I01_right_arrow.png";
48
49
50 const int EditBookmarkListForm::IDA_BUTTON_CHECKED = 101;
51 const int EditBookmarkListForm::IDA_TABBAR_ITEM_1 = 102;
52 const int EditBookmarkListForm::IDA_TABBAR_ITEM_2 = 103;
53 const int EditBookmarkListForm::IDA_DELETEITEM_CLICKED = 104;
54 const int EditBookmarkListForm::IDA_SHAREITEM_CLICKED = 105;
55 const int EditBookmarkListForm::IDA_CANCELITEM_CLICKED = 106;
56 const int EditBookmarkListForm::IDA_FORMAT_FOLDER = 107;
57 const int EditBookmarkListForm::IDA_FORMAT_SITE = 108;
58 const int EditBookmarkListForm::IDA_FORMAT_ICON = 109;
59 const int EditBookmarkListForm::IDA_FORMAT_BITMAP = 110;
60 const int EditBookmarkListForm::IDA_BUTTON_UNCHECKED = 111;
61 const int EditBookmarkListForm::IDA_FORMAT_URL = 112;
62
63
64 EditBookmarkListForm::EditBookmarkListForm(void)
65 {
66         __pListview = null;
67         __pData = null;
68         __pTimer = null;
69         __parentID = L"0";
70         __pInfoPanel = null;
71         __pInfoLabel = null;
72         __selectedItemCount = 0;
73         __pCheckButton = null;
74         __pConfirmationPopup = null;
75         __pSelectedList = null;
76 }
77
78 EditBookmarkListForm::~EditBookmarkListForm(void)
79 {
80         if (__pData != null)
81         {
82                 __pData->RemoveAll(false);
83                 delete __pData;
84         }
85         if(__pSelectedList != null)
86         {
87                 __pSelectedList->RemoveAll(false);
88                 delete __pSelectedList;
89         }
90 }
91
92 bool
93 EditBookmarkListForm::Initialize(void)
94 {
95         Construct(L"IDL_EDIT_BOOKMARK_LIST");
96
97         return true;
98 }
99 result
100 EditBookmarkListForm::OnInitializing(void)
101 {
102         result r = E_SUCCESS;
103
104         Rectangle rc = GetClientAreaBounds();
105         String selected = CommonUtil::GetString(L"IDS_COM_OPT_SELECTED");
106
107         // Setup back event listener
108         SetFormBackEventListener(this);
109         AddOrientationEventListener(*this);
110
111         SceneManager* pSceneManager = SceneManager::GetInstance();
112
113         if (pSceneManager != null)
114         {
115                 pSceneManager->AddSceneEventListener(IDSCN_EDIT_BOOKMARK_LIST, *this);
116         }
117
118         Header* pHeader = GetHeader();
119
120         if (pHeader == NULL)
121         {
122                 return E_FAILURE;
123         }
124         pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
125
126         __pCheckButton = static_cast< CheckButton* >(GetControl(
127                         L"IDC_SELECT_CHECKBUTTON", true));
128
129         if (__pCheckButton == null)
130         {
131                 return E_FAILURE;
132         }
133
134         __pCheckButton->SetActionId(IDA_BUTTON_CHECKED, IDA_BUTTON_UNCHECKED);
135         __pCheckButton->AddActionEventListener(*this);
136
137         __pListview = static_cast< ListView* >(GetControl("IDC_LISTVIEW1"));
138
139         if (__pListview == null)
140         {
141                 return E_FAILURE;
142         }
143
144         __pListview->AddFastScrollListener(*this);
145         __pListview->AddListViewItemEventListener(*this);
146         __pListview->SetItemProvider(*this);
147
148         __pInfoPanel = static_cast< Panel* >(GetControl(
149                         L"IDC_INFO_PANEL", true));
150
151         if (__pInfoPanel == null)
152         {
153                 return E_FAILURE;
154         }
155
156         __pInfoLabel = static_cast< Label* >(GetControl(
157                         L"IDC_INFO_LABEL", true));
158
159         if (__pInfoLabel == null)
160         {
161                 return E_FAILURE;
162         }
163
164 //      __pInfoLabel->SetBounds(Rectangle(0,0,rc.width, 48));
165         selected.Append(L"(0)");
166         __pInfoLabel->SetText(selected);
167
168         __pInfoLabel->SetTextConfig(32,LABEL_TEXT_STYLE_BOLD);
169         //__pInfoLabel->SetBackgroundColor(CUSTOM_COLOR_INFO_LABEL);
170         __pInfoLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
171         __pInfoLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
172         GetFooter()->SetItemEnabled(0,false);
173         GetFooter()->AddActionEventListener(*this);
174         __pTimer = new (std::nothrow) Timer();
175         __pTimer->Construct(*this);
176
177         __pSelectedList = new(std::nothrow) ArrayList();
178                 __pSelectedList->Construct();
179         return r;
180 }
181
182 void
183 EditBookmarkListForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
184 {
185         result r = E_SUCCESS;
186
187         SceneManager* pSceneManager = SceneManager::GetInstance();
188
189         switch (actionId)
190         {
191         case IDA_DELETEITEM_CLICKED:
192         {
193                 String labelString;
194                 int count = 0;
195                 if(__pListview == null)
196                 {
197                         return;
198                 }
199                 int totalCount = __pListview->GetItemCount();
200                 for (int count = 0;count < totalCount;count++)
201                 {
202                         if (__pListview->IsItemChecked(count))
203                         {
204                                 int id = 0;
205                                 String bookmarkId;
206                                 BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(count));
207                                 if (pBookMark == null)
208                                 {
209                                         return;
210                                 }
211                                 bookmarkId = pBookMark->GetBookmarkId();
212                                 Integer::Parse(bookmarkId,id);
213
214                                 if (pBookMark->GetBookmarkType() == BOOKMARK_TYPE_URL)
215                                 {
216                                         r = BookmarkPresentationModel::GetInstance()->DeleteBookmark(id);
217                                         TryCatch( r == E_SUCCESS,,"EditBookmarkListForm::OnActionPerformed BookmarkPresentationModel::GetInstance()->DeleteBookmark failed %s",GetErrorMessage(r));
218                                 }
219                                 else
220                                 {
221                                         r = BookmarkPresentationModel::GetInstance()->DeleteFolder(id);
222                                         TryCatch( r == E_SUCCESS,,"EditBookmarkListForm::OnActionPerformed BookmarkPresentationModel::GetInstance()->DeleteBookmark failed %s",GetErrorMessage(r));
223                                 }
224                         }
225                 }
226
227                 if (__pListview != null)
228                 {
229                         count = __pListview->GetItemCount();
230
231                         for(int index = 0; index < count ; index ++)
232                         {
233                                 if(__pListview->IsItemChecked(index) == true )
234                                 {
235                                         __pListview->SetItemChecked(index,false);
236                                 }
237                         }
238
239                         __pCheckButton->SetSelected(false);
240                         __pListview->UpdateList();
241
242                         if ( __pListview->GetItemCount() == 0)
243                         {
244                                 __pCheckButton->SetShowState(false);
245                                 __pCheckButton->Invalidate(true);
246                                 if (__pInfoPanel != null)
247                                 {
248                                         __pInfoPanel->SetShowState(false);
249                                 }
250                                 r = __pListview->SetBounds(__pListview->GetX(), 0, __pListview->GetWidth(), GetClientAreaBounds().height);
251                                 if (IsFailed(r))
252                                 {
253                                         return;
254                                 }
255
256
257                         }
258                 }
259                 GetFooter()->SetItemEnabled(0,false);
260                 GetFooter()->Invalidate(true);
261                 // removing all the element from selected list
262                 __pSelectedList->RemoveAll(false);
263                 labelString.Append(CommonUtil::GetString(L"IDS_COM_OPT_SELECTED"));
264                 labelString.Append(L"\x200E"); // LEFT-TO-RIGHT MARK
265                 labelString.Append(L"(0)");
266
267                 if (__pInfoPanel != null)
268                 {
269                         __pInfoLabel->SetText(labelString);
270                         __pInfoPanel->Draw();
271                         __pInfoPanel->Show();
272                 }
273
274                 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
275                 String notification = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
276                 pNotification->SetText(notification);
277                 pNotification->ShowNotification();
278
279
280                 if( __pListview->GetItemCount() == 0)
281                 {
282                         __pTimer->Start(1000);
283                 }
284         }
285         break;
286         case IDA_CANCELITEM_CLICKED:
287         {
288                 if ( __pTimer != NULL)
289                 {
290                         __pTimer->Cancel();
291                 }
292                 if(pSceneManager != NULL)
293                 {
294                         r = pSceneManager->GoBackward(BackwardSceneTransition());
295                 }
296                 if (IsFailed(r))
297                 {
298                         AppLogDebug("EditBookmarkListForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
299                         return;
300                 }
301         }
302         break;
303         case IDA_BUTTON_CHECKED:
304         {
305                 String labelString;
306                 bool flag = false;
307
308                 for (int count = 0;count < __pListview->GetItemCount();count++)
309                 {
310                         __pListview->SetItemChecked(count,true);
311                 }
312
313                 GetFooter()->SetItemEnabled(0,true);
314                 GetFooter()->Invalidate(true);
315
316                 labelString.Append(CommonUtil::GetString(L"IDS_COM_OPT_SELECTED"));
317                 labelString.Append(L"\x200E"); // LEFT-TO-RIGHT MARK
318                 labelString.Append(L"(");
319                 labelString.Append(__pListview->GetItemCount());
320                 labelString.Append(L")");
321                 __selectedItemCount = 0;
322
323                 __pInfoLabel->SetText(labelString);
324                 __pInfoPanel->Draw();
325                 __pInfoPanel->Show();
326
327                 __pSelectedList->RemoveAll();
328                 int totalCount = __pData->GetCount();
329                 for(int index = 0; index <  totalCount; index++)
330                 {
331                         BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
332                         if (pBookMark == null)
333                         {
334                                 continue;
335                         }
336                         String *pBookmarkId = new(std::nothrow) String();
337                         if(pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
338                         {
339                                 pBookmarkId->Append("F");
340                         }
341                         else
342                         {
343                                 pBookmarkId->Append("U");
344                         }
345                         pBookmarkId->Append(pBookMark->GetBookmarkId());
346
347                         __pListview->SetItemChecked(index, true);
348                         __pSelectedList->Add(pBookmarkId);
349                 }
350         __pListview->Invalidate(true);
351         }
352         break;
353         case IDA_BUTTON_UNCHECKED:
354         {
355                 String labelString = L"";
356
357                 for (int count = 0;count < __pListview->GetItemCount();count++)
358                 {
359                         __pListview->SetItemChecked(count,false);
360                 }
361
362                 labelString.Append(CommonUtil::GetString(L"IDS_COM_OPT_SELECTED"));
363                 labelString.Append(L"\x200E"); // LEFT-TO-RIGHT MARK
364                 labelString.Append(L"(0)");
365                 __pInfoLabel->SetText(labelString);
366                 __pInfoPanel->Draw();
367                 __pInfoPanel->Show();
368                 __pSelectedList->RemoveAll(true);
369                 __pListview->Invalidate(true);
370
371                 GetFooter()->SetItemEnabled(0,false);
372                 GetFooter()->Invalidate(true);
373         }
374         break;
375         default:
376                 break;
377         }
378
379         CATCH: return ;
380 }
381
382 ListItemBase*
383 EditBookmarkListForm::CreateItem(int index, int itemWidth)
384 {
385         result r = E_SUCCESS;
386         ListAnnexStyle style = LIST_ANNEX_STYLE_MARK;
387         CustomItem* pItem = null;
388         BookmarkData* pBookMark = null;
389         Bitmap* pBitmap = null;
390         String bitmapId;
391         const int x_Margin_Url = 104;
392         const int y_Margin_Url = 70;
393         const int height_Url = 40;
394         const int width_Url = GetClientAreaBounds().width - 104 - 120 - 16 - 48;
395         const int itemHeight = 112;
396         const int textSize = 32;
397         const int width_Title = GetClientAreaBounds().width - 104 - 120 - 16 - 48;
398
399         pItem = new(std::nothrow) CustomItem();
400         if (pItem == null)
401         {
402                 return null;
403         }
404         pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
405         if (pBookMark == null)
406         {
407                 delete pItem;
408                 pItem = null;
409                 return null;
410         }
411         if (pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
412         {
413                 r = pItem->Construct(Tizen::Graphics::Dimension(itemWidth, 112), style);
414                 TryCatch( r == E_SUCCESS,,"EditBookmarkListForm::CreateItem contruct item failed  %s",GetErrorMessage(r));
415
416                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_FOLDER_OPEN);
417
418                 if (pBitmap != null)
419                 {
420                         pItem->AddElement(Rectangle(16, 26, 60, 60), IDA_FORMAT_ICON, *pBitmap, null);
421                         delete pBitmap;
422                 }
423
424                 pItem->AddElement(Rectangle(92, 8, width_Title/*__pListview->GetWidth() - 92 - 80*/, 112), IDA_FORMAT_FOLDER, pBookMark->GetBookmarkTitle(), true);
425
426
427                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ITEM);
428
429                 if (pBitmap != null)
430                 {
431                         pItem->AddElement(Rectangle(GetClientAreaBounds().width - 92 - 80, 20, 60, 60), IDA_FORMAT_BITMAP, *pBitmap, null, null);
432                         pItem->SetElementSelectionEnabled(IDA_FORMAT_BITMAP, true);
433                         delete pBitmap;
434                 }
435         }
436         else
437         {
438                 r = pItem->Construct(Tizen::Graphics::Dimension(itemWidth, 128), style);
439                 TryCatch( r == E_SUCCESS,,"EditBookmarkListForm::CreateItem contruct item failed  %s",GetErrorMessage(r));
440
441                 pBitmap = pBookMark->GetFavIconBitmap();
442
443                 if (pBitmap == null)
444                 {
445                         pBitmap = FaviconManager::GetInstance()->GetDefaultFaviconN();
446                 }
447
448                 pItem->AddElement(Rectangle(16, 28, 72, 72), IDA_FORMAT_ICON, *pBitmap, null);
449                 delete pBitmap;
450
451                 pItem->AddElement(Rectangle(104, 10, width_Title, itemHeight - height_Url), IDA_FORMAT_SITE, pBookMark->GetBookmarkTitle(), true);
452                 pItem->AddElement(Rectangle(x_Margin_Url, y_Margin_Url, width_Url, height_Url), IDA_FORMAT_URL, pBookMark->GetUrl(),textSize,CUSTOM_COLOR_GREY,CUSTOM_COLOR_GREY,CUSTOM_COLOR_GREY,true);
453
454                 //pBitmap = AppResource::GetInstance()->GetBitmapN("I01_picker_arrow_right.png");
455                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_RIGHT_ARROW);
456                 if (pBitmap != null)
457                 {
458                         pItem->AddElement(Rectangle(GetClientAreaBounds().width - 92 - 84, 32, 64, 64), IDA_FORMAT_BITMAP, *pBitmap, null, null);
459                         pItem->SetElementSelectionEnabled(IDA_FORMAT_BITMAP, true);
460                         delete pBitmap;
461                 }
462         }
463         return pItem;
464
465         CATCH:
466         delete pItem;
467         pItem = null;
468         return NULL;
469 }
470
471 bool
472 EditBookmarkListForm::DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth)
473 {
474         delete pItem;
475         pItem = null;
476         return true;
477 }
478
479 int
480 EditBookmarkListForm::GetItemCount(void)
481 {
482         int count = 0;
483         result r = E_SUCCESS;
484
485         BookmarkPresentationModel::GetInstance()->GetFolderBookmarkCount(__parentID, count);
486
487         if (__pData != NULL)
488         {
489                 __pData->RemoveAll(true);
490                 delete __pData;
491                 __pData = NULL ;
492
493         }
494         __pData = new(std::nothrow) ArrayList();
495
496         if (__pData == null)
497         {
498                 return 0;
499         }
500
501         r = __pData->Construct();
502
503         TryCatch( r == E_SUCCESS,,"EditBookmarkListForm::GetItemCount __pData->Construct() failed  %s",GetErrorMessage(r));
504
505         BookmarkPresentationModel::GetInstance()->GetFoldersBookmarks(__parentID, 0, count, *__pData);
506
507
508         if ( count == 0)
509         {
510                 if(__pCheckButton != null)
511                 {
512                         __pCheckButton->SetShowState(false);
513                 }
514                 if(__pInfoPanel != null)
515                 {
516                         __pInfoPanel->SetShowState(false);
517                 }
518                 __pListview->SetBounds(__pListview->GetX(), 0, __pListview->GetWidth(), GetClientAreaBounds().height);
519
520         }
521         else
522         {
523                 if(__pCheckButton != null)
524                 {
525                         __pCheckButton->SetShowState(true);
526                 }
527                 if(__pInfoPanel != null)
528                 {
529                         __pInfoPanel->SetShowState(true);
530                 }
531                 if(__pCheckButton != null && __pInfoPanel != null)
532                 __pListview->SetBounds(__pListview->GetX(), __pListview->GetY(), __pListview->GetWidth(), GetClientAreaBounds().height - __pCheckButton->GetHeight() - __pInfoPanel->GetHeight());
533
534         }
535         if(__pCheckButton != null)
536         {
537                 __pCheckButton->Invalidate(true);
538         }
539         if(__pInfoPanel != null)
540         {
541                 __pInfoPanel->Invalidate(false);
542         }
543
544         return count;
545
546         CATCH:
547         __pData->RemoveAll(true);
548         delete __pData;
549         __pData = null;
550         return 0;
551 }
552
553 void
554 EditBookmarkListForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status)
555 {
556
557 }
558
559 void
560 EditBookmarkListForm::OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
561 {
562
563 }
564
565 void
566 EditBookmarkListForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status)
567 {
568         String labelString;
569         __selectedItemCount = 0;
570         result r = E_SUCCESS;
571
572         switch (elementId)
573         {
574         case IDA_FORMAT_BITMAP:
575         {
576                 ArrayList* pArgList = null;
577                 SceneManager* pSceneManager = SceneManager::GetInstance();
578                 BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
579
580                 if(pBookMark == NULL)
581                 {
582                         return;
583                 }
584
585                 if (pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
586                 {
587                         pArgList = new(std::nothrow) ArrayList();
588
589                         if (pArgList != null)
590                         {
591                                 pArgList->Construct();
592                                 pArgList->Add(*new(std::nothrow) BookmarkData(*pBookMark));
593                                 if ( pSceneManager != null)
594                                 {
595                                         result r = pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
596                                 }
597
598                                 if (pArgList != null)
599                                 {
600                                         pArgList->RemoveAll(false);
601                                         delete pArgList;
602                                         pArgList = null;
603                                 }
604                                 if(IsFailed(r))
605                                 {
606                                         AppLogDebug("BookmarkListForm::CreateItem Construct failed %s",GetErrorMessage(r));
607                                         return;
608                                 }
609                         }
610                 }
611                 else
612                 {
613                         pArgList = new(std::nothrow) ArrayList();
614
615                         if (pArgList != null)
616                         {
617                                 pArgList->Construct();
618                                 pArgList->Add(*new(std::nothrow) String(L"1"));
619                                 pArgList->Add(*new(std::nothrow) BookmarkData(*pBookMark));
620                                 if ( pSceneManager != null)
621                                 {
622                                         result r = pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ADD_BOOKMARK, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
623                                 }
624                                 if (pArgList != null)
625                                 {
626                                         pArgList->RemoveAll(false);
627                                         delete pArgList;
628                                         pArgList = null;
629                                 }
630                                 if(IsFailed(r))
631                                 {
632                                         AppLogDebug("BookmarkListForm::CreateItem Construct failed %s",GetErrorMessage(r));
633                                         return;
634                                 }
635                         }
636                 }
637         }
638         break;
639
640         default:
641         {
642                 int count = 0;
643                 bool flag = false;
644                 BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
645
646
647                 if(pBookMark == NULL)
648                 {
649                         return;
650                 }
651                 String *pBookmarkId = new(std::nothrow) String();
652                 if(pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
653                 {
654                         pBookmarkId->Append("F");
655                 }
656                 else
657                 {
658                         pBookmarkId->Append("U");
659                 }
660                 pBookmarkId->Append(pBookMark->GetBookmarkId());
661
662                 if (__pListview->IsItemChecked(index) == false)
663                 {
664                         __pSelectedList->Remove(*pBookmarkId);
665                 }
666                 else
667                 {
668                         __pSelectedList->Add(pBookmarkId);
669                 }
670
671
672                 int itemCount = __pListview->GetItemCount();
673                 for (int count = 0;count < itemCount ; count++)
674                 {
675                         if (__pListview->IsItemChecked(count))
676                         {
677                                 __selectedItemCount++;
678                         }
679                 }
680
681                 //labelString.Append(__selectedItemCount);
682                 labelString.Append(CommonUtil::GetString(L"IDS_COM_OPT_SELECTED"));
683                 labelString.Append(L"\x200E"); // LEFT-TO-RIGHT MARK
684                 labelString.Append(L"(");
685                 labelString.Append(__selectedItemCount);
686                 labelString.Append(L")");
687                 __pInfoLabel->SetText(labelString);
688                 __pInfoPanel->Draw();
689                 __pInfoPanel->Show();
690                 BookmarkPresentationModel::GetInstance()->GetFolderBookmarkCount(__parentID,count);
691                 if (__selectedItemCount == count)
692                 {
693                         __pCheckButton->SetSelected(true);
694                 }
695                 else
696                 {
697                         __pCheckButton->SetSelected(false);
698                 }
699
700                 itemCount = __pListview->GetItemCount();
701                 for (int count = 0;count < itemCount ;count++)
702                 {
703                         if (__pListview->IsItemChecked(count))
704                         {
705                                 flag = true;
706                                 break;
707                         }
708                 }
709
710                 if (flag == true)
711                 {
712                         GetFooter()->SetItemEnabled(0,true);
713                 }
714                 else
715                 {
716                         GetFooter()->SetItemEnabled(0,false);
717                 }
718
719                 GetFooter()->Invalidate(true);
720
721         }
722         break;
723         }
724 }
725
726 void
727 EditBookmarkListForm::OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction)
728 {
729
730 }
731
732 void
733 EditBookmarkListForm::OnFastScrollIndexSelected(Tizen::Ui::Control& source, Tizen::Base::String& index)
734 {
735
736 }
737 void
738 EditBookmarkListForm::OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo)
739 {
740
741 }
742
743 void
744 EditBookmarkListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
745 {
746         result r = E_FAILURE;
747         String labelString ;
748         int count = 0;
749         BookmarkData* pBookMark = null;
750
751         if (pArgs != null)
752         {
753                 __parentID.Clear();
754                 String* pStr = dynamic_cast<String*>(pArgs->GetAt(0));
755                 if(pStr == null)
756                 {
757                         return;
758                 }
759                 __parentID.Append(pStr->GetPointer());
760         }
761
762         __selectedItemCount = 0;
763
764
765         __pListview->UpdateList();
766
767         count = __pListview->GetItemCount();
768
769         for(int index = 0 ; index < count ; index++)
770         {
771                 pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
772
773                 if(pBookMark == NULL)
774                 {
775                         return;
776                 }
777                 String *pBookmarkId = new(std::nothrow) String();
778                 if(pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
779                 {
780                         pBookmarkId->Append("F");
781                 }
782                 else
783                 {
784                         pBookmarkId->Append("U");
785                 }
786                 pBookmarkId->Append(pBookMark->GetBookmarkId());
787
788                 AppLog("BookmarkId: %ls", pBookmarkId->GetPointer());
789
790                 if(__pSelectedList->Contains(*pBookmarkId))
791                 {
792                         __pListview->SetItemChecked(index,true);
793                         __selectedItemCount++;
794                 }
795                 else
796                 {
797                         __pListview->SetItemChecked(index,false);
798                 }
799         }
800
801
802         labelString.Append(CommonUtil::GetString(L"IDS_COM_OPT_SELECTED"));
803         labelString.Append(L"\x200E"); // LEFT-TO-RIGHT MARK
804         labelString.Append(L"(");
805         labelString.Append(__selectedItemCount);
806         labelString.Append(L")");
807         __pInfoLabel->SetText(labelString);
808
809
810         if(__selectedItemCount == 0)
811         {
812                 GetFooter()->SetItemEnabled(0, false);
813                 GetFooter()->Invalidate(true);
814         }
815         else
816         {
817                 GetFooter()->SetItemEnabled(0, true);
818                 GetFooter()->Invalidate(true);
819         }
820         if(__selectedItemCount < __pListview->GetItemCount())
821         {
822                 __pCheckButton->SetSelected(false);
823         }
824         else
825         {
826                 __pCheckButton->SetSelected(true);
827         }
828         __pInfoPanel->Draw();
829         __pInfoPanel->Show();
830
831         Invalidate(true);
832
833 }
834
835 void
836 EditBookmarkListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
837 {
838
839 }
840
841 void
842 EditBookmarkListForm::OnFormBackRequested(Form& source)
843 {
844         SceneManager* pSceneManager = SceneManager::GetInstance();
845
846         if ( __pTimer != NULL)
847         {
848                 __pTimer->Cancel();
849         }
850
851         if (pSceneManager != null)
852         {
853                 //pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_BOOKMARK_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
854                 result r = pSceneManager->GoBackward(BackwardSceneTransition());
855                 if(IsFailed(r))
856                 {
857                         AppLogDebug("BookmarkListForm::CreateItem Construct failed %s",GetErrorMessage(r));
858                         return;
859                 }
860
861         }
862         GetFooter()->Invalidate(true);
863 }
864
865
866 void EditBookmarkListForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
867 {
868         int itemCount = 0;
869         ArrayList* pCheckedItems  = NULL ;
870
871         if (__pListview != null)
872         {
873                 AppLog("the list Y axis is %d", __pListview->GetY());
874                 pCheckedItems  = new(std::nothrow) ArrayList();
875                 pCheckedItems->Construct();
876                 if ( __pListview->GetItemCount() == 0)
877                 {
878                         __pCheckButton->SetShowState(false);
879                         __pInfoPanel->SetShowState(false);
880                         __pListview->SetBounds(0, __pListview->GetY(), GetClientAreaBounds().width, GetClientAreaBounds().height -__pListview->GetY());
881
882                 }
883                 else
884                 {
885                         AppLog("EditBookmarkListForm::OnOrientationChanged 1");
886                         __pCheckButton->SetShowState(true);
887                         __pInfoPanel->SetShowState(true);
888                         __pListview->SetBounds(__pListview->GetX(), __pListview->GetY(), __pListview->GetWidth(), GetClientAreaBounds().height - __pCheckButton->GetHeight() - __pInfoPanel->GetHeight());
889                         __pInfoLabel->SetBounds(__pInfoLabel->GetX(),__pInfoLabel->GetY(), GetClientAreaBounds().width,__pInfoLabel->GetHeight());
890                         __pInfoLabel->Invalidate(true);
891                 }
892                 __pCheckButton->Invalidate(true);
893
894                 itemCount = __pListview->GetItemCount();
895
896                 for (int count = 0;count < itemCount ; count++)
897                 {
898
899                         if (__pListview->IsItemChecked(count))
900                         {
901                                 pCheckedItems->Add(* new Integer(count));
902                         }
903                 }
904
905                 __pListview->UpdateList();
906
907                 for (int count = 0;count < itemCount ;count++)
908                 {
909                         if (pCheckedItems->Contains(* new Integer(count)) == true)
910                         {
911                                 __pListview->SetItemChecked(count, true);
912                         }
913                 }
914                 if ( pCheckedItems != NULL )
915                 {
916                         pCheckedItems->RemoveAll(true);
917                         delete pCheckedItems;
918                 }
919                 Invalidate(true);
920         }
921 }
922
923 void
924 EditBookmarkListForm::OnTimerExpired(Timer&  timer)
925 {
926         SceneManager* pSceneManager = SceneManager::GetInstance();
927
928         if ( pSceneManager != NULL)
929         {
930                 result r = pSceneManager->GoBackward(BackwardSceneTransition());
931                 if(IsFailed(r))
932                 {
933                         AppLogDebug("EditBookmarkListForm::OnTimerExpired GoBackward failed %s",GetErrorMessage(r));
934                 }
935         }
936 }