Initialize Tizen 2.3
[apps/osp/Internet.git] / src / IntAddBookmarkForm.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:    AddBookmarkForm.cpp
20  *@brief:       This header file contains the definitions of the AddBookmarkForm class.
21  *
22  */
23
24 #include <FAppUiApp.h>
25 #include <FUi.h>
26
27 #include "IntAddBookmarkForm.h"
28 #include "IntBookmarkData.h"
29 #include "IntBookmarkPresentationModel.h"
30 #include "IntCommonLib.h"
31 #include "IntDropDownCustomItem.h"
32 #include "IntMultipleWindowPresentationModel.h"
33 #include "IntRadioCustomItem.h"
34 #include "IntSceneRegister.h"
35
36 using namespace Tizen::App;
37 using namespace Tizen::Base;
38 using namespace Tizen::Base::Collection;
39 using namespace Tizen::Base::Utility;
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 int LIST_ITEM_HEIGHT = 112;
46 static const int H_ITEM_HEIGHT = 112;
47 static const int H_TITLE_ITEM_HEIGHT = 144;
48 static const wchar_t* IDB_LIST_LEFT_SIDE = L"ListLeftSide.png";
49
50 const int AddBookmarkForm::IDA_CREATE_BOOKMARK_FOLDER = 101;
51 const int AddBookmarkForm::IDA_BUTTON_DONE = 102;
52 const int AddBookmarkForm::IDA_BUTTON_CANCEL = 103;
53 const int AddBookmarkForm::IDA_LIST_LEFT_SIDE_MARGIN = 104;
54 const int AddBookmarkForm::IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN = 105;
55
56 AddBookmarkForm::AddBookmarkForm(void)
57 :__fontSize(36)
58 ,__folderCount(0)
59 ,__folderName(CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
60 ,__listHeight(H_TITLE_ITEM_HEIGHT)
61 , __oldFolderCount(0)
62 , __pBookmark(null)
63 , __pEditFieldTitle(null)
64 , __pEditFieldUrl(null)
65 ,__pList(null)
66 , __pListPanel(null)
67 , __previousScene(null)
68 , __pScrollPanel(null)
69 , __pWindowInfo(null)
70 , __selectedIndex(0)
71 , __showFolderList(false)
72 ,__titleOnViewDeactivated(L"")
73 , __view(L"")
74 ,__urlOnViewDeactivated(L"")
75 , __itemHeight(0)
76 , __dropdownItemHeight(0)
77 {
78
79 }
80
81 AddBookmarkForm::~AddBookmarkForm(void)
82 {
83         //      RemoveAllControls();
84 }
85
86 bool
87 AddBookmarkForm::Initialize(void)
88 {
89         Construct(L"IDL_ADD_BOOKMARK");
90
91         return true;
92 }
93
94 result
95 AddBookmarkForm::OnInitializing(void)
96 {
97         result r = E_SUCCESS;
98         Header* pHeader = null;
99
100         SceneManager* pSceneManager = SceneManager::GetInstance();
101         if (pSceneManager == null)
102         {
103                 return E_FAILURE;
104         }
105         pSceneManager->AddSceneEventListener(IDSCN_ADD_BOOKMARK, *this);
106
107         pHeader = GetHeader();
108
109         SetFormBackEventListener(this);
110         if (pHeader != null)
111         {
112                 pHeader->AddActionEventListener(*this);
113         }
114
115         // Main Panel which is a Scroll Panel
116         __pScrollPanel = static_cast< ScrollPanel* >(GetControl(L"IDC_SCROLLPANEL2"));
117
118         if (__pScrollPanel == null)
119         {
120                 return E_FAILURE;
121         }
122         //__pScrollPanel->SetPageScrollEnabled(true);
123         // Title EditField added on the Scroll Panel
124         __pEditFieldTitle = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD1"));
125
126         if (__pEditFieldTitle == null)
127         {
128                 return E_FAILURE;
129         }
130
131         __pEditFieldTitle->SetGuideText(CommonUtil::GetString(L"IDS_BR_POP_ENTER_BOOKMARK_NAME"));
132         __pEditFieldTitle->AddTextEventListener(*this);
133         __pEditFieldTitle->AddKeypadEventListener(*this);
134         __pEditFieldTitle->SetOverlayKeypadCommandButtonVisible(false);
135
136         // Url Editfield added on the Scroll Panel
137         __pEditFieldUrl = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD2"));
138
139         if (__pEditFieldUrl == null)
140         {
141                 return E_FAILURE;
142         }
143
144         __pEditFieldUrl->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
145         __pEditFieldUrl->AddTextEventListener(*this);
146         __pEditFieldUrl->AddKeypadEventListener(*this);
147         __pEditFieldUrl->AddFocusEventListener(*this);
148         __pEditFieldUrl->SetOverlayKeypadCommandButtonVisible(false);
149
150         __pList = static_cast< ListView* >(__pScrollPanel->GetControl(L"IDC_LISTVIEW1"));
151
152         if (__pList == null)
153         {
154                 return E_FAILURE;
155         }
156         __pList->SetItemProvider(*this);
157         __pList->AddListViewItemEventListener(*this);
158         AddOrientationEventListener(*this);
159
160         __pScrollPanel->SetSize(GetClientAreaBounds().width, GetClientAreaBounds().height);
161         r = __pScrollPanel->SetClientAreaHeight(__pList->GetY() + __listHeight);
162         ScrollPanelScrollDirection direction = __pScrollPanel->GetScrollDirection();
163         AppLogDebug("ScrollDirection = %d SetClientAreaHeight ret = %s value = %d autoresize = %d",direction,GetErrorMessage(r),__pScrollPanel->GetClientAreaBounds().height,__pScrollPanel->IsScrollAreaAutoResizingEnabled());
164         __fontSize = CommonUtil::GetFontSize();
165         __itemHeight = 112 + (__fontSize-44);
166         r = E_SUCCESS;
167
168         return r;
169 }
170
171 result
172 AddBookmarkForm::OnTerminating(void)
173 {
174         result r = E_SUCCESS;
175         return r;
176 }
177
178 void
179 AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
180 {
181         AppLog("AddBookmarkForm::OnActionPerformed entered actionId %d",actionId);
182
183         SceneManager* pSceneManager = SceneManager::GetInstance();
184
185         if (pSceneManager == null)
186         {
187                 return ;
188         }
189
190         switch (actionId)
191         {
192         case IDA_CREATE_BOOKMARK_FOLDER:
193         {
194                 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
195         }
196         break;
197
198         case IDA_BUTTON_DONE:
199         {
200                 // Code to save the Bookmark
201                 String title = L"";
202                 String Url = L"";
203                 String bookMarkID = L"";
204                 String folderTitle = L"";
205                 ArrayList folderList;
206                 result r= E_SUCCESS;
207                 int count = 0;
208                 bool exist = false;
209                 bool ret = false;
210                 bool flag = false;
211                 bool valid = false;
212
213
214                 String firstPattern(L"((ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
215                 String secondPattern(L"^[A-Za-z0-9\.\+-:#@%/;$~?]+\\.[A-Za-z0-9\+-=:#@%/;$~()_?\\\.&]{2,}$");   // Url of type  abc.com (i.e without protocol in front of it)
216
217                 RegularExpression firstRegex;
218                 RegularExpression secondRegex;
219
220                 firstRegex.Construct(firstPattern, REGEX_CASELESS);
221                 secondRegex.Construct(secondPattern, REGEX_CASELESS);
222
223                 title = __pEditFieldTitle->GetText();
224                 Url = __pEditFieldUrl->GetText();
225
226                 // Match
227                 ret = firstRegex.Match(Url, false); // This returns true value
228                 flag = secondRegex.Match(Url, false);  // Checks whether Url typed is of type  abc.com (i.e without protocol in front of it)
229
230                 if (ret == true)
231                 {
232                         valid = true ;
233                 }
234                 else
235                 {
236                         String tempUrl;
237                         if((Url.Contains("http://") == true) || (Url.Contains("https://") == true))
238                         {
239                                 tempUrl.Append(Url);
240                         }
241                         else
242                         {
243                                 tempUrl = L"http://";
244                                 tempUrl.Append(Url);
245                         }
246
247                         if(flag == true)
248                         {
249                                 valid = true;
250                                 Url = tempUrl;
251                         }
252                 }
253
254                 if (valid == false)
255                 {
256                         String msg = CommonUtil::GetString(L"IDS_COM_POP_INVALID_URL");
257                         CreateMessage(msg);
258                 }
259                 else
260                 {
261                         if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
262                         {
263                                 String tempUrl ;
264                                 String tempTitle;
265                                 String tempParentId;
266
267                                 tempUrl = __pBookmark->GetUrl();
268                                 tempTitle = __pBookmark->GetBookmarkTitle();
269                                 tempParentId = __pBookmark->GetParentId();
270
271
272
273                                 r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
274                                 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
275
276                                 for (count = 0; count < __folderCount; count++)
277                                 {
278                                         BookmarkData* pBookmark = null;
279                                         pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
280                                         if (pBookmark == NULL)
281                                         {
282                                                 return;
283                                         }
284                                         folderTitle = pBookmark->GetBookmarkTitle();
285
286                                         if (folderTitle == __folderName)
287                                         {
288                                                 bookMarkID = pBookmark->GetBookmarkId();
289                                                 break;
290                                         }
291                                 }
292
293                                 if(bookMarkID.GetLength() == 0)
294                                 {
295                                         bookMarkID = L"0";
296                                 }
297
298                                 AppLog("IDA_BUTTON_DONE tempParentId ID is %S",tempParentId.GetPointer());
299                                 AppLog("IDA_BUTTON_DONE bookMarkID ID is %S",bookMarkID.GetPointer());
300                                 String urlText = __pEditFieldUrl->GetText();
301                                 String urlWithSlash = L"";
302                                 String urlWithoutSlash = L"";
303                                 if(urlText.EndsWith(L"/"))
304                                 {
305                                         urlWithSlash = urlText;
306                                         urlText.SubString(0,urlText.GetLength()-1,urlWithoutSlash);
307                                 }
308                                 else
309                                 {
310                                         urlWithoutSlash = urlText;
311                                         urlWithSlash = urlWithoutSlash;
312                                         urlWithSlash.Append(L"/");
313                                 }
314
315                                 if(urlWithSlash.Contains("http://") == true)
316                                 {
317                                         urlWithSlash.SubString(7,urlWithSlash.GetLength()-7,urlWithSlash);
318                                 }
319                                 else if(urlWithSlash.Contains("https://") == true)
320                                 {
321                                         urlWithSlash.SubString(8,urlWithSlash.GetLength()-8,urlWithSlash);
322                                 }
323
324                                 if(urlWithoutSlash.Contains("http://") == true)
325                                 {
326                                         urlWithoutSlash.SubString(7,urlWithoutSlash.GetLength()-7,urlWithoutSlash);
327                                 }
328                                 else if(urlWithoutSlash.Contains("https://") == true)
329                                 {
330                                         urlWithoutSlash.SubString(8,urlWithoutSlash.GetLength()-8,urlWithoutSlash);
331                                                                 }
332
333
334                                 if((tempUrl.Contains("http://") == true) )
335                                 {
336                                         tempUrl.SubString(7,tempUrl.GetLength()-7,tempUrl);
337                                 }
338                                 else if (tempUrl.Contains("https://") == true)
339                                 {
340                                         tempUrl.SubString(8,tempUrl.GetLength()-8,tempUrl);
341                                 }
342                                 if (bookMarkID.CompareTo(tempParentId) == 0 && (urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 )&& __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
343                                 {
344                                         pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
345                                         return;
346                                 }
347
348                                 if(tempUrl != __pEditFieldUrl->GetText() || tempParentId != bookMarkID)
349                                 {
350                                         r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
351                                         TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
352                                 }
353
354
355                                 if ( exist == true && !(urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 ))
356                                 {
357                                         String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
358                                         CreateMessage(msg);
359
360                                         AppLogDebug("Bookmark already exists");
361                                 }
362                                 else
363                                 {
364                                         __pBookmark->SetUrl(Url);
365                                         __pBookmark->SetBookmarkTitle(title);
366
367                                         if (bookMarkID == L"")
368                                         {
369                                                 __pBookmark->SetParentId(L"0");
370                                         }
371                                         else
372                                         {
373                                                 __pBookmark->SetParentId(bookMarkID);
374                                         }
375
376                                         r = BookmarkPresentationModel::GetInstance()->SaveTempBookmark(*__pBookmark);
377                                         AppLogDebug("ID_BUTTON_DONE SaveBookmark = %s", GetErrorMessage(r));
378                                         AppLogDebug("parent id = %ls",__pBookmark->GetParentId().GetPointer());
379                                         pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
380                                 }
381                         }
382                         else
383                         {
384                                 AppLog("AddBookmarkForm::OnActionPerformed does url exist 1");
385
386                                 r = BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
387                                 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
388
389                                 for (count = 0; count < __folderCount; count++)
390                                 {
391                                         BookmarkData* pBookmark = null;
392                                         pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
393                                         if (pBookmark == NULL)
394                                         {
395                                                 return;
396                                         }
397                                         folderTitle = pBookmark->GetBookmarkTitle();
398
399                                         if (folderTitle == __folderName)
400                                         {
401                                                 bookMarkID = pBookmark->GetBookmarkId();
402                                                 break;
403                                         }
404                                 }
405                                 if(bookMarkID.GetLength() == 0)
406                                 {
407                                         bookMarkID = L"0";
408                                 }
409                                 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
410
411                                 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
412                                 AppLog("AddBookmarkForm::OnActionPerformed does url exist 2");
413                                 if ( exist  == true)
414                                 {
415                                         String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
416                                         CreateMessage(msg);
417
418                                         AppLogDebug("Bookmark already exists");
419                                 }
420                                 else
421                                 {
422                                         r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
423                                         TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
424
425                                         for (count = 0; count < __folderCount; count++)
426                                         {
427                                                 BookmarkData* pBookmark = null;
428                                                 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
429                                                 if ( pBookmark == NULL )
430                                                 {
431                                                         return;
432                                                 }
433                                                 folderTitle = pBookmark->GetBookmarkTitle();
434
435                                                 if (folderTitle == __folderName)
436                                                 {
437                                                         bookMarkID = pBookmark->GetBookmarkId();
438                                                         break;
439                                                 }
440                                         }
441                                         BookmarkData bookmark;
442
443                                         if (__folderName != CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
444                                         {
445                                                 bookmark.SetParentId(bookMarkID);
446                                         }
447
448                                         bookmark.SetBookmarkTitle(title);
449                                         bookmark.SetUrl(Url);
450                                         if (__pBookmark != null)
451                                         {
452                                                 bookmark.SetFaviconId(__pBookmark->GetFaviconId());
453                                         }
454                                         BookmarkPresentationModel::GetInstance()->SaveTempBookmark(bookmark);
455                                         pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
456                                 }
457                         }
458                 }
459
460                 folderList.RemoveAll(true);
461         }
462         break;
463
464         case IDA_BUTTON_CANCEL:
465         {
466                 if (__pEditFieldTitle != NULL)
467                 {
468                         __pEditFieldTitle->Clear();
469                 }
470
471                 if (__pEditFieldUrl != NULL)
472                 {
473                         __pEditFieldUrl->Clear();
474                 }
475
476                 pSceneManager->GoBackward(BackwardSceneTransition());
477
478         }
479         break;
480
481         default:
482                 break;
483         }
484
485         CATCH: return;
486 }
487
488 void
489 AddBookmarkForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
490 {
491         SceneManager* pSceneManager = SceneManager::GetInstance();
492
493         if (pSceneManager == null)
494         {
495                 return ;
496         }
497
498         if (__pEditFieldTitle != NULL)
499         {
500                 __pEditFieldTitle->Clear();
501         }
502
503         if (__pEditFieldUrl != NULL)
504         {
505                 __pEditFieldUrl->Clear();
506         }
507
508         pSceneManager->GoBackward(BackwardSceneTransition());
509
510
511 }
512 void
513 AddBookmarkForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
514 {
515         return;
516 }
517
518 void
519 AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
520 {
521         AppLog("AddBookmarkForm::OnListViewItemStateChanged listitemstatus %d for index",status,index);
522         if (__pEditFieldTitle != NULL)
523         {
524                 __pEditFieldTitle->HideKeypad();
525         }
526
527         if (__pEditFieldUrl != NULL)
528         {
529                 __pEditFieldUrl->HideKeypad();
530         }
531         if (index == 0)
532         {
533                 if (__showFolderList == false)
534                 {
535                         AppLog("AddBookmarkForm::OnListViewItemStateChanged false");
536                         __showFolderList = true;
537                         __pList->UpdateList();
538                         __listHeight = __dropdownItemHeight + (__pList->GetItemCount() -1) * __itemHeight;
539
540                 }
541                 else
542                 {
543                         AppLog("AddBookmarkForm::OnListViewItemStateChanged true");
544                         __showFolderList = false;
545                         __pList->UpdateList();
546                         __listHeight = __dropdownItemHeight + (__pList->GetItemCount() - 1) * __itemHeight;
547
548                 }
549
550         }
551         else
552         {
553                 __pList->SetItemChecked(__selectedIndex,false);
554                 __pList->SetItemChecked(index,true);
555                 __selectedIndex = index;
556
557                 if (index > 1 && __pList->GetItemCount() != index +1)
558                 {
559                         String parentID = "0";
560                         ArrayList folderList;
561                         BookmarkData* pBookmark = null;
562                         BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
563
564                         pBookmark = static_cast<BookmarkData*>(folderList.GetAt(index-2));
565                         __folderName = pBookmark->GetBookmarkTitle();
566                 }
567                 else if(index == 1)
568                 {
569                         __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
570                 }
571                 __listHeight = __dropdownItemHeight + (__pList->GetItemCount()-1) * __itemHeight;
572                 if (__pList->GetItemCount() == index +1)
573                 {
574                         SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
575                         return;
576                 }
577
578 //              __pList->UpdateList();//removed for issue 53372
579                                 __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
580
581         }
582
583         result r = __pList->SetBounds(Rectangle(__pList->GetX(), __pList->GetY(), __pList->GetWidth(), __listHeight));
584         //__pList->Invalidate(true);
585         Invalidate(true);
586         AppLog("the result is %s", GetErrorMessage(r));
587         AppLog("the list height is %d", __pList->GetHeight());
588         return;
589 }
590
591 void
592 AddBookmarkForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
593 {
594         __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
595         return;
596 }
597
598 void
599 AddBookmarkForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus state)
600 {
601         return;
602 }
603
604 int
605 AddBookmarkForm::GetItemCount(void)
606 {
607         AppLogDebug("AddBookmarkForm::GetItemCount");
608         int count = 0;
609         ArrayList folderList;
610         String parentID = "0";
611         BookmarkData* pBookmark = null;
612         BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
613
614         if (__selectedIndex == 0 && __view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
615         {
616                 for(int count = 0; count < __folderCount; count++)
617                 {
618                         pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
619
620                         if (__pBookmark != null && pBookmark != NULL && __pBookmark->GetParentId() == pBookmark->GetBookmarkId())
621                         {
622                                 __selectedIndex = count + 2;
623                                 __folderName = pBookmark->GetBookmarkTitle();
624                                 break;
625                         }
626                         else
627                         {
628                                 __selectedIndex = 1;
629                         }
630                 }
631         }
632
633         folderList.RemoveAll(true);
634
635         if (__showFolderList == false)
636         {
637                 return 1;
638         }
639         else
640         {
641                 result r = BookmarkPresentationModel::GetInstance()->GetFolderCount(L"0",count);
642                 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed  %s",GetErrorMessage(r));
643                 AppLog("count = %d", count);
644                 return count + 3;
645                 CATCH:
646                 return E_FAILURE;
647         }
648
649 }
650
651 ListItemBase*
652 AddBookmarkForm::CreateItem(int index, int itemWidth)
653 {
654         AppLog("AddBookmarkForm::CreateItem index = %d itemWidth %d list width = %d",index,itemWidth,__pList->GetWidth());
655         result r = E_FAILURE;
656         String folderTitle = L"";
657         RadioCustomItem* radioItem = null;
658         DropDownCustomItem* pItem = null;
659         Bitmap* pBitmap = null;
660         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_LIST_LEFT_SIDE);
661         const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
662         const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
663         if(itemWidth == 0)
664         {
665                 itemWidth = __pList->GetWidth();
666         }
667         if (index == 0)
668         {
669                 pItem = new(std::nothrow) DropDownCustomItem();
670                 r = pItem->Construct(itemWidth);
671
672                 if (IsFailed(r))
673                 {
674                         AppLog("Create Item Failed with error %s", GetErrorMessage(r));
675                         delete pItem;
676                         delete pBitmap;
677                         return null;
678                 }
679
680                 __dropdownItemHeight = 140 + (__fontSize - 44);
681                 if ( __showFolderList == true )
682                 {
683                         pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
684                 }
685                 else
686                 {
687                         pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
688                 }
689
690
691                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
692                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
693                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
694                 pItem->SetMainText(CommonUtil::GetString(L"IDS_BR_HEADER_FOLDER"));
695                 pItem->SetSubText(__folderName);
696                 pItem->Make();
697                 if (pBitmap != null)
698                 {
699                         //pItem->AddElement(Rectangle(0, 0, 10, H_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
700                         delete pBitmap;
701                 }
702                 return pItem;
703         }
704         else
705         {
706                 String parentID = "0";
707                 ArrayList folderList;
708
709                 BookmarkData* pBookmark = null;
710                 r = BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
711
712                 if (index == 1)
713                 {
714                         radioItem = new(std::nothrow) RadioCustomItem();
715                         //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
716                         r = radioItem->Construct(itemWidth, __itemHeight);
717                         if (IsFailed(r))
718                         {
719                                 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
720                                 delete radioItem;
721                                 delete pBitmap;
722                                 return null;
723                         }
724
725                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
726                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
727
728 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
729 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
730 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
731                         folderTitle = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
732                         radioItem->SetText(folderTitle);
733                 }
734                 else if (index <= __folderCount + 1)
735                 {
736                         pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(index - 2));
737                         if (pBookmark != null)
738                         {
739                                 folderTitle = pBookmark->GetBookmarkTitle();
740                         }
741                         radioItem = new(std::nothrow) RadioCustomItem();
742                         //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
743                         r = radioItem->Construct(itemWidth, __itemHeight);
744                         if (IsFailed(r))
745                         {
746                                 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
747                                 delete radioItem;
748                                 delete pBitmap;
749                                 return null;
750                         }
751
752                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
753                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
754 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
755 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
756 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
757                         radioItem->SetText(folderTitle);
758                 }
759                 else
760                 {
761                         radioItem = new(std::nothrow) RadioCustomItem();
762                         //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
763                         r = radioItem->Construct(itemWidth, __itemHeight);
764                         if (IsFailed(r))
765                         {
766                                 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
767                                 delete radioItem;
768                                 delete pBitmap;
769                                 return null;
770                         }
771                         //radioItem->AddElement(Rectangle(MARGIN_X, 0, __pList->GetBounds().width, itemHeight), IDA_FORMAT_STRING1, CommonUtil::GetString(L"IDS_CREATE_NEW_FOLDER"), textsize, Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), true);
772                         folderTitle = CommonUtil::GetString(L"IDS_BR_OPT_NEW_FOLDER");
773                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
774                         radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
775 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
776 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
777 //                      radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
778                         radioItem->SetText(folderTitle);
779
780                 }
781
782                 if (__selectedIndex == index)
783                 {
784 //                      radioItem->SetSelected(true);
785                         __pList->SetItemChecked(index,true);
786                 }
787                 else
788                 {
789 //                      radioItem->SetSelected(false);
790                         __pList->SetItemChecked(index,false);
791                 }
792
793                 if(__selectedIndex == 0 && index == 1)
794                 {
795 //                      radioItem->SetSelected(true);
796                         __pList->SetItemChecked(index,true);
797                 }
798                 if (__pList->IsItemChecked(index) == true)
799                 {
800                         __folderName = radioItem->GetText();
801                 }
802
803                 if (pBitmap != null)
804                 {
805                         //radioItem->AddElement(Rectangle(0, 0, 10, itemHeight), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
806                         delete pBitmap;
807                 }
808
809                 folderList.RemoveAll(true);
810                 radioItem->Make();
811                 return radioItem;
812         }
813 }
814
815 bool
816 AddBookmarkForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
817 {
818         if (pItem != null)
819         {
820                 delete pItem;
821                 pItem = null;
822         }
823
824         return true;
825 }
826
827 void
828 AddBookmarkForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
829 {
830         return;
831 }
832
833 void
834 AddBookmarkForm::OnKeypadClosed(Control& source)
835 {
836
837         AppLog("the client area height is %d",GetClientAreaBounds().height);
838
839         __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
840         __pScrollPanel->Invalidate(true);
841
842         Invalidate(true);
843         return;
844 }
845
846 void
847 AddBookmarkForm::OnKeypadOpened(Control& source)
848 {
849         return;
850 }
851
852 void
853 AddBookmarkForm::OnKeypadWillOpen(Control& source)
854 {
855         AppLog("the client area height is %d",GetClientAreaBounds().height);
856
857         //      __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
858
859         //      __pScrollPanel->Invalidate(true);
860         //      __pScrollPanel->SetScrollPosition(source.GetY()-48,false);
861         __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
862         __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
863         __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
864         Invalidate(true);
865         AppLog("the scroll panel height is Rect(%d,%d,%d,%d) ClientHeight =  %d",__pScrollPanel->GetX(),__pScrollPanel->GetY(),__pScrollPanel->GetWidth(),__pScrollPanel->GetHeight(),__pScrollPanel->GetClientAreaBounds().height);
866         return;
867 }
868
869 void
870 AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
871 {
872         // Code to handle events when the AddBookmarkForm is activated.
873         String str = "0";
874         String pageTitle = L"";
875         String pageUrl = L"";
876         String title = L"";
877         String url = L"";
878         result r = E_FAILURE;
879         Header* pHeader = GetHeader();
880
881         r = BookmarkPresentationModel::GetInstance()->GetFolderCount(str, __folderCount);
882         TryCatch( r == E_SUCCESS, ,"Failed to intitialize GETFOLDERCOUNT  %s",GetErrorMessage(r));
883
884         if ( pHeader == NULL )
885         {
886                 return ;
887         }
888         if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
889         {
890                 // check first argument of pargs 0 for Add, 1 - for Edit
891                 String* firstValue = NULL;
892                 if(pArgs)
893                 {
894                         firstValue = dynamic_cast<String*>(pArgs->GetAt(0));
895                 }
896
897                 if( firstValue == NULL || pArgs == NULL)
898                 {
899                         return ;
900                 }
901                 if (firstValue->CompareTo(L"1") == 0)
902                 {
903                         __view = CommonUtil::GetString(L"IDS_BR_SK_EDIT");
904
905                         pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
906
907                         if (__pBookmark != NULL && pArgs != NULL)
908                         {
909                                 delete __pBookmark;
910                                 __pBookmark = null;
911                         }
912
913                         if (__pBookmark == NULL && pArgs != NULL)
914                         {
915                                 __pBookmark = dynamic_cast<BookmarkData*>(pArgs->GetAt(1));
916                         }
917
918                         if (__pBookmark)
919                         {
920                                 pageTitle = __pBookmark->GetBookmarkTitle();
921                                 pageUrl = __pBookmark->GetUrl();
922                         }
923                 }
924                 else if (firstValue->CompareTo(L"0") == 0)
925                 {
926                         __view = CommonUtil::GetString(L"IDS_COM_SK_ADD");
927                         pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
928
929                         WindowInfo* pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
930
931                         if( pWindowInfo == NULL )
932                         {
933                                 return;
934                         }
935
936                         if(pWindowInfo->pageTitle.CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE")) != 0)
937                                 pageTitle = pWindowInfo->pageTitle;
938
939                         if(pWindowInfo->pageUrl.IsEmpty() == false)
940                         {
941                                 pageUrl = pWindowInfo->pageUrl;
942                         }
943                         String* parentID = dynamic_cast<String*>(pArgs->GetAt(1));
944
945                         ArrayList folderList;
946
947                         BookmarkData* pBookmark = null;
948                         BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
949                         for(int count = 0; count < folderList.GetCount(); count++)
950                         {
951                                 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
952
953                                 if ( pBookmark == null )
954                                 {
955                                         return ;
956                                 }
957
958                                 if (parentID != NULL && pBookmark->GetBookmarkId().CompareTo(parentID->GetPointer()) == 0)
959                                 {
960                                         __selectedIndex = count + 2;
961                                         __folderName = pBookmark->GetBookmarkTitle();
962                                         break;
963                                 }
964                                 else
965                                 {
966                                         __selectedIndex = 1 ;
967                                         __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
968                                 }
969
970                         }
971
972                         if (__folderCount == 0)
973                         {
974                                 __selectedIndex = 1 ;
975                                 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
976                         }
977
978                         folderList.RemoveAll(true);
979                 }
980         }
981
982         if ( previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
983         {
984                 pageTitle = __titleOnViewDeactivated;
985                 pageUrl = __urlOnViewDeactivated;
986                 if(__pList && __pScrollPanel)
987                 {
988                         AppLog("__pList->GetItemCount() %d",__pList->GetItemCount());
989                         __pList->ScrollToItem(__pList->GetItemCount());
990 //                      __pList->Invalidate(true);
991                         __pScrollPanel->ScrollToBottom();
992                 }
993         }
994
995 //      if(__pEditFieldTitle != NULL)
996 //      {
997 //              __pEditFieldTitle->ShowKeypad();
998 //      }
999         if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
1000         {
1001                 if (__pEditFieldTitle != NULL)
1002                 {
1003                         __pEditFieldTitle->SetText(pageTitle);
1004                         __pEditFieldTitle->ShowKeypad();
1005                 }
1006                 if (__pEditFieldUrl != NULL)
1007                 {
1008                         __pEditFieldUrl->SetText(pageUrl);
1009                         __pEditFieldUrl->HideKeypad();
1010                 }
1011
1012         }
1013         else
1014         {
1015                 if (__pEditFieldTitle != NULL)
1016                 {
1017                         __pEditFieldTitle->SetText(pageTitle);
1018                         __pEditFieldTitle->HideKeypad();
1019                 }
1020                 if (__pEditFieldUrl != NULL)
1021                 {
1022                         __pEditFieldUrl->SetText(pageUrl);
1023                         __pEditFieldUrl->HideKeypad();
1024                 }
1025         }
1026         if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
1027         {
1028                 if (__oldFolderCount == 0)
1029                 {
1030                         if (__folderCount == 1)
1031                         {
1032                                 __selectedIndex = 2;
1033                         }
1034                 }
1035                 else if (__oldFolderCount != __folderCount)
1036                 {
1037                         __selectedIndex = __folderCount + 1;
1038                 }
1039                 if(__selectedIndex > 1)
1040                 {
1041                         String parentID = L"0";
1042                         ArrayList folderList;
1043                         BookmarkData* pBookmark = null;
1044                         BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
1045                         pBookmark = static_cast<BookmarkData*>(folderList.GetAt(__selectedIndex-2));
1046                         if(pBookmark != null)
1047                         {
1048                                 __folderName = pBookmark->GetBookmarkTitle();
1049                         }
1050                 }
1051         }
1052
1053         if (__view == CommonUtil::GetString(L"IDS_COM_SK_ADD")  && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER)
1054         {
1055
1056                 if (__oldFolderCount == 0)
1057                 {
1058                         if (__folderCount == 1)
1059                         {
1060                                 __selectedIndex = 2;
1061                         }
1062                 }
1063                 else if (__oldFolderCount != __folderCount)
1064                 {
1065                         __selectedIndex = __folderCount + 1;
1066
1067                 }
1068                 else if (__oldFolderCount == __folderCount )
1069                 {
1070                         __selectedIndex = __folderCount + 1;
1071                 }
1072                 if(__selectedIndex > 1)
1073                 {
1074                         String parentID = L"0";
1075                         ArrayList folderList;
1076                         BookmarkData* pBookmark = null;
1077                         BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
1078                         pBookmark = static_cast<BookmarkData*>(folderList.GetAt(__selectedIndex-2));
1079                         if(pBookmark != null)
1080                         {
1081                                 __folderName = pBookmark->GetBookmarkTitle();
1082                         }
1083                 }
1084         }
1085         if (__pEditFieldTitle != NULL)
1086         {
1087                 title = __pEditFieldTitle->GetText();
1088                 title.Trim();
1089         }
1090
1091         if (__pEditFieldUrl != NULL)
1092         {
1093                 url = __pEditFieldUrl->GetText();
1094                 url.Trim();
1095         }
1096
1097         // To disable done button if either of the Title or Url field is empty
1098         if (title.GetLength() == 0 || url.GetLength() == 0)
1099         {
1100                 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
1101                 pHeader->Invalidate(true);
1102         }
1103         else
1104         {
1105                 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
1106                 pHeader->Invalidate(true);
1107         }
1108
1109         if(__pList != null)
1110         {
1111
1112                 __pList->UpdateList();
1113                 __listHeight = __dropdownItemHeight + (__pList->GetItemCount() - 1) * __itemHeight;
1114                 __pList->SetBounds(__pList->GetX(),__pList->GetY(),__pList->GetWidth(),__listHeight);
1115                 AppLog("ListWidth %d",__pList->GetWidth());
1116         }
1117
1118         Invalidate(true);
1119         //      __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
1120         CATCH : return;
1121 }
1122
1123 void
1124 AddBookmarkForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1125 {
1126         // Add code to handle events when the AddBookmarkForm is Deactivated.
1127         if ( __pEditFieldTitle != NULL)
1128         {
1129                 __titleOnViewDeactivated = __pEditFieldTitle->GetText();
1130         }
1131
1132         if ( __pEditFieldUrl != NULL)
1133         {
1134                 __urlOnViewDeactivated = __pEditFieldUrl->GetText();
1135         }
1136
1137         __oldFolderCount = __folderCount;
1138
1139         if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") )
1140         {
1141                 __selectedIndex = 0;
1142         }
1143         return;
1144 }
1145
1146 void
1147 AddBookmarkForm::OnFocusGained (const Tizen::Ui::Control &source)
1148 {
1149         __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
1150         __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
1151         __pScrollPanel->SetClientAreaHeight(GetClientAreaBounds().height);
1152         Invalidate(true);
1153         return;
1154
1155 }
1156 void
1157 AddBookmarkForm::OnFocusLost (const Tizen::Ui::Control &source)
1158 {
1159
1160 }
1161
1162 void
1163 AddBookmarkForm::OnTextValueChanged(const Control& source)
1164 {
1165         String title = L"";
1166         String url = L"";
1167         Header* pHeader = GetHeader();
1168         if (pHeader == NULL)
1169         {
1170                 return;
1171         }
1172
1173         if (__pEditFieldTitle == NULL || __pEditFieldUrl == NULL)
1174         {
1175                 return;
1176         }
1177
1178         title = __pEditFieldTitle->GetText();
1179         url = __pEditFieldUrl->GetText();
1180         title.Trim();
1181         url.Trim();
1182
1183         // To disable done button if either of the Title or Url field is empty
1184         if (title.GetLength() == 0 || url.GetLength() == 0)
1185         {
1186                 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
1187                 pHeader->Invalidate(true);
1188         }
1189         else
1190         {
1191                 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
1192                 pHeader->Invalidate(true);
1193         }
1194
1195         return;
1196 }
1197
1198 void
1199 AddBookmarkForm::OnTextValueChangeCanceled(const Control& source)
1200 {
1201         return;
1202 }
1203
1204 void
1205 AddBookmarkForm::CreateMessage(String& str)
1206 {
1207         Tizen::Ui::Controls::MessageBox* pMsgBox = null;       // Message Box to display alert if folder with same name already exists
1208         int __modalMsgBoxResult;
1209
1210         pMsgBox = new(std::nothrow) MessageBox;
1211         if (pMsgBox != null)
1212         {
1213                 pMsgBox->Construct(L"", str, MSGBOX_STYLE_OK, 3000);
1214                 pMsgBox->ShowAndWait(__modalMsgBoxResult);
1215                 delete pMsgBox;
1216                 pMsgBox = null;
1217                 __modalMsgBoxResult = 0;
1218         }
1219
1220         return;
1221 }
1222
1223 void
1224 AddBookmarkForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
1225 {
1226         //      if (__pEditFieldTitle != NULL)
1227         //      {
1228         //              __pEditFieldTitle->HideKeypad();
1229         //      }
1230         //      if (__pEditFieldUrl != NULL)
1231         //      {
1232         //              __pEditFieldUrl->HideKeypad();
1233         //      }
1234
1235         AppLog("AddBookmarkForm::OnOrientationChanged ClientAreaBound %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
1236         if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE)
1237         {
1238                 if (__pScrollPanel != null)
1239                 {
1240                         __pScrollPanel->ScrollToTop();
1241                         __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
1242                 }
1243         }
1244
1245         if (__pList != null)
1246         {
1247                 __pList->SetBounds(__pList->GetX(),__pList->GetY(),GetClientAreaBounds().width,__listHeight);
1248 //              __pList->UpdateList();
1249         }
1250         Invalidate(true);
1251 }