3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://floralicense.org/license/
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.
19 /*@file: AddBookmarkForm.cpp
20 *@brief: This header file contains the definitions of the AddBookmarkForm class.
24 #include <FAppUiApp.h>
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"
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;
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";
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;
56 AddBookmarkForm::AddBookmarkForm(void)
59 ,__folderName(CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
60 ,__listHeight(H_TITLE_ITEM_HEIGHT)
63 , __pEditFieldTitle(null)
64 , __pEditFieldUrl(null)
67 , __previousScene(null)
68 , __pScrollPanel(null)
71 , __showFolderList(false)
72 ,__titleOnViewDeactivated(L"")
74 ,__urlOnViewDeactivated(L"")
76 , __dropdownItemHeight(0)
81 AddBookmarkForm::~AddBookmarkForm(void)
83 // RemoveAllControls();
87 AddBookmarkForm::Initialize(void)
89 Construct(L"IDL_ADD_BOOKMARK");
95 AddBookmarkForm::OnInitializing(void)
98 Header* pHeader = null;
100 SceneManager* pSceneManager = SceneManager::GetInstance();
101 if (pSceneManager == null)
105 pSceneManager->AddSceneEventListener(IDSCN_ADD_BOOKMARK, *this);
107 pHeader = GetHeader();
109 SetFormBackEventListener(this);
112 pHeader->AddActionEventListener(*this);
115 // Main Panel which is a Scroll Panel
116 __pScrollPanel = static_cast< ScrollPanel* >(GetControl(L"IDC_SCROLLPANEL2"));
118 if (__pScrollPanel == null)
122 //__pScrollPanel->SetPageScrollEnabled(true);
123 // Title EditField added on the Scroll Panel
124 __pEditFieldTitle = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD1"));
126 if (__pEditFieldTitle == null)
131 __pEditFieldTitle->SetGuideText(CommonUtil::GetString(L"IDS_BR_POP_ENTER_BOOKMARK_NAME"));
132 __pEditFieldTitle->AddTextEventListener(*this);
133 __pEditFieldTitle->AddKeypadEventListener(*this);
134 __pEditFieldTitle->SetOverlayKeypadCommandButtonVisible(false);
136 // Url Editfield added on the Scroll Panel
137 __pEditFieldUrl = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD2"));
139 if (__pEditFieldUrl == null)
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);
150 __pList = static_cast< ListView* >(__pScrollPanel->GetControl(L"IDC_LISTVIEW1"));
156 __pList->SetItemProvider(*this);
157 __pList->AddListViewItemEventListener(*this);
158 AddOrientationEventListener(*this);
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);
172 AddBookmarkForm::OnTerminating(void)
174 result r = E_SUCCESS;
179 AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
181 AppLog("AddBookmarkForm::OnActionPerformed entered actionId %d",actionId);
183 SceneManager* pSceneManager = SceneManager::GetInstance();
185 if (pSceneManager == null)
192 case IDA_CREATE_BOOKMARK_FOLDER:
194 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
198 case IDA_BUTTON_DONE:
200 // Code to save the Bookmark
203 String bookMarkID = L"";
204 String folderTitle = L"";
205 ArrayList folderList;
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)
217 RegularExpression firstRegex;
218 RegularExpression secondRegex;
220 firstRegex.Construct(firstPattern, REGEX_CASELESS);
221 secondRegex.Construct(secondPattern, REGEX_CASELESS);
223 title = __pEditFieldTitle->GetText();
224 Url = __pEditFieldUrl->GetText();
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)
237 if((Url.Contains("http://") == true) || (Url.Contains("https://") == true))
243 tempUrl = L"http://";
256 String msg = CommonUtil::GetString(L"IDS_COM_POP_INVALID_URL");
261 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
267 tempUrl = __pBookmark->GetUrl();
268 tempTitle = __pBookmark->GetBookmarkTitle();
269 tempParentId = __pBookmark->GetParentId();
273 r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
274 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
276 for (count = 0; count < __folderCount; count++)
278 BookmarkData* pBookmark = null;
279 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
280 if (pBookmark == NULL)
284 folderTitle = pBookmark->GetBookmarkTitle();
286 if (folderTitle == __folderName)
288 bookMarkID = pBookmark->GetBookmarkId();
293 if(bookMarkID.GetLength() == 0)
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"/"))
305 urlWithSlash = urlText;
306 urlText.SubString(0,urlText.GetLength()-1,urlWithoutSlash);
310 urlWithoutSlash = urlText;
311 urlWithSlash = urlWithoutSlash;
312 urlWithSlash.Append(L"/");
315 if(urlWithSlash.Contains("http://") == true)
317 urlWithSlash.SubString(7,urlWithSlash.GetLength()-7,urlWithSlash);
319 else if(urlWithSlash.Contains("https://") == true)
321 urlWithSlash.SubString(8,urlWithSlash.GetLength()-8,urlWithSlash);
324 if(urlWithoutSlash.Contains("http://") == true)
326 urlWithoutSlash.SubString(7,urlWithoutSlash.GetLength()-7,urlWithoutSlash);
328 else if(urlWithoutSlash.Contains("https://") == true)
330 urlWithoutSlash.SubString(8,urlWithoutSlash.GetLength()-8,urlWithoutSlash);
334 if((tempUrl.Contains("http://") == true) )
336 tempUrl.SubString(7,tempUrl.GetLength()-7,tempUrl);
338 else if (tempUrl.Contains("https://") == true)
340 tempUrl.SubString(8,tempUrl.GetLength()-8,tempUrl);
342 if (bookMarkID.CompareTo(tempParentId) == 0 && (urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 )&& __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
344 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
348 if(tempUrl != __pEditFieldUrl->GetText() || tempParentId != bookMarkID)
350 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
351 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
355 if ( exist == true && !(urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 ))
357 String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
360 AppLogDebug("Bookmark already exists");
364 __pBookmark->SetUrl(Url);
365 __pBookmark->SetBookmarkTitle(title);
367 if (bookMarkID == L"")
369 __pBookmark->SetParentId(L"0");
373 __pBookmark->SetParentId(bookMarkID);
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));
384 AppLog("AddBookmarkForm::OnActionPerformed does url exist 1");
386 r = BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
387 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
389 for (count = 0; count < __folderCount; count++)
391 BookmarkData* pBookmark = null;
392 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
393 if (pBookmark == NULL)
397 folderTitle = pBookmark->GetBookmarkTitle();
399 if (folderTitle == __folderName)
401 bookMarkID = pBookmark->GetBookmarkId();
405 if(bookMarkID.GetLength() == 0)
409 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
411 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
412 AppLog("AddBookmarkForm::OnActionPerformed does url exist 2");
415 String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
418 AppLogDebug("Bookmark already exists");
422 r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
423 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
425 for (count = 0; count < __folderCount; count++)
427 BookmarkData* pBookmark = null;
428 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
429 if ( pBookmark == NULL )
433 folderTitle = pBookmark->GetBookmarkTitle();
435 if (folderTitle == __folderName)
437 bookMarkID = pBookmark->GetBookmarkId();
441 BookmarkData bookmark;
443 if (__folderName != CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
445 bookmark.SetParentId(bookMarkID);
448 bookmark.SetBookmarkTitle(title);
449 bookmark.SetUrl(Url);
450 if (__pBookmark != null)
452 bookmark.SetFaviconId(__pBookmark->GetFaviconId());
454 BookmarkPresentationModel::GetInstance()->SaveTempBookmark(bookmark);
455 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
460 folderList.RemoveAll(true);
464 case IDA_BUTTON_CANCEL:
466 if (__pEditFieldTitle != NULL)
468 __pEditFieldTitle->Clear();
471 if (__pEditFieldUrl != NULL)
473 __pEditFieldUrl->Clear();
476 pSceneManager->GoBackward(BackwardSceneTransition());
489 AddBookmarkForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
491 SceneManager* pSceneManager = SceneManager::GetInstance();
493 if (pSceneManager == null)
498 if (__pEditFieldTitle != NULL)
500 __pEditFieldTitle->Clear();
503 if (__pEditFieldUrl != NULL)
505 __pEditFieldUrl->Clear();
508 pSceneManager->GoBackward(BackwardSceneTransition());
513 AddBookmarkForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
519 AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
521 AppLog("AddBookmarkForm::OnListViewItemStateChanged listitemstatus %d for index",status,index);
522 if (__pEditFieldTitle != NULL)
524 __pEditFieldTitle->HideKeypad();
527 if (__pEditFieldUrl != NULL)
529 __pEditFieldUrl->HideKeypad();
533 if (__showFolderList == false)
535 AppLog("AddBookmarkForm::OnListViewItemStateChanged false");
536 __showFolderList = true;
537 __pList->UpdateList();
538 __listHeight = __dropdownItemHeight + (__pList->GetItemCount() -1) * __itemHeight;
543 AppLog("AddBookmarkForm::OnListViewItemStateChanged true");
544 __showFolderList = false;
545 __pList->UpdateList();
546 __listHeight = __dropdownItemHeight + (__pList->GetItemCount() - 1) * __itemHeight;
553 __pList->SetItemChecked(__selectedIndex,false);
554 __pList->SetItemChecked(index,true);
555 __selectedIndex = index;
557 if (index > 1 && __pList->GetItemCount() != index +1)
559 String parentID = "0";
560 ArrayList folderList;
561 BookmarkData* pBookmark = null;
562 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
564 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(index-2));
565 __folderName = pBookmark->GetBookmarkTitle();
569 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
571 __listHeight = __dropdownItemHeight + (__pList->GetItemCount()-1) * __itemHeight;
572 if (__pList->GetItemCount() == index +1)
574 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
578 // __pList->UpdateList();//removed for issue 53372
579 __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
583 result r = __pList->SetBounds(Rectangle(__pList->GetX(), __pList->GetY(), __pList->GetWidth(), __listHeight));
584 //__pList->Invalidate(true);
586 AppLog("the result is %s", GetErrorMessage(r));
587 AppLog("the list height is %d", __pList->GetHeight());
592 AddBookmarkForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
594 __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
599 AddBookmarkForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus state)
605 AddBookmarkForm::GetItemCount(void)
607 AppLogDebug("AddBookmarkForm::GetItemCount");
609 ArrayList folderList;
610 String parentID = "0";
611 BookmarkData* pBookmark = null;
612 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
614 if (__selectedIndex == 0 && __view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
616 for(int count = 0; count < __folderCount; count++)
618 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
620 if (__pBookmark != null && pBookmark != NULL && __pBookmark->GetParentId() == pBookmark->GetBookmarkId())
622 __selectedIndex = count + 2;
623 __folderName = pBookmark->GetBookmarkTitle();
633 folderList.RemoveAll(true);
635 if (__showFolderList == false)
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);
652 AddBookmarkForm::CreateItem(int index, int itemWidth)
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;
665 itemWidth = __pList->GetWidth();
669 pItem = new(std::nothrow) DropDownCustomItem();
670 r = pItem->Construct(itemWidth);
674 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
680 __dropdownItemHeight = 140 + (__fontSize - 44);
681 if ( __showFolderList == true )
683 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
687 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
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);
699 //pItem->AddElement(Rectangle(0, 0, 10, H_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
706 String parentID = "0";
707 ArrayList folderList;
709 BookmarkData* pBookmark = null;
710 r = BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
714 radioItem = new(std::nothrow) RadioCustomItem();
715 // r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
716 r = radioItem->Construct(itemWidth, __itemHeight);
719 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
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);
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);
734 else if (index <= __folderCount + 1)
736 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(index - 2));
737 if (pBookmark != null)
739 folderTitle = pBookmark->GetBookmarkTitle();
741 radioItem = new(std::nothrow) RadioCustomItem();
742 // r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
743 r = radioItem->Construct(itemWidth, __itemHeight);
746 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
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);
761 radioItem = new(std::nothrow) RadioCustomItem();
762 // r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
763 r = radioItem->Construct(itemWidth, __itemHeight);
766 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
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);
782 if (__selectedIndex == index)
784 // radioItem->SetSelected(true);
785 __pList->SetItemChecked(index,true);
789 // radioItem->SetSelected(false);
790 __pList->SetItemChecked(index,false);
793 if(__selectedIndex == 0 && index == 1)
795 // radioItem->SetSelected(true);
796 __pList->SetItemChecked(index,true);
798 if (__pList->IsItemChecked(index) == true)
800 __folderName = radioItem->GetText();
805 //radioItem->AddElement(Rectangle(0, 0, 10, itemHeight), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
809 folderList.RemoveAll(true);
816 AddBookmarkForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
828 AddBookmarkForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
834 AddBookmarkForm::OnKeypadClosed(Control& source)
837 AppLog("the client area height is %d",GetClientAreaBounds().height);
839 __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
840 __pScrollPanel->Invalidate(true);
847 AddBookmarkForm::OnKeypadOpened(Control& source)
853 AddBookmarkForm::OnKeypadWillOpen(Control& source)
855 AppLog("the client area height is %d",GetClientAreaBounds().height);
857 // __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
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);
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);
870 AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
872 // Code to handle events when the AddBookmarkForm is activated.
874 String pageTitle = L"";
875 String pageUrl = L"";
878 result r = E_FAILURE;
879 Header* pHeader = GetHeader();
881 r = BookmarkPresentationModel::GetInstance()->GetFolderCount(str, __folderCount);
882 TryCatch( r == E_SUCCESS, ,"Failed to intitialize GETFOLDERCOUNT %s",GetErrorMessage(r));
884 if ( pHeader == NULL )
888 if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
890 // check first argument of pargs 0 for Add, 1 - for Edit
891 String* firstValue = NULL;
894 firstValue = dynamic_cast<String*>(pArgs->GetAt(0));
897 if( firstValue == NULL || pArgs == NULL)
901 if (firstValue->CompareTo(L"1") == 0)
903 __view = CommonUtil::GetString(L"IDS_BR_SK_EDIT");
905 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
907 if (__pBookmark != NULL && pArgs != NULL)
913 if (__pBookmark == NULL && pArgs != NULL)
915 __pBookmark = dynamic_cast<BookmarkData*>(pArgs->GetAt(1));
920 pageTitle = __pBookmark->GetBookmarkTitle();
921 pageUrl = __pBookmark->GetUrl();
924 else if (firstValue->CompareTo(L"0") == 0)
926 __view = CommonUtil::GetString(L"IDS_COM_SK_ADD");
927 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
929 WindowInfo* pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
931 if( pWindowInfo == NULL )
936 if(pWindowInfo->pageTitle.CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE")) != 0)
937 pageTitle = pWindowInfo->pageTitle;
939 if(pWindowInfo->pageUrl.IsEmpty() == false)
941 pageUrl = pWindowInfo->pageUrl;
943 String* parentID = dynamic_cast<String*>(pArgs->GetAt(1));
945 ArrayList folderList;
947 BookmarkData* pBookmark = null;
948 BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
949 for(int count = 0; count < folderList.GetCount(); count++)
951 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
953 if ( pBookmark == null )
958 if (parentID != NULL && pBookmark->GetBookmarkId().CompareTo(parentID->GetPointer()) == 0)
960 __selectedIndex = count + 2;
961 __folderName = pBookmark->GetBookmarkTitle();
966 __selectedIndex = 1 ;
967 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
972 if (__folderCount == 0)
974 __selectedIndex = 1 ;
975 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
978 folderList.RemoveAll(true);
982 if ( previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
984 pageTitle = __titleOnViewDeactivated;
985 pageUrl = __urlOnViewDeactivated;
986 if(__pList && __pScrollPanel)
988 AppLog("__pList->GetItemCount() %d",__pList->GetItemCount());
989 __pList->ScrollToItem(__pList->GetItemCount());
990 // __pList->Invalidate(true);
991 __pScrollPanel->ScrollToBottom();
995 // if(__pEditFieldTitle != NULL)
997 // __pEditFieldTitle->ShowKeypad();
999 if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
1001 if (__pEditFieldTitle != NULL)
1003 __pEditFieldTitle->SetText(pageTitle);
1004 __pEditFieldTitle->ShowKeypad();
1006 if (__pEditFieldUrl != NULL)
1008 __pEditFieldUrl->SetText(pageUrl);
1009 __pEditFieldUrl->HideKeypad();
1015 if (__pEditFieldTitle != NULL)
1017 __pEditFieldTitle->SetText(pageTitle);
1018 __pEditFieldTitle->HideKeypad();
1020 if (__pEditFieldUrl != NULL)
1022 __pEditFieldUrl->SetText(pageUrl);
1023 __pEditFieldUrl->HideKeypad();
1026 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
1028 if (__oldFolderCount == 0)
1030 if (__folderCount == 1)
1032 __selectedIndex = 2;
1035 else if (__oldFolderCount != __folderCount)
1037 __selectedIndex = __folderCount + 1;
1039 if(__selectedIndex > 1)
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)
1048 __folderName = pBookmark->GetBookmarkTitle();
1053 if (__view == CommonUtil::GetString(L"IDS_COM_SK_ADD") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER)
1056 if (__oldFolderCount == 0)
1058 if (__folderCount == 1)
1060 __selectedIndex = 2;
1063 else if (__oldFolderCount != __folderCount)
1065 __selectedIndex = __folderCount + 1;
1068 else if (__oldFolderCount == __folderCount )
1070 __selectedIndex = __folderCount + 1;
1072 if(__selectedIndex > 1)
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)
1081 __folderName = pBookmark->GetBookmarkTitle();
1085 if (__pEditFieldTitle != NULL)
1087 title = __pEditFieldTitle->GetText();
1091 if (__pEditFieldUrl != NULL)
1093 url = __pEditFieldUrl->GetText();
1097 // To disable done button if either of the Title or Url field is empty
1098 if (title.GetLength() == 0 || url.GetLength() == 0)
1100 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
1101 pHeader->Invalidate(true);
1105 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
1106 pHeader->Invalidate(true);
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());
1119 // __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
1124 AddBookmarkForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1126 // Add code to handle events when the AddBookmarkForm is Deactivated.
1127 if ( __pEditFieldTitle != NULL)
1129 __titleOnViewDeactivated = __pEditFieldTitle->GetText();
1132 if ( __pEditFieldUrl != NULL)
1134 __urlOnViewDeactivated = __pEditFieldUrl->GetText();
1137 __oldFolderCount = __folderCount;
1139 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") )
1141 __selectedIndex = 0;
1147 AddBookmarkForm::OnFocusGained (const Tizen::Ui::Control &source)
1149 __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
1150 __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
1151 __pScrollPanel->SetClientAreaHeight(GetClientAreaBounds().height);
1157 AddBookmarkForm::OnFocusLost (const Tizen::Ui::Control &source)
1163 AddBookmarkForm::OnTextValueChanged(const Control& source)
1167 Header* pHeader = GetHeader();
1168 if (pHeader == NULL)
1173 if (__pEditFieldTitle == NULL || __pEditFieldUrl == NULL)
1178 title = __pEditFieldTitle->GetText();
1179 url = __pEditFieldUrl->GetText();
1183 // To disable done button if either of the Title or Url field is empty
1184 if (title.GetLength() == 0 || url.GetLength() == 0)
1186 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
1187 pHeader->Invalidate(true);
1191 pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
1192 pHeader->Invalidate(true);
1199 AddBookmarkForm::OnTextValueChangeCanceled(const Control& source)
1205 AddBookmarkForm::CreateMessage(String& str)
1207 Tizen::Ui::Controls::MessageBox* pMsgBox = null; // Message Box to display alert if folder with same name already exists
1208 int __modalMsgBoxResult;
1210 pMsgBox = new(std::nothrow) MessageBox;
1211 if (pMsgBox != null)
1213 pMsgBox->Construct(L"", str, MSGBOX_STYLE_OK, 3000);
1214 pMsgBox->ShowAndWait(__modalMsgBoxResult);
1217 __modalMsgBoxResult = 0;
1224 AddBookmarkForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
1226 // if (__pEditFieldTitle != NULL)
1228 // __pEditFieldTitle->HideKeypad();
1230 // if (__pEditFieldUrl != NULL)
1232 // __pEditFieldUrl->HideKeypad();
1235 AppLog("AddBookmarkForm::OnOrientationChanged ClientAreaBound %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
1236 if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE)
1238 if (__pScrollPanel != null)
1240 __pScrollPanel->ScrollToTop();
1241 __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
1245 if (__pList != null)
1247 __pList->SetBounds(__pList->GetX(),__pList->GetY(),GetClientAreaBounds().width,__listHeight);
1248 // __pList->UpdateList();