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