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 = 124;
46 static const int H_ITEM_HEIGHT = 112;
47 static const int H_TITLE_ITEM_HEIGHT = 150;
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"")
80 AddBookmarkForm::~AddBookmarkForm(void)
82 // RemoveAllControls();
86 AddBookmarkForm::Initialize(void)
88 Construct(L"IDL_ADD_BOOKMARK");
94 AddBookmarkForm::OnInitializing(void)
97 Header* pHeader = null;
99 SceneManager* pSceneManager = SceneManager::GetInstance();
100 if (pSceneManager == null)
104 pSceneManager->AddSceneEventListener(IDSCN_ADD_BOOKMARK, *this);
106 pHeader = GetHeader();
108 SetFormBackEventListener(this);
111 pHeader->AddActionEventListener(*this);
114 // Main Panel which is a Scroll Panel
115 __pScrollPanel = static_cast< ScrollPanel* >(GetControl(L"IDC_SCROLLPANEL2"));
117 if (__pScrollPanel == null)
121 __pScrollPanel->SetPageScrollEnabled(true);
122 // Title EditField added on the Scroll Panel
123 __pEditFieldTitle = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD1"));
125 if (__pEditFieldTitle == null)
130 __pEditFieldTitle->SetGuideText(CommonUtil::GetString(L"IDS_BR_POP_ENTER_BOOKMARK_NAME"));
131 __pEditFieldTitle->AddTextEventListener(*this);
132 __pEditFieldTitle->AddKeypadEventListener(*this);
133 __pEditFieldTitle->SetOverlayKeypadCommandButtonVisible(false);
135 // Url Editfield added on the Scroll Panel
136 __pEditFieldUrl = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD2"));
138 if (__pEditFieldUrl == null)
143 __pEditFieldUrl->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
144 __pEditFieldUrl->AddTextEventListener(*this);
145 __pEditFieldUrl->AddKeypadEventListener(*this);
146 __pEditFieldUrl->AddFocusEventListener(*this);
147 __pEditFieldUrl->SetOverlayKeypadCommandButtonVisible(false);
149 __pList = static_cast< ListView* >(__pScrollPanel->GetControl(L"IDC_LISTVIEW1"));
155 __pList->SetItemProvider(*this);
156 __pList->AddListViewItemEventListener(*this);
157 AddOrientationEventListener(*this);
159 __pScrollPanel->SetSize(GetClientAreaBounds().width, GetClientAreaBounds().height);
160 r = __pScrollPanel->SetClientAreaHeight(__pList->GetY() + __listHeight);
161 ScrollPanelScrollDirection direction = __pScrollPanel->GetScrollDirection();
162 AppLogDebug("ScrollDirection = %d SetClientAreaHeight ret = %s value = %d autoresize = %d",direction,GetErrorMessage(r),__pScrollPanel->GetClientAreaBounds().height,__pScrollPanel->IsScrollAreaAutoResizingEnabled());
163 __fontSize = CommonUtil::GetFontSize();
170 AddBookmarkForm::OnTerminating(void)
172 result r = E_SUCCESS;
177 AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
179 AppLog("AddBookmarkForm::OnActionPerformed entered actionId %d",actionId);
181 SceneManager* pSceneManager = SceneManager::GetInstance();
183 if (pSceneManager == null)
190 case IDA_CREATE_BOOKMARK_FOLDER:
192 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
196 case IDA_BUTTON_DONE:
198 // Code to save the Bookmark
201 String bookMarkID = L"";
202 String folderTitle = L"";
203 ArrayList folderList;
212 String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
213 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)
215 RegularExpression firstRegex;
216 RegularExpression secondRegex;
218 firstRegex.Construct(firstPattern, REGEX_CASELESS);
219 secondRegex.Construct(secondPattern, REGEX_CASELESS);
221 title = __pEditFieldTitle->GetText();
222 Url = __pEditFieldUrl->GetText();
225 ret = firstRegex.Match(Url, false); // This returns true value
226 flag = secondRegex.Match(Url, false); // Checks whether Url typed is of type abc.com (i.e without protocol in front of it)
234 String tempUrl = L"http://";
246 String msg = CommonUtil::GetString(L"IDS_COM_POP_INVALID_URL");
251 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
257 tempUrl = __pBookmark->GetUrl();
258 tempTitle = __pBookmark->GetBookmarkTitle();
259 tempParentId = __pBookmark->GetParentId();
263 r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
264 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
266 for (count = 0; count < __folderCount; count++)
268 BookmarkData* pBookmark = null;
269 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
270 if (pBookmark == NULL)
274 folderTitle = pBookmark->GetBookmarkTitle();
276 if (folderTitle == __folderName)
278 bookMarkID = pBookmark->GetBookmarkId();
283 if(bookMarkID.GetLength() == 0)
288 AppLog("IDA_BUTTON_DONE tempParentId ID is %S",tempParentId.GetPointer());
289 AppLog("IDA_BUTTON_DONE bookMarkID ID is %S",bookMarkID.GetPointer());
290 String urlText = __pEditFieldUrl->GetText();
291 String urlWithSlash = L"";
292 String urlWithoutSlash = L"";
293 if(urlText.EndsWith(L"/"))
295 urlWithSlash = urlText;
296 urlText.SubString(0,urlText.GetLength()-1,urlWithoutSlash);
300 urlWithoutSlash = urlText;
301 urlWithSlash = urlWithoutSlash;
302 urlWithSlash.Append(L"/");
305 if (bookMarkID.CompareTo(tempParentId) == 0 && (urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 )&& __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
307 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
311 if(tempUrl != __pEditFieldUrl->GetText() || tempParentId != bookMarkID)
313 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
314 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
318 if ( exist == true && !(urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 ))
320 String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
323 AppLogDebug("Bookmark already exists");
327 __pBookmark->SetUrl(Url);
328 __pBookmark->SetBookmarkTitle(title);
330 if (bookMarkID == L"")
332 __pBookmark->SetParentId(L"0");
336 __pBookmark->SetParentId(bookMarkID);
339 r = BookmarkPresentationModel::GetInstance()->SaveTempBookmark(*__pBookmark);
340 AppLogDebug("ID_BUTTON_DONE SaveBookmark = %s", GetErrorMessage(r));
341 AppLogDebug("parent id = %ls",__pBookmark->GetParentId().GetPointer());
342 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
347 AppLog("AddBookmarkForm::OnActionPerformed does url exist 1");
349 r = BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
350 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
352 for (count = 0; count < __folderCount; count++)
354 BookmarkData* pBookmark = null;
355 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
356 if (pBookmark == NULL)
360 folderTitle = pBookmark->GetBookmarkTitle();
362 if (folderTitle == __folderName)
364 bookMarkID = pBookmark->GetBookmarkId();
368 if(bookMarkID.GetLength() == 0)
372 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
374 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
375 AppLog("AddBookmarkForm::OnActionPerformed does url exist 2");
378 String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
381 AppLogDebug("Bookmark already exists");
385 r = BookmarkPresentationModel::GetInstance()->GetFolder("0", 0, __folderCount, folderList);
386 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
388 for (count = 0; count < __folderCount; count++)
390 BookmarkData* pBookmark = null;
391 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
392 if ( pBookmark == NULL )
396 folderTitle = pBookmark->GetBookmarkTitle();
398 if (folderTitle == __folderName)
400 bookMarkID = pBookmark->GetBookmarkId();
404 BookmarkData bookmark;
406 if (__folderName != CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
408 bookmark.SetParentId(bookMarkID);
411 bookmark.SetBookmarkTitle(title);
412 bookmark.SetUrl(Url);
413 if (__pBookmark != null)
415 bookmark.SetFaviconId(__pBookmark->GetFaviconId());
417 BookmarkPresentationModel::GetInstance()->SaveTempBookmark(bookmark);
418 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
423 folderList.RemoveAll(true);
427 case IDA_BUTTON_CANCEL:
429 if (__pEditFieldTitle != NULL)
431 __pEditFieldTitle->Clear();
434 if (__pEditFieldUrl != NULL)
436 __pEditFieldUrl->Clear();
439 pSceneManager->GoBackward(BackwardSceneTransition());
452 AddBookmarkForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
454 SceneManager* pSceneManager = SceneManager::GetInstance();
456 if (pSceneManager == null)
461 if (__pEditFieldTitle != NULL)
463 __pEditFieldTitle->Clear();
466 if (__pEditFieldUrl != NULL)
468 __pEditFieldUrl->Clear();
471 pSceneManager->GoBackward(BackwardSceneTransition());
476 AddBookmarkForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
482 AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
484 if (__pEditFieldTitle != NULL)
486 __pEditFieldTitle->HideKeypad();
489 if (__pEditFieldUrl != NULL)
491 __pEditFieldUrl->HideKeypad();
495 if (__showFolderList == false)
497 AppLog("AddBookmarkForm::OnListViewItemStateChanged false");
498 __showFolderList = true;
499 __pList->UpdateList();
500 __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() -1) * H_ITEM_HEIGHT;
505 AppLog("AddBookmarkForm::OnListViewItemStateChanged true");
506 __showFolderList = false;
507 __pList->UpdateList();
508 __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() - 1) * H_ITEM_HEIGHT;
515 __selectedIndex = index;
516 if (index > 1 && __pList->GetItemCount() != index +1)
518 String parentID = "0";
519 ArrayList folderList;
520 BookmarkData* pBookmark = null;
521 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
523 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(index-2));
524 __folderName = pBookmark->GetBookmarkTitle();
528 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
530 __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount()-1) * H_ITEM_HEIGHT;
531 if (__pList->GetItemCount() == index +1)
533 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
537 __pList->UpdateList();
538 // __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
542 result r = __pList->SetBounds(Rectangle(__pList->GetX(), __pList->GetY(), __pList->GetWidth(), __listHeight));
543 //__pList->Invalidate(true);
545 AppLog("the result is %s", GetErrorMessage(r));
546 AppLog("the list height is %d", __pList->GetHeight());
551 AddBookmarkForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
553 __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
558 AddBookmarkForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus state)
564 AddBookmarkForm::GetItemCount(void)
566 AppLogDebug("AddBookmarkForm::GetItemCount");
568 ArrayList folderList;
569 String parentID = "0";
570 BookmarkData* pBookmark = null;
571 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
573 if (__selectedIndex == 0 && __view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
575 for(int count = 0; count < __folderCount; count++)
577 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
579 if (__pBookmark != null && pBookmark != NULL && __pBookmark->GetParentId() == pBookmark->GetBookmarkId())
581 __selectedIndex = count + 2;
582 __folderName = pBookmark->GetBookmarkTitle();
592 folderList.RemoveAll(true);
594 if (__showFolderList == false)
600 result r = BookmarkPresentationModel::GetInstance()->GetFolderCount(L"0",count);
601 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
602 AppLog("count = %d", count);
611 AddBookmarkForm::CreateItem(int index, int itemWidth)
613 AppLog("AddBookmarkForm::CreateItem index = %d itemWidth %d list width = %d",index,itemWidth,__pList->GetWidth());
614 result r = E_FAILURE;
615 String folderTitle = L"";
616 RadioCustomItem* radioItem = null;
617 DropDownCustomItem* pItem = null;
618 Bitmap* pBitmap = null;
619 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_LIST_LEFT_SIDE);
620 const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
621 const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
624 itemWidth = __pList->GetWidth();
628 pItem = new(std::nothrow) DropDownCustomItem();
629 r = pItem->Construct(itemWidth);
633 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
639 if ( __showFolderList == true )
641 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
645 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
649 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
650 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
651 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
652 pItem->SetMainText(CommonUtil::GetString(L"IDS_BR_HEADER_FOLDER"));
653 pItem->SetSubText(__folderName);
657 //pItem->AddElement(Rectangle(0, 0, 10, H_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
664 String parentID = "0";
665 ArrayList folderList;
667 BookmarkData* pBookmark = null;
668 r = BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
672 radioItem = new(std::nothrow) RadioCustomItem();
673 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
674 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
677 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
683 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
684 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
686 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
687 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
688 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
689 folderTitle = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
690 radioItem->SetText(folderTitle);
692 else if (index <= __folderCount + 1)
694 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(index - 2));
695 if (pBookmark != null)
697 folderTitle = pBookmark->GetBookmarkTitle();
699 radioItem = new(std::nothrow) RadioCustomItem();
700 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
701 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
704 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
710 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
711 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
712 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
713 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
714 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
715 radioItem->SetText(folderTitle);
719 radioItem = new(std::nothrow) RadioCustomItem();
720 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
721 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
724 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
729 //radioItem->AddElement(Rectangle(MARGIN_X, 0, __pList->GetBounds().width, LIST_ITEM_HEIGHT), 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);
730 folderTitle = CommonUtil::GetString(L"IDS_BR_OPT_NEW_FOLDER");
731 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
732 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
733 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
734 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
735 // radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
736 radioItem->SetText(folderTitle);
740 if (__selectedIndex == index)
742 // radioItem->SetSelected(true);
743 __pList->SetItemChecked(index,true);
747 // radioItem->SetSelected(false);
748 __pList->SetItemChecked(index,false);
751 if(__selectedIndex == 0 && index == 1)
753 // radioItem->SetSelected(true);
754 __pList->SetItemChecked(index,true);
756 if (__pList->IsItemChecked(index) == true)
758 __folderName = radioItem->GetText();
763 //radioItem->AddElement(Rectangle(0, 0, 10, LIST_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
767 folderList.RemoveAll(true);
774 AddBookmarkForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
786 AddBookmarkForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
792 AddBookmarkForm::OnKeypadClosed(Control& source)
795 AppLog("the client area height is %d",GetClientAreaBounds().height);
797 __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
798 __pScrollPanel->Invalidate(true);
805 AddBookmarkForm::OnKeypadOpened(Control& source)
811 AddBookmarkForm::OnKeypadWillOpen(Control& source)
813 AppLog("the client area height is %d",GetClientAreaBounds().height);
815 // __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
817 // __pScrollPanel->Invalidate(true);
818 // __pScrollPanel->SetScrollPosition(source.GetY()-48,false);
819 __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
820 __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
821 __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
823 AppLog("the scroll panel height is Rect(%d,%d,%d,%d) ClientHeight = %d",__pScrollPanel->GetX(),__pScrollPanel->GetY(),__pScrollPanel->GetWidth(),__pScrollPanel->GetHeight(),__pScrollPanel->GetClientAreaBounds().height);
828 AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
830 // Code to handle events when the AddBookmarkForm is activated.
832 String pageTitle = L"";
833 String pageUrl = L"";
836 result r = E_FAILURE;
837 Header* pHeader = GetHeader();
839 r = BookmarkPresentationModel::GetInstance()->GetFolderCount(str, __folderCount);
840 TryCatch( r == E_SUCCESS, ,"Failed to intitialize GETFOLDERCOUNT %s",GetErrorMessage(r));
842 if ( pHeader == NULL )
846 if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
848 // check first argument of pargs 0 for Add, 1 - for Edit
849 String* firstValue = NULL;
852 firstValue = dynamic_cast<String*>(pArgs->GetAt(0));
855 if( firstValue == NULL || pArgs == NULL)
859 if (firstValue->CompareTo(L"1") == 0)
861 __view = CommonUtil::GetString(L"IDS_BR_SK_EDIT");
863 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
865 if (__pBookmark != NULL && pArgs != NULL)
871 if (__pBookmark == NULL && pArgs != NULL)
873 __pBookmark = dynamic_cast<BookmarkData*>(pArgs->GetAt(1));
878 pageTitle = __pBookmark->GetBookmarkTitle();
879 pageUrl = __pBookmark->GetUrl();
882 else if (firstValue->CompareTo(L"0") == 0)
884 __view = CommonUtil::GetString(L"IDS_COM_SK_ADD");
885 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
887 WindowInfo* pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
889 if( pWindowInfo == NULL )
894 if(pWindowInfo->pageTitle.CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_ABOUT_C_BLANK")) != 0)
895 pageTitle = pWindowInfo->pageTitle;
897 if(pWindowInfo->pageUrl.IsEmpty() == false)
899 pageUrl = pWindowInfo->pageUrl;
901 String* parentID = dynamic_cast<String*>(pArgs->GetAt(1));
903 ArrayList folderList;
905 BookmarkData* pBookmark = null;
906 BookmarkPresentationModel::GetInstance()->GetFolder(L"0", 0, __folderCount, folderList);
907 for(int count = 0; count < folderList.GetCount(); count++)
909 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
911 if ( pBookmark == null )
916 if (parentID != NULL && pBookmark->GetBookmarkId().CompareTo(parentID->GetPointer()) == 0)
918 __selectedIndex = count + 2;
919 __folderName = pBookmark->GetBookmarkTitle();
924 __selectedIndex = 1 ;
925 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
930 if (__folderCount == 0)
932 __selectedIndex = 1 ;
933 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
936 folderList.RemoveAll(true);
940 if ( previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
942 pageTitle = __titleOnViewDeactivated;
943 pageUrl = __urlOnViewDeactivated;
944 if(__pList && __pScrollPanel)
946 AppLog("__pList->GetItemCount() %d",__pList->GetItemCount());
947 __pList->ScrollToItem(__pList->GetItemCount());
948 // __pList->Invalidate(true);
949 __pScrollPanel->ScrollToBottom();
953 if(__pEditFieldTitle != NULL)
955 __pEditFieldTitle->ShowKeypad();
957 if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
959 if (__pEditFieldTitle != NULL)
961 __pEditFieldTitle->SetText(pageTitle);
962 __pEditFieldTitle->ShowKeypad();
964 if (__pEditFieldUrl != NULL)
966 __pEditFieldUrl->SetText(pageUrl);
967 __pEditFieldUrl->HideKeypad();
973 if (__pEditFieldTitle != NULL)
975 __pEditFieldTitle->SetText(pageTitle);
976 __pEditFieldTitle->HideKeypad();
978 if (__pEditFieldUrl != NULL)
980 __pEditFieldUrl->SetText(pageUrl);
981 __pEditFieldUrl->HideKeypad();
984 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
986 if (__oldFolderCount == 0)
988 if (__folderCount == 1)
993 else if (__oldFolderCount != __folderCount)
995 __selectedIndex = __folderCount + 1;
997 if(__selectedIndex > 1)
999 String parentID = L"0";
1000 ArrayList folderList;
1001 BookmarkData* pBookmark = null;
1002 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
1003 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(__selectedIndex-2));
1004 if(pBookmark != null)
1006 __folderName = pBookmark->GetBookmarkTitle();
1011 if (__view == CommonUtil::GetString(L"IDS_COM_SK_ADD") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER)
1014 if (__oldFolderCount == 0)
1016 if (__folderCount == 1)
1018 __selectedIndex = 2;
1021 else if (__oldFolderCount != __folderCount)
1023 __selectedIndex = __folderCount + 1;
1026 else if (__oldFolderCount == __folderCount )
1028 __selectedIndex = __folderCount + 1;
1030 if(__selectedIndex > 1)
1032 String parentID = L"0";
1033 ArrayList folderList;
1034 BookmarkData* pBookmark = null;
1035 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
1036 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(__selectedIndex-2));
1037 if(pBookmark != null)
1039 __folderName = pBookmark->GetBookmarkTitle();
1043 if (__pEditFieldTitle != NULL)
1045 title = __pEditFieldTitle->GetText();
1049 if (__pEditFieldUrl != NULL)
1051 url = __pEditFieldUrl->GetText();
1055 // To disable done button if either of the Title or Url field is empty
1056 if (title.GetLength() == 0 || url.GetLength() == 0)
1058 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
1059 pHeader->Invalidate(true);
1063 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
1064 pHeader->Invalidate(true);
1070 __pList->UpdateList();
1071 __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() - 1) * H_ITEM_HEIGHT;
1072 __pList->SetBounds(__pList->GetX(),__pList->GetY(),__pList->GetWidth(),__listHeight);
1076 // __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
1081 AddBookmarkForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1083 // Add code to handle events when the AddBookmarkForm is Deactivated.
1084 if ( __pEditFieldTitle != NULL)
1086 __titleOnViewDeactivated = __pEditFieldTitle->GetText();
1089 if ( __pEditFieldUrl != NULL)
1091 __urlOnViewDeactivated = __pEditFieldUrl->GetText();
1094 __oldFolderCount = __folderCount;
1096 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") )
1098 __selectedIndex = 0;
1104 AddBookmarkForm::OnFocusGained (const Tizen::Ui::Control &source)
1106 __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
1107 __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
1108 __pScrollPanel->SetClientAreaHeight(GetClientAreaBounds().height);
1114 AddBookmarkForm::OnFocusLost (const Tizen::Ui::Control &source)
1120 AddBookmarkForm::OnTextValueChanged(const Control& source)
1124 Header* pHeader = GetHeader();
1125 if (pHeader == NULL)
1130 if (__pEditFieldTitle == NULL || __pEditFieldUrl == NULL)
1135 title = __pEditFieldTitle->GetText();
1136 url = __pEditFieldUrl->GetText();
1140 // To disable done button if either of the Title or Url field is empty
1141 if (title.GetLength() == 0 || url.GetLength() == 0)
1143 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
1144 pHeader->Invalidate(true);
1148 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
1149 pHeader->Invalidate(true);
1156 AddBookmarkForm::OnTextValueChangeCanceled(const Control& source)
1162 AddBookmarkForm::CreateMessage(String& str)
1164 Tizen::Ui::Controls::MessageBox* pMsgBox = null; // Message Box to display alert if folder with same name already exists
1165 int __modalMsgBoxResult;
1167 pMsgBox = new(std::nothrow) MessageBox;
1168 if (pMsgBox != null)
1170 pMsgBox->Construct(L"", str, MSGBOX_STYLE_OK, 3000);
1171 pMsgBox->ShowAndWait(__modalMsgBoxResult);
1174 __modalMsgBoxResult = 0;
1181 AddBookmarkForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
1183 // if (__pEditFieldTitle != NULL)
1185 // __pEditFieldTitle->HideKeypad();
1187 // if (__pEditFieldUrl != NULL)
1189 // __pEditFieldUrl->HideKeypad();
1192 AppLog("AddBookmarkForm::OnOrientationChanged ClientAreaBound %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
1193 if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE)
1195 if (__pScrollPanel != null)
1197 __pScrollPanel->ScrollToTop();
1198 __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
1202 if (__pList != null)
1204 __pList->SetBounds(__pList->GetX(),__pList->GetY(),GetClientAreaBounds().width,__listHeight);
1205 __pList->UpdateList();