3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
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 = 128;
47 static const wchar_t* IDB_LIST_LEFT_SIDE = L"ListLeftSide.png";
49 const int AddBookmarkForm::IDA_CREATE_BOOKMARK_FOLDER = 101;
50 const int AddBookmarkForm::IDA_BUTTON_DONE = 102;
51 const int AddBookmarkForm::IDA_BUTTON_CANCEL = 103;
52 const int AddBookmarkForm::IDA_LIST_LEFT_SIDE_MARGIN = 104;
53 const int AddBookmarkForm::IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN = 105;
55 AddBookmarkForm::AddBookmarkForm(void)
57 ,__folderName(CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
58 ,__listHeight(H_ITEM_HEIGHT)
61 , __pEditFieldTitle(null)
62 , __pEditFieldUrl(null)
65 , __previousScene(null)
66 , __pScrollPanel(null)
69 , __showFolderList(false)
70 ,__titleOnViewDeactivated(L"")
72 ,__urlOnViewDeactivated(L"")
78 AddBookmarkForm::~AddBookmarkForm(void)
80 // RemoveAllControls();
84 AddBookmarkForm::Initialize(void)
86 Construct(L"IDL_ADD_BOOKMARK");
92 AddBookmarkForm::OnInitializing(void)
95 Header* pHeader = null;
97 SceneManager* pSceneManager = SceneManager::GetInstance();
98 if (pSceneManager == null)
102 pSceneManager->AddSceneEventListener(IDSCN_ADD_BOOKMARK, *this);
104 pHeader = GetHeader();
108 pHeader->AddActionEventListener(*this);
111 // Main Panel which is a Scroll Panel
112 __pScrollPanel = static_cast< ScrollPanel* >(GetControl(L"IDC_SCROLLPANEL2"));
114 if (__pScrollPanel == null)
119 __pLabel1 = static_cast< Label* >(__pScrollPanel->GetControl(L"IDC_LABEL1"));
121 if (__pLabel1 == null)
126 // Title EditField added on the Scroll Panel
127 __pEditFieldTitle = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD1"));
129 if (__pEditFieldTitle == null)
134 __pEditFieldTitle->SetGuideText(CommonUtil::GetString(L"IDS_BR_POP_ENTER_BOOKMARK_NAME"));
135 __pEditFieldTitle->AddTextEventListener(*this);
136 __pEditFieldTitle->AddKeypadEventListener(*this);
137 __pEditFieldTitle->SetOverlayKeypadCommandButtonVisible(false);
139 // Url Editfield added on the Scroll Panel
140 __pEditFieldUrl = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD2"));
142 if (__pEditFieldUrl == null)
147 __pEditFieldUrl->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
148 __pEditFieldUrl->AddTextEventListener(*this);
149 __pEditFieldUrl->AddKeypadEventListener(*this);
150 __pEditFieldUrl->SetOverlayKeypadCommandButtonVisible(false);
152 __pList = static_cast< ListView* >(__pScrollPanel->GetControl(L"IDC_LISTVIEW1"));
158 __pList->SetItemProvider(*this);
159 __pList->AddListViewItemEventListener(*this);
160 AddOrientationEventListener(*this);
162 __pScrollPanel->SetSize(GetClientAreaBounds().width, GetClientAreaBounds().height);
163 r = __pScrollPanel->SetClientAreaHeight(__pList->GetY() + __listHeight);
164 ScrollPanelScrollDirection direction = __pScrollPanel->GetScrollDirection();
165 AppLogDebug("ScrollDirection = %d SetClientAreaHeight ret = %s value = %d autoresize = %d",direction,GetErrorMessage(r),__pScrollPanel->GetClientAreaBounds().height,__pScrollPanel->IsScrollAreaAutoResizingEnabled());
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"((https?|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)
236 String tempUrl = L"http://";
248 String msg = CommonUtil::GetString(L"IDS_BR_POP_INVALIDADDRESS");
253 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
259 tempUrl = __pBookmark->GetUrl();
260 tempTitle = __pBookmark->GetBookmarkTitle();
261 tempParentId = __pBookmark->GetParentId();
265 r = BookmarkPresentationModel::GetInstance()->GetFolder("-1", 0, __folderCount, folderList);
266 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
268 for (count = 0; count < __folderCount; count++)
270 BookmarkData* pBookmark = null;
271 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
272 if (pBookmark == NULL)
276 folderTitle = pBookmark->GetBookmarkTitle();
278 if (folderTitle == __folderName)
280 bookMarkID = pBookmark->GetBookmarkId();
288 if(bookMarkID.GetLength() == 0)
293 AppLog("IDA_BUTTON_DONE tempParentId ID is %S",tempParentId.GetPointer());
294 AppLog("IDA_BUTTON_DONE bookMarkID ID is %S",bookMarkID.GetPointer());
296 if (bookMarkID.CompareTo(tempParentId) == 0 && __pEditFieldUrl->GetText().CompareTo(tempUrl) == 0 && __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
298 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
302 if(tempUrl != __pEditFieldUrl->GetText() || tempParentId != bookMarkID)
304 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
305 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
311 String msg = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ALREADY_EXISTS");
314 AppLogDebug("Bookmark already exists");
318 __pBookmark->SetUrl(Url);
319 __pBookmark->SetBookmarkTitle(title);
321 if (bookMarkID == L"")
323 __pBookmark->SetParentId(L"-1");
327 __pBookmark->SetParentId(bookMarkID);
330 r = BookmarkPresentationModel::GetInstance()->SaveBookmark(*__pBookmark);
331 AppLogDebug("ID_BUTTON_DONE SaveBookmark = %s", GetErrorMessage(r));
332 AppLogDebug("parent id = %ls",__pBookmark->GetParentId().GetPointer());
333 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
338 AppLog("AddBookmarkForm::OnActionPerformed does url exist 1");
340 r = BookmarkPresentationModel::GetInstance()->GetFolder(L"-1", 0, __folderCount, folderList);
341 TryCatch(r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
343 for (count = 0; count < __folderCount; count++)
345 BookmarkData* pBookmark = null;
346 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
347 if (pBookmark == NULL)
351 folderTitle = pBookmark->GetBookmarkTitle();
353 if (folderTitle == __folderName)
355 bookMarkID = pBookmark->GetBookmarkId();
359 if(bookMarkID.GetLength() == 0)
363 r = BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(Url,exist, bookMarkID, true);
365 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
366 AppLog("AddBookmarkForm::OnActionPerformed does url exist 2");
369 String msg = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ALREADY_EXISTS");
372 AppLogDebug("Bookmark already exists");
377 r = BookmarkPresentationModel::GetInstance()->GetFolder("-1", 0, __folderCount, folderList);
378 TryCatch( r == E_SUCCESS,,"Failed to intitialize GetFolder %s",GetErrorMessage(r));
380 for (count = 0; count < __folderCount; count++)
382 BookmarkData* pBookmark = null;
383 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
384 if( pBookmark == NULL )
388 folderTitle = pBookmark->GetBookmarkTitle();
390 if (folderTitle == __folderName)
392 bookMarkID = pBookmark->GetBookmarkId();
396 BookmarkData bookmark;
398 if (__folderName != CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS"))
400 bookmark.SetParentId(bookMarkID);
403 bookmark.SetBookmarkTitle(title);
404 bookmark.SetUrl(Url);
405 if (__pBookmark != null)
407 bookmark.SetFaviconId(__pBookmark->GetFaviconId());
409 BookmarkPresentationModel::GetInstance()->SaveBookmark(bookmark);
410 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
415 folderList.RemoveAll(true);
419 case IDA_BUTTON_CANCEL:
421 if (__pEditFieldTitle != NULL)
423 __pEditFieldTitle->Clear();
426 if (__pEditFieldUrl != NULL)
428 __pEditFieldUrl->Clear();
431 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
444 AddBookmarkForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
450 AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
452 if (__pEditFieldTitle != NULL)
454 __pEditFieldTitle->HideKeypad();
457 if (__pEditFieldUrl != NULL)
459 __pEditFieldUrl->HideKeypad();
463 if (__showFolderList == false)
465 AppLog("AddBookmarkForm::OnListViewItemStateChanged false");
466 __showFolderList = true;
467 __pList->UpdateList();
468 __listHeight = __pList->GetItemCount() * H_ITEM_HEIGHT;
469 __pLabel1->SetShowState(false);
474 AppLog("AddBookmarkForm::OnListViewItemStateChanged true");
475 __showFolderList = false;
476 __pList->UpdateList();
477 __listHeight = __pList->GetItemCount() * H_ITEM_HEIGHT;
478 __pLabel1->SetShowState(true);
485 __selectedIndex = index;
486 if (index > 1 && __pList->GetItemCount() != index +1)
488 String parentID = "-1";
489 ArrayList folderList;
490 BookmarkData* pBookmark = null;
491 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
493 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(index-2));
494 __folderName = pBookmark->GetBookmarkTitle();
498 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
500 __listHeight = __pList->GetItemCount() * H_ITEM_HEIGHT;
501 if (__pList->GetItemCount() == index +1)
503 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
507 __pList->UpdateList();
508 // __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
512 __pLabel1->SetBounds(__pLabel1->GetX(),__pList->GetY()+ __listHeight + 2,__pLabel1->GetWidth(),__pLabel1->GetHeight());
513 __pLabel1->Invalidate(true);
514 result r = __pList->SetBounds(Rectangle(__pList->GetX(), __pList->GetY(), __pList->GetWidth(), __listHeight));
515 //__pList->Invalidate(true);
517 AppLog("the result is %s", GetErrorMessage(r));
518 AppLog("the list height is %d", __pList->GetHeight());
523 AddBookmarkForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
525 __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
530 AddBookmarkForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus state)
536 AddBookmarkForm::GetItemCount(void)
538 AppLogDebug("AddBookmarkForm::GetItemCount");
540 ArrayList folderList;
541 String parentID = "-1";
542 BookmarkData* pBookmark = null;
543 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
545 if (__selectedIndex == 0 && __view == CommonUtil::GetString(L"IDS_BR_SK_EDIT"))
547 for(int count = 0; count < __folderCount; count++)
549 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
551 if (__pBookmark != null && pBookmark != NULL && __pBookmark->GetParentId() == pBookmark->GetBookmarkId())
553 __selectedIndex = count + 2;
554 __folderName = pBookmark->GetBookmarkTitle();
564 folderList.RemoveAll(true);
566 if (__showFolderList == false)
572 result r = BookmarkPresentationModel::GetInstance()->GetFolderCount(L"-1",count);
573 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
574 AppLog("count = %d", count);
583 AddBookmarkForm::CreateItem(int index, int itemWidth)
585 AppLog("AddBookmarkForm::CreateItem index = %d itemWidth %d list width = %d",index,itemWidth,__pList->GetWidth());
586 result r = E_FAILURE;
587 String folderTitle = L"";
588 RadioCustomItem* radioItem = null;
589 DropDownCustomItem* pItem = null;
590 Bitmap* pBitmap = null;
591 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_LIST_LEFT_SIDE);
594 itemWidth = __pList->GetWidth();
598 pItem = new(std::nothrow) DropDownCustomItem();
599 r = pItem->Construct(itemWidth);
603 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
609 if ( __showFolderList == true )
611 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
615 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
618 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
619 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
620 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
621 pItem->SetMainText(CommonUtil::GetString(L"IDS_BR_BODY_FOLDER"));
622 pItem->SetSubText(__folderName);
626 //pItem->AddElement(Rectangle(0, 0, 10, H_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
633 String parentID = "-1";
634 ArrayList folderList;
636 BookmarkData* pBookmark = null;
637 r = BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
641 radioItem = new(std::nothrow) RadioCustomItem();
642 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
643 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
646 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
651 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
652 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
653 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
654 folderTitle = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
655 radioItem->SetText(folderTitle);
657 else if (index <= __folderCount + 1)
659 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(index - 2));
660 if (pBookmark != null)
662 folderTitle = pBookmark->GetBookmarkTitle();
664 radioItem = new(std::nothrow) RadioCustomItem();
665 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
666 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
669 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
675 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
676 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
677 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
678 radioItem->SetText(folderTitle);
682 radioItem = new(std::nothrow) RadioCustomItem();
683 // r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
684 r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
687 AppLog("Create Item Failed with error %s", GetErrorMessage(r));
692 //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);
693 folderTitle = CommonUtil::GetString(L"IDS_BR_OPT_NEW_FOLDER");
694 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
695 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
696 radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
697 radioItem->SetText(folderTitle);
701 if (__selectedIndex == index)
703 radioItem->SetSelected(true);
707 radioItem->SetSelected(false);
710 if(__selectedIndex == 0 && index == 1)
711 radioItem->SetSelected(true);
712 if (radioItem->GetSelected() == true)
714 __folderName = radioItem->GetText();
719 //radioItem->AddElement(Rectangle(0, 0, 10, LIST_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
723 folderList.RemoveAll(true);
730 AddBookmarkForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
742 AddBookmarkForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
748 AddBookmarkForm::OnKeypadClosed(Control& source)
751 AppLog("the client area height is %d",GetClientAreaBounds().height);
753 __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
754 __pScrollPanel->Invalidate(true);
761 AddBookmarkForm::OnKeypadOpened(Control& source)
763 AppLog("the client area height is %d",GetClientAreaBounds().height);
765 // __pScrollPanel->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height));
767 // __pScrollPanel->Invalidate(true);
768 // __pScrollPanel->SetScrollPosition(source.GetY()-48,false);
769 __pScrollPanel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);
770 __pScrollPanel->SetClientAreaWidth(__pScrollPanel->GetWidth());
771 __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
773 AppLog("the scroll panel height is Rect(%d,%d,%d,%d) ClientHeight = %d",__pScrollPanel->GetX(),__pScrollPanel->GetY(),__pScrollPanel->GetWidth(),__pScrollPanel->GetHeight(),__pScrollPanel->GetClientAreaBounds().height);
778 AddBookmarkForm::OnKeypadWillOpen(Control& source)
784 AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
787 // Code to handle events when the AddBookmarkForm is activated.
789 String pageTitle = L"";
790 String pageUrl = L"http://";
793 result r = E_FAILURE;
794 Header* pHeader = GetHeader();
796 r = BookmarkPresentationModel::GetInstance()->GetFolderCount(str, __folderCount);
797 TryCatch( r == E_SUCCESS, ,"Failed to intitialize GETFOLDERCOUNT %s",GetErrorMessage(r));
799 if ( pHeader == NULL )
803 if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
805 // check first argument of pargs 0 for Add, 1 - for Edit
806 String* firstValue = NULL;
809 firstValue = dynamic_cast<String*>(pArgs->GetAt(0));
812 if( firstValue == NULL || pArgs == NULL)
816 if (firstValue->CompareTo(L"1") == 0)
818 __view = CommonUtil::GetString(L"IDS_BR_SK_EDIT");
820 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
822 if (__pBookmark != NULL && pArgs != NULL)
828 if (__pBookmark == NULL && pArgs != NULL)
830 __pBookmark = dynamic_cast<BookmarkData*>(pArgs->GetAt(1));
835 pageTitle = __pBookmark->GetBookmarkTitle();
836 pageUrl = __pBookmark->GetUrl();
839 else if (firstValue->CompareTo(L"0") == 0)
841 __view = CommonUtil::GetString(L"IDS_COM_SK_ADD");
842 pHeader->SetTitleText(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_BOOKMARK"));
844 WindowInfo* pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
846 if( pWindowInfo == NULL )
851 pageTitle = pWindowInfo->pageTitle;
852 if(pWindowInfo->pageUrl.IsEmpty() == false)
854 pageUrl = pWindowInfo->pageUrl;
856 String* parentID = dynamic_cast<String*>(pArgs->GetAt(1));
858 ArrayList folderList;
860 BookmarkData* pBookmark = null;
861 BookmarkPresentationModel::GetInstance()->GetFolder(L"-1", 0, __folderCount, folderList);
862 for(int count = 0; count < folderList.GetCount(); count++)
864 pBookmark = dynamic_cast< BookmarkData* >(folderList.GetAt(count));
866 if ( pBookmark == null )
871 if (parentID != NULL && pBookmark->GetBookmarkId().CompareTo(parentID->GetPointer()) == 0)
873 __selectedIndex = count + 2;
874 __folderName = pBookmark->GetBookmarkTitle();
879 __selectedIndex = 1 ;
880 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
885 if (__folderCount == 0)
887 __selectedIndex = 1 ;
888 __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
891 folderList.RemoveAll(true);
895 if ( previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
897 pageTitle = __titleOnViewDeactivated;
898 pageUrl = __urlOnViewDeactivated;
901 if (__pEditFieldTitle != NULL)
903 __pEditFieldTitle->SetText(pageTitle);
904 __pEditFieldTitle->ShowKeypad();
906 if (__pEditFieldUrl != NULL)
908 __pEditFieldUrl->SetText(pageUrl);
909 __pEditFieldUrl->HideKeypad();
912 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER )
914 if (__oldFolderCount == 0)
916 if (__folderCount == 1)
921 else if (__oldFolderCount != __folderCount)
923 __selectedIndex = __folderCount + 1;
929 if (__view == CommonUtil::GetString(L"IDS_COM_SK_ADD") && previousSceneId == IDSCN_CREATE_BOOKMARK_FOLDER)
932 if (__oldFolderCount == 0)
934 if (__folderCount == 1)
939 else if (__oldFolderCount != __folderCount)
941 __selectedIndex = __folderCount + 1;
942 if(__selectedIndex > 1)
944 String parentID = L"-1";
945 ArrayList folderList;
946 BookmarkData* pBookmark = null;
947 BookmarkPresentationModel::GetInstance()->GetFolder(parentID, 0, __folderCount, folderList);
948 pBookmark = static_cast<BookmarkData*>(folderList.GetAt(__selectedIndex-2));
949 __folderName = pBookmark->GetBookmarkTitle();
952 else if (__oldFolderCount == __folderCount )
954 __selectedIndex = __folderCount + 1;
957 if (__pEditFieldTitle != NULL)
959 title = __pEditFieldTitle->GetText();
963 if (__pEditFieldUrl != NULL)
965 url = __pEditFieldUrl->GetText();
969 // To disable done button if either of the Title or Url field is empty
970 if (title.GetLength() == 0 || url.GetLength() == 0)
972 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
973 pHeader->Invalidate(true);
977 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
978 pHeader->Invalidate(true);
984 __pList->UpdateList();
985 __listHeight = __pList->GetItemCount() * H_ITEM_HEIGHT;
986 __pList->SetBounds(__pList->GetX(),__pList->GetY(),__pList->GetWidth(),__listHeight);
988 // __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
993 AddBookmarkForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
995 // Add code to handle events when the AddBookmarkForm is Deactivated.
996 if ( __pEditFieldTitle != NULL)
998 __titleOnViewDeactivated = __pEditFieldTitle->GetText();
1001 if ( __pEditFieldUrl != NULL)
1003 __urlOnViewDeactivated = __pEditFieldUrl->GetText();
1006 __oldFolderCount = __folderCount;
1008 if (__view == CommonUtil::GetString(L"IDS_BR_SK_EDIT") )
1010 __selectedIndex = 0;
1016 AddBookmarkForm::OnTextValueChanged(const Control& source)
1020 Header* pHeader = GetHeader();
1021 if (pHeader == NULL)
1026 if (__pEditFieldTitle == NULL || __pEditFieldUrl == NULL)
1031 title = __pEditFieldTitle->GetText();
1032 url = __pEditFieldUrl->GetText();
1036 // To disable done button if either of the Title or Url field is empty
1037 if (title.GetLength() == 0 || url.GetLength() == 0)
1039 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
1040 pHeader->Invalidate(true);
1044 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
1045 pHeader->Invalidate(true);
1052 AddBookmarkForm::OnTextValueChangeCanceled(const Control& source)
1058 AddBookmarkForm::CreateMessage(String& str)
1060 Tizen::Ui::Controls::MessageBox* pMsgBox = null; // Message Box to display alert if folder with same name already exists
1061 int __modalMsgBoxResult;
1063 pMsgBox = new(std::nothrow) MessageBox;
1064 if (pMsgBox != null)
1066 pMsgBox->Construct(str, L"", MSGBOX_STYLE_OK, 3000);
1067 pMsgBox->ShowAndWait(__modalMsgBoxResult);
1070 __modalMsgBoxResult = 0;
1077 AddBookmarkForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
1079 // if (__pEditFieldTitle != NULL)
1081 // __pEditFieldTitle->HideKeypad();
1083 // if (__pEditFieldUrl != NULL)
1085 // __pEditFieldUrl->HideKeypad();
1088 if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE)
1090 if (__pScrollPanel != null)
1092 __pScrollPanel->ScrollToTop();
1093 __pScrollPanel->SetClientAreaHeight(__pList->GetY()+__listHeight);
1097 //__pScrollPanel->Invalidate(true);
1099 if(__showFolderList == false)
1101 if(__pLabel1 != null)
1103 __pLabel1->SetShowState(true);
1108 if(__pLabel1 != null)
1110 __pLabel1->SetShowState(false);
1114 if (__pLabel1 != null)
1116 __pLabel1->SetBounds(__pLabel1->GetX(),__pList->GetY()+ __listHeight + 2,__pLabel1->GetWidth(),__pLabel1->GetHeight());
1117 __pLabel1->Invalidate(true);
1120 if (__pList != null)
1122 __pList->SetBounds(__pList->GetX(),__pList->GetY(),__pList->GetWidth(),__listHeight);
1123 __pList->UpdateList();