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: IntBookmarkPresentationModel.cpp
20 *@brief: Used to define BookmarkPresentationModel
25 #include "IntBookmarkData.h"
26 #include "IntBookmarkPresentationModel.h"
29 using namespace Tizen::App;
30 using namespace Tizen::Base;
31 using namespace Tizen::Base::Collection;
32 using namespace Tizen::Base::Utility;
33 using namespace Tizen::Io;
34 using namespace Tizen::Locales;
35 using namespace Tizen::System;
37 extern const wchar_t* BOOKMARK_URL_TABLE;
38 //extern const wchar_t* BOOKMARK_FOLDER_TABLE;
39 extern const wchar_t* DEFAULT_VALUE_PARENTID ;
41 BookmarkPresentationModel* BookmarkPresentationModel::__pBookmarkPresentationModel = null;
43 BookmarkPresentationModel::BookmarkPresentationModel(void)
48 BookmarkPresentationModel::~BookmarkPresentationModel(void)
53 BookmarkPresentationModel::BookmarkPresentationModel(const BookmarkPresentationModel& settingModelObj)
58 BookmarkPresentationModel& BookmarkPresentationModel::operator=(const BookmarkPresentationModel& settingModelObj)
64 BookmarkPresentationModel::Construct(void)
67 DB_FILE_PATH = L"/opt/usr/dbspace/.internet_bookmark.db";
69 r = PresentationModelBase::Initialize();
70 TryCatch( !IsFailed(r),,"Failed to intitialize bookmarkPresentation Model %s",GetErrorMessage(r));
75 BookmarkPresentationModel::CreateInstance(void)
77 if (__pBookmarkPresentationModel == null)
78 __pBookmarkPresentationModel = new(std::nothrow) BookmarkPresentationModel();
79 result r = __pBookmarkPresentationModel->Construct();
82 delete __pBookmarkPresentationModel;
83 __pBookmarkPresentationModel = null;
86 std::atexit(DestroyInstance);
90 void BookmarkPresentationModel::DestroyInstance(void)
92 if (__pBookmarkPresentationModel)
94 delete __pBookmarkPresentationModel;
95 __pBookmarkPresentationModel = null;
100 BookmarkPresentationModel*
101 BookmarkPresentationModel::GetInstance(void)
103 if(__pBookmarkPresentationModel == null)
107 return __pBookmarkPresentationModel;
111 BookmarkPresentationModel::SaveFolder(BookmarkData& bookmark)
113 bookmark.SetParentId("-1");
114 SaveBookmark(bookmark);
116 result r = E_FAILURE;
117 String bookmarkFolderTable(BOOKMARK_FOLDER_TABLE);
120 int resultCount = -1;
124 String bookmarkTitle = bookmark.GetBookmarkTitle();
125 bookmarkTitle.Replace(L"'", L"''");
127 PresentationModelBase::GetCurrentDateTime(dt);
128 if (bookmark.GetBookmarkId() == "")
130 columnNames.Append(L"TITLE, ");
131 columnNames.Append(L"CREATED_TIME, ");
132 columnNames.Append(L"MODIFIED_TIME");
134 query.Append(L"INSERT INTO ");
135 query.Append(bookmarkFolderTable);
137 query.Append(columnNames);
139 query.Append("VALUES(");
141 query.Append(bookmarkTitle);
144 query.Append(dt.ToString());
147 query.Append(dt.ToString());
152 query.Append(L"UPDATE ");
153 query.Append(bookmarkFolderTable);
154 query.Append(" SET TITLE = ");
156 query.Append(bookmarkTitle);
158 query.Append(", MODIFIED_TIME = ");
160 query.Append(dt.ToString());
162 query.Append(" WHERE ID = ");
163 query.Append(bookmark.GetBookmarkId());
167 r = PresentationModelBase::ExecuteQuery(query, resultCount);
168 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveFolder query failed %s",GetErrorMessage(r));
170 r = PresentationModelBase::CommitDb();
172 r = GetLastInsertedId(bookmarkFolderTable, rowId);
173 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveFolder GetLastInsertedId failed %s",GetErrorMessage(r));
178 bookmarkId.Append(rowId);
180 //Set the generated ID to Bookmark
181 bookmark.SetBookmarkId(bookmarkId);
187 BookmarkPresentationModel::SaveBookmark(BookmarkData& bookmark)
189 result r = E_FAILURE;
190 String bookmarkTable(BOOKMARK_URL_TABLE);
194 int resultCount = -1;
198 String bookmarkTitle = bookmark.GetBookmarkTitle();
199 bookmarkTitle.Replace(L"'", L"''");
200 String bookmarkUrl = bookmark.GetUrl();
201 bookmarkUrl.Replace(L"'", L"''");
203 AppLog("BookmarkPresentationModel::SaveBookmark");
206 ByteBuffer* pFavBuffer = bookmark.GetFavIconBuffer();
207 if(pFavBuffer != null)
209 AppLog("Buffer found");
214 AppLog("BookmarkPresentationModel::SaveBookmark 0 ");
216 while(pFavBuffer->HasRemaining())
218 pFavBuffer->GetWchar(value);
219 pFavArray.Append(value);
223 AppLog("BookmarkPresentationModel::SaveBookmark 1 pFavArray(%d) is %ls",pFavArray.GetLength(), pFavArray.GetPointer());
225 PresentationModelBase::GetCurrentDateTime(dt);
226 if (bookmark.GetBookmarkId() == "")
228 columnNames.Append(L"TYPE, ");
229 columnNames.Append(L"PARENT, ");
230 columnNames.Append(L"ADDRESS, ");
231 columnNames.Append(L"TITLE, ");
232 columnNames.Append(L"CREATIONDATE, ");
233 columnNames.Append(L"UPDATEDATE");
234 columnNames.Append(L"FAVICON, ");
235 // columnNames.Append(L"FAVICON_LENGTH, ");
236 columnNames.Append(L"FAVICON_W, ");
237 columnNames.Append(L"FAVICON_H");
238 //columnNames.Append(L"FAVICON_ID"
239 //columnNames.Append(L"FAVICON_ID");
241 query.Append(L"INSERT INTO ");
242 query.Append(bookmarkTable);
244 query.Append(columnNames);
246 query.Append("VALUES(");
247 query.Append(bookmark.GetBookmarkType());
249 query.Append(bookmark.GetParentId());
252 query.Append(bookmarkUrl);
255 query.Append(bookmarkTitle);
258 query.Append(dt.ToString());
261 query.Append(dt.ToString());
264 query.Append(pFavArray);
266 query.Append(bookmark.GetFavIconWidth());
268 query.Append(bookmark.GetFavIconHeight());
269 /*query.Append("', ");
271 query.Append(bookmark.GetIconPath());
275 query.Append(bookmark.GetFaviconId());*/
280 query.Append(L"UPDATE ");
281 query.Append(bookmarkTable);
282 query.Append(" SET PARENT = ");
283 query.Append(bookmark.GetParentId());
284 query.Append(", ADDRESS = ");
286 query.Append(bookmarkUrl);
288 query.Append(", TITLE = ");
290 query.Append(bookmarkTitle);
292 query.Append(", UPDATEDATE = ");
294 query.Append(dt.ToString());
296 query.Append(" WHERE ID = ");
297 query.Append(bookmark.GetBookmarkId());
298 /*query.Append(L"UPDATE ");
299 query.Append(bookmarkTable);
300 query.Append(" SET TITLE = ");
302 query.Append(bookmarkTitle);
304 query.Append(", URL = ");
306 query.Append(bookmarkUrl);
308 query.Append(", PARENT_BOOKMARK_ID = ");
309 query.Append(bookmark.GetParentId());
310 query.Append(", MODIFIED_TIME = ");
312 query.Append(dt.ToString());
314 query.Append(", ICON_PATH = ");
316 query.Append(bookmark.GetIconPath());
318 query.Append(", FAVICON_ID = ");
320 query.Append(bookmark.GetFaviconId());
322 query.Append(" WHERE ID = ");
323 query.Append(bookmark.GetBookmarkId());*/
326 r = PresentationModelBase::ExecuteQuery(query, resultCount);
327 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
331 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
335 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
338 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
340 r = PresentationModelBase::CommitDb();
342 r = GetLastInsertedId(bookmarkTable, rowId);
343 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
348 bookmarkId.Append(rowId);
350 //Set the generated ID to Bookmark
351 bookmark.SetBookmarkId(bookmarkId);
357 BookmarkPresentationModel::SaveTempBookmark(BookmarkData& bookmark)
359 result r = E_FAILURE;
360 String bookmarkTable(BOOKMARK_URL_TABLE);
364 int resultCount = -1;
368 String bookmarkTitle = bookmark.GetBookmarkTitle();
369 bookmarkTitle.Replace(L"'", L"''");
370 String bookmarkUrl = bookmark.GetUrl();
371 bookmarkUrl.Replace(L"'", L"''");
373 PresentationModelBase::GetCurrentDateTime(dt);
375 if (bookmark.GetBookmarkId() == "")
377 columnNames.Append(L"TYPE, ");
378 columnNames.Append(L"PARENT, ");
379 columnNames.Append(L"ADDRESS, ");
380 columnNames.Append(L"TITLE, ");
381 columnNames.Append(L"CREATIONDATE, ");
382 columnNames.Append(L"UPDATEDATE, ");
384 columnNames.Append(L"FAVICON, ");
385 columnNames.Append(L"FAVICON_W, ");
386 columnNames.Append(L"FAVICON_H");
388 query.Append(L"INSERT INTO ");
389 query.Append(bookmarkTable);
391 query.Append(columnNames);
393 query.Append("VALUES");
394 query.Append(" (?,?,?,?,?,?,?,?,?)");
395 r = PresentationModelBase::ExecuteBookmarkQuery(query, resultCount, bookmark);
399 query.Append(L"UPDATE ");
400 query.Append(bookmarkTable);
401 query.Append(" SET PARENT = ");
402 query.Append(bookmark.GetParentId());
403 query.Append(", ADDRESS = ");
405 query.Append(bookmarkUrl);
407 query.Append(", TITLE = ");
409 query.Append(bookmarkTitle);
411 query.Append(", UPDATEDATE = ");
413 query.Append(dt.ToString());
415 query.Append(" WHERE ID = ");
416 query.Append(bookmark.GetBookmarkId());
417 r = PresentationModelBase::ExecuteQuery(query, resultCount);
421 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
425 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
429 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
432 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
434 r = PresentationModelBase::CommitDb();
436 r = GetLastInsertedId(bookmarkTable, rowId);
437 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
442 bookmarkId.Append(rowId);
444 //Set the generated ID to Bookmark
445 bookmark.SetBookmarkId(bookmarkId);
452 BookmarkPresentationModel::DeleteFolder(int folderId)
454 result r = E_SUCCESS;
456 String bookmarkTable(BOOKMARK_URL_TABLE);
457 int resultCount = -1;
461 return E_INVALID_ARG;
464 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
465 query.Append(L"DELETE FROM ");
466 query.Append(bookmarkTable);
467 query.Append(" WHERE ID = ");
468 query.Append(folderId);
470 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
471 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
472 r = BookmarkPresentationModel::CommitDb();
473 DeleteBookmarkByFolderId(folderId);
479 BookmarkPresentationModel::DeleteBookmark(int bookmarkId)
481 result r = E_SUCCESS;
483 String bookmarkTable(BOOKMARK_URL_TABLE);
484 int resultCount = -1;
488 return E_INVALID_ARG;
491 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
492 query.Append(L"DELETE FROM ");
493 query.Append(bookmarkTable);
494 query.Append(" WHERE ID = ");
495 query.Append(bookmarkId);
497 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
498 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
499 r = BookmarkPresentationModel::CommitDb();
505 BookmarkPresentationModel::DeleteBookmarkByFolderId(int folderId)
507 result r = E_SUCCESS;
509 String bookmarkTable(BOOKMARK_URL_TABLE);
510 int resultCount = -1;
514 return E_INVALID_ARG;
517 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
518 query.Append(L"DELETE FROM ");
519 query.Append(bookmarkTable);
520 query.Append(" WHERE PARENT = ");
521 query.Append(folderId);
523 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
524 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
525 r = BookmarkPresentationModel::CommitDb();
532 BookmarkPresentationModel::GetFolderBookmarkCount(const String& parentID, int& Count)
534 result r = E_SUCCESS;
535 int bookmarkCount = 0;
537 r = GetBookmarkCount(parentID,bookmarkCount);
538 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
540 r = GetFolderCount(parentID,folderCount);
541 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
542 Count = folderCount+ bookmarkCount;
549 BookmarkPresentationModel::GetBookmarkCount(const String& parentID, int& bookmarkCount)
554 String bookmarkTable(BOOKMARK_URL_TABLE);
555 result r = E_FAILURE;
556 bool nextRowPresent = false;
558 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
559 query.Append(L"SELECT COUNT(ID) FROM ");
560 query.Append(bookmarkTable);
561 query.Append(" WHERE PARENT = ");
562 query.Append(parentID);
563 query.Append(" AND ADDRESS != ''");
566 r = PresentationModelBase::ExecuteQuery(query, count);
567 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
568 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
569 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
570 if (nextRowPresent == true)
572 r = PresentationModelBase::GetColumn(0, intVal);
575 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
579 bookmarkCount = intVal;
580 AppLog("Count:%d", bookmarkCount);
586 BookmarkPresentationModel::GetFolderCount(const String& parentID, int& folderCount)
592 String bookmarkTable(BOOKMARK_URL_TABLE);
593 result r = E_FAILURE;
594 bool nextRowPresent = false;
596 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
597 query.Append(L"SELECT COUNT(ID) FROM ");
598 query.Append(bookmarkTable);
599 query.Append(" WHERE PARENT = ");
600 query.Append(parentID);
601 query.Append(" AND ADDRESS = ''");
603 r = PresentationModelBase::ExecuteQuery(query, count);
604 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
605 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
606 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
607 if (nextRowPresent == true)
609 r = PresentationModelBase::GetColumn(0, intVal);
612 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
616 folderCount = intVal;
617 AppLog("Count:%d", folderCount);
626 String bookmarkFolderTable(BOOKMARK_FOLDER_TABLE);
627 result r = E_FAILURE;
628 bool nextRowPresent = false;
630 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID) != 0)
635 query.Append(L"SELECT COUNT(ID) FROM ");
636 query.Append(bookmarkFolderTable);
638 r = PresentationModelBase::ExecuteQuery(query, count);
639 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolderCount query failed %s",GetErrorMessage(r));
641 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
643 if (nextRowPresent == true)
645 r = PresentationModelBase::GetColumn(0, intVal);
647 folderCount = intVal;
653 BookmarkPresentationModel::GetFoldersBookmarks(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
656 arrayList.Construct();
657 GetFolder(parentID,startIndex,limit,arrayList);
658 for(int index = arrayList.GetCount()-1; index >= 0; index--)
660 pBookmarkList.Add(*arrayList.GetAt(index));
662 arrayList.RemoveAll(false);
663 GetBookmark(parentID,startIndex,limit,arrayList);
664 for(int index = arrayList.GetCount()-1; index >= 0; index--)
666 pBookmarkList.Add(*arrayList.GetAt(index));
672 BookmarkPresentationModel::GetBookmark(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
676 String bookmarkTable(BOOKMARK_URL_TABLE);
677 result r = E_FAILURE;
679 query.Append(L"SELECT * FROM ");
680 query.Append(bookmarkTable);
681 query.Append(" WHERE PARENT = ");
682 query.Append(parentID);
683 query.Append(" AND ADDRESS != ''");
688 query.Append(" LIMIT ");
694 query.Append(" OFFSET ");
695 query.Append(startIndex);
698 r = PresentationModelBase::ExecuteQuery(query, count);
699 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
701 r = CreateBookmarkList(count, pBookmarkList);
702 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
708 BookmarkPresentationModel::GetFolder(const String& parentID, int startIndex, int limit, ArrayList& folderList)
712 String bookmarkTable(BOOKMARK_URL_TABLE);
713 result r = E_FAILURE;
715 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID ) != 0)
719 query.Append(L"SELECT * FROM ");
720 query.Append(bookmarkTable);
721 query.Append(" WHERE ADDRESS = ''");
726 query.Append(" LIMIT ");
732 query.Append(" OFFSET ");
733 query.Append(startIndex);
737 r = PresentationModelBase::ExecuteQuery(query, count);
738 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolder query failed %s",GetErrorMessage(r));
740 r = CreateFolderList(count, folderList);
741 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
747 BookmarkPresentationModel::GetSearchFolderBookmarkCount(int& searchBookmarkCount, String& text)
749 int searchUrlCount = 0;
750 int searchFolderCount = 0;
751 GetSearchBookmarkCount(searchUrlCount,text);
752 GetSearchFolderCount(searchFolderCount,text);
753 searchBookmarkCount = searchUrlCount + searchFolderCount;
758 BookmarkPresentationModel::GetSearchBookmarkCount(int& searchBookmarkCount, String& text)
764 String bookmarkTable(BOOKMARK_URL_TABLE);
765 result r = E_FAILURE;
766 bool nextRowPresent = false;
767 text.Replace(L"'", L"''");
769 query.Append(L"SELECT COUNT(ID) FROM ");
770 query.Append(bookmarkTable);
771 query.Append(L" WHERE (TITLE LIKE '%");
774 query.Append(" OR ");
775 query.Append(L"ADDRESS LIKE '%");
778 query.Append(" AND ADDRESS != ''");
780 r = BookmarkPresentationModel::ExecuteQuery(query, count);
781 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
783 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
785 if (nextRowPresent == true)
787 r = BookmarkPresentationModel::GetColumn(0, intVal);
788 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
790 searchBookmarkCount = intVal;
797 BookmarkPresentationModel::GetSearchFolderCount(int& searchFolderCount, String& text)
803 String bookmarkTable(BOOKMARK_URL_TABLE);
804 result r = E_FAILURE;
805 bool nextRowPresent = false;
806 text.Replace(L"'", L"''");
808 query.Append(L"SELECT COUNT(ID) FROM ");
809 query.Append(bookmarkTable);
810 query.Append(L" WHERE TITLE LIKE '%");
813 query.Append(" AND ADDRESS = ''");
815 r = BookmarkPresentationModel::ExecuteQuery(query, count);
816 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
818 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
820 if (nextRowPresent == true)
822 r = BookmarkPresentationModel::GetColumn(0, intVal);
823 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
825 searchFolderCount = intVal;
832 BookmarkPresentationModel::GetSearchFoldersBookmarks(int startIndex, int limit, ArrayList& pFolderList, String& text)
835 arrayList.Construct();
836 GetSearchFolder(startIndex, limit, arrayList,text);
837 for(int index = arrayList.GetCount()-1; index >= 0; index--)
839 pFolderList.Add(*arrayList.GetAt(index));
841 arrayList.RemoveAll(false);
842 GetSearchBookmark(startIndex, limit, arrayList,text);
843 for(int index = arrayList.GetCount()-1; index >= 0; index--)
845 pFolderList.Add(*arrayList.GetAt(index));
851 BookmarkPresentationModel::GetSearchBookmark(int startIndex, int limit, ArrayList& pBookmarkList, String& text)
855 String bookmarkTable(BOOKMARK_URL_TABLE);
856 result r = E_FAILURE;
858 text.Replace(L"'", L"''");
859 query.Append(L"SELECT * FROM ");
860 query.Append(bookmarkTable);
861 query.Append(L" WHERE (TITLE LIKE '%");
864 query.Append(" OR ");
865 query.Append(L"(ADDRESS LIKE '%");
868 query.Append(" AND ADDRESS != ''");
872 query.Append(" LIMIT ");
878 query.Append(" OFFSET ");
879 query.Append(startIndex);
883 r = BookmarkPresentationModel::ExecuteQuery(query, count);
884 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
886 r = CreateBookmarkList(count, pBookmarkList);
887 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
893 BookmarkPresentationModel::GetSearchFolder(int startIndex, int limit, ArrayList& pFolderList, String& text)
897 String bookmarkTable(BOOKMARK_URL_TABLE);
898 result r = E_FAILURE;
899 text.Replace(L"'", L"''");
901 query.Append(L"SELECT * FROM ");
902 query.Append(bookmarkTable);
903 query.Append(L" WHERE TITLE LIKE '%");
905 //query.Append("%')");
907 query.Append(" AND ADDRESS = ''");
912 query.Append(" LIMIT ");
918 query.Append(" OFFSET ");
919 query.Append(startIndex);
923 r = BookmarkPresentationModel::ExecuteQuery(query, count);
924 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
926 r = CreateFolderList(count, pFolderList);
927 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
933 BookmarkPresentationModel::CreateFolderList(int bookmarkCount, ArrayList& folderList)
935 BookmarkData* pBookmark = null;
939 result r = E_FAILURE;
943 DateTime createdTime;
944 DateTime modifiedTime;
946 bool nextRowPresent = false;
948 if (bookmarkCount < 1)
952 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
954 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
957 if (nextRowPresent == true)
959 pBookmark = new(std::nothrow) BookmarkData;
963 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
969 r = PresentationModelBase::GetColumn(columnCount, intVal);
975 bookmarkId.Append(intVal);
976 if (bookmarkId.GetLength() > 0)
977 pBookmark->SetBookmarkId(bookmarkId);
982 case BOOKMARK_PARENT:
983 r = PresentationModelBase::GetColumn(columnCount, intVal);
989 parentId.Append(intVal);
990 if (parentId.GetLength() > 0)
991 pBookmark->SetParentId(parentId);
995 case BOOKMARK_ADDRESS:
996 r = PresentationModelBase::GetColumn(columnCount, value);
999 pBookmark->SetUrl(value);
1002 case BOOKMARK_TITLE:
1003 r = PresentationModelBase::GetColumn(columnCount, value);
1006 pBookmark->SetBookmarkTitle(value);
1009 case BOOKMARK_CREATIONDATE:
1010 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1013 createdTime = dateValue;
1014 pBookmark->SetCreatedTime(createdTime);
1018 case BOOKMARK_UPDATEDATA:
1019 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1022 modifiedTime = dateValue;
1023 pBookmark->SetModifiedTime(modifiedTime);
1028 r = PresentationModelBase::GetColumn(columnCount, value);
1032 pBookmark->SetIconPath(iconPath);
1037 r = PresentationModelBase::GetColumn(columnCount, intVal);
1043 faviconId.Append(intVal);
1044 if (faviconId.GetLength() > 0)
1046 pBookmark->SetFaviconId(faviconId);
1058 r = folderList.Add(*pBookmark);
1071 BookmarkPresentationModel::CreateBookmarkList(int bookmarkCount, ArrayList& bookmarkList)
1073 AppLog("BookmarkPresentationModel::CreateBookmarkList start");
1074 BookmarkData* pBookmark = null;
1078 result r = E_FAILURE;
1082 DateTime createdTime;
1083 DateTime modifiedTime;
1084 ByteBuffer *pFavIconBuffer = null;
1087 bool nextRowPresent = false;
1089 if (bookmarkCount < 1)
1094 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
1096 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1099 if (nextRowPresent == true)
1101 pBookmark = new(std::nothrow) BookmarkData;
1104 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
1107 switch (columnCount)
1110 r = PresentationModelBase::GetColumn(columnCount, intVal);
1116 bookmarkId.Append(intVal);
1117 if (bookmarkId.GetLength() > 0)
1118 pBookmark->SetBookmarkId(bookmarkId);
1123 case BOOKMARK_PARENT:
1124 r = PresentationModelBase::GetColumn(columnCount, intVal);
1130 parentId.Append(intVal);
1131 if (parentId.GetLength() > 0)
1132 pBookmark->SetParentId(parentId);
1136 case BOOKMARK_ADDRESS:
1137 r = PresentationModelBase::GetColumn(columnCount, value);
1140 pBookmark->SetUrl(value);
1143 case BOOKMARK_TITLE:
1144 r = PresentationModelBase::GetColumn(columnCount, value);
1147 pBookmark->SetBookmarkTitle(value);
1150 case BOOKMARK_CREATIONDATE:
1151 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1154 createdTime = dateValue;
1155 pBookmark->SetCreatedTime(createdTime);
1158 case BOOKMARK_SEQUENCE:
1163 case BOOKMARK_UPDATEDATA:
1164 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1167 modifiedTime = dateValue;
1168 pBookmark->SetModifiedTime(modifiedTime);
1171 case BOOKMARK_VISITDATE:
1176 case BOOKMARK_EDITABLE:
1181 case BOOKMARK_ACCESSACCOUNT:
1186 case BOOKMARK_FAVICON:
1188 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 0");
1189 pFavIconBuffer = new ByteBuffer();
1190 r = PresentationModelBase::GetColumn(columnCount, *pFavIconBuffer);
1191 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 1");
1192 if (pFavIconBuffer->GetCapacity() > 0)
1194 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer not null");
1198 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer is null");
1204 pBookmark->SetFavIconBuffer(*pFavIconBuffer);
1208 case BOOKMARK_FAVICON_LENGTH:
1213 case BOOKMARK_FAVICON_W:
1215 r = PresentationModelBase::GetColumn(columnCount, intVal);
1220 pBookmark->SetFavIconWidth(intVal);
1225 case BOOKMARK_FAVICON_H:
1227 r = PresentationModelBase::GetColumn(columnCount, intVal);
1232 pBookmark->SetFavIconHeight(intVal);
1239 r = PresentationModelBase::GetColumn(columnCount, value);
1243 pBookmark->SetIconPath(iconPath);
1248 r = PresentationModelBase::GetColumn(columnCount, intVal);
1254 faviconId.Append(intVal);
1255 if (faviconId.GetLength() > 0)
1257 pBookmark->SetFaviconId(faviconId);
1269 r = bookmarkList.Add(*pBookmark);
1278 AppLog("BookmarkPresentationModel::CreateBookmarkList end");
1283 BookmarkPresentationModel::DoesBookmarkExist(const Tizen::Base::String& Url, bool &exist, const String& parentId, bool checkParentId)
1285 int bookmarkCount = -1;
1288 String bookmarkTable(BOOKMARK_URL_TABLE);
1289 result r = E_FAILURE;
1290 bool nextRowPresent = false;
1293 query.Append(L"SELECT COUNT(ID) FROM ");
1294 query.Append(bookmarkTable);
1295 query.Append(" WHERE ADDRESS = '");
1297 if(checkParentId == true)
1299 query.Append(L"' AND PARENT = '");
1300 query.Append(parentId);
1304 AppLog("BookmarkPresentationModel::DoesBookmarkExist query is %S",query.GetPointer());
1306 r = PresentationModelBase::ExecuteQuery(query, bookmarkCount);
1307 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DoesBookmarkExist query failed %s",GetErrorMessage(r));
1309 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1311 if (nextRowPresent == true)
1313 r = PresentationModelBase::GetColumn(0, intVal);
1330 BookmarkPresentationModel::DeleteBookmark(const Tizen::Base::String& url)
1332 result r = E_SUCCESS;
1334 String bookmarkTable(BOOKMARK_URL_TABLE);
1335 int resultCount = -1;
1337 query.Append(L"DELETE FROM ");
1338 query.Append(bookmarkTable);
1339 query.Append(" WHERE ADDRESS = '");
1343 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
1344 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
1346 r = BookmarkPresentationModel::CommitDb();