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: 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("0");
114 return SaveTempBookmark(bookmark);
118 BookmarkPresentationModel::SaveBookmark(BookmarkData& bookmark)
120 result r = E_FAILURE;
121 String bookmarkTable(BOOKMARK_URL_TABLE);
125 int resultCount = -1;
129 String bookmarkTitle = bookmark.GetBookmarkTitle();
130 bookmarkTitle.Replace(L"'", L"\'");
131 String bookmarkUrl = bookmark.GetUrl();
132 bookmarkUrl.Replace(L"'", L"\'");
134 AppLog("BookmarkPresentationModel::SaveBookmark");
137 ByteBuffer* pFavBuffer = bookmark.GetFavIconBuffer();
138 if(pFavBuffer != null)
140 AppLog("Buffer found");
145 AppLog("BookmarkPresentationModel::SaveBookmark 0 ");
147 while(pFavBuffer->HasRemaining())
149 pFavBuffer->GetWchar(value);
150 pFavArray.Append(value);
154 AppLog("BookmarkPresentationModel::SaveBookmark 1 pFavArray(%d) is %ls",pFavArray.GetLength(), pFavArray.GetPointer());
156 PresentationModelBase::GetCurrentDateTime(dt);
157 if (bookmark.GetBookmarkId() == "")
159 columnNames.Append(L"TYPE, ");
160 columnNames.Append(L"PARENT, ");
161 columnNames.Append(L"ADDRESS, ");
162 columnNames.Append(L"TITLE, ");
163 columnNames.Append(L"CREATIONDATE, ");
164 columnNames.Append(L"UPDATEDATE, ");
165 columnNames.Append(L"FAVICON, ");
166 // columnNames.Append(L"FAVICON_LENGTH, ");
167 columnNames.Append(L"FAVICON_W, ");
168 columnNames.Append(L"FAVICON_H");
169 //columnNames.Append(L"FAVICON_ID"
170 //columnNames.Append(L"FAVICON_ID");
172 query.Append(L"INSERT INTO ");
173 query.Append(bookmarkTable);
175 query.Append(columnNames);
177 query.Append("VALUES(");
178 query.Append(bookmark.GetBookmarkType());
180 query.Append(bookmark.GetParentId());
183 query.Append(bookmarkUrl);
186 query.Append(bookmarkTitle);
189 query.Append(dt.ToString());
192 query.Append(dt.ToString());
195 query.Append(pFavArray);
197 query.Append(bookmark.GetFavIconWidth());
199 query.Append(bookmark.GetFavIconHeight());
200 /*query.Append("', ");
202 query.Append(bookmark.GetIconPath());
206 query.Append(bookmark.GetFaviconId());*/
211 query.Append(L"UPDATE ");
212 query.Append(bookmarkTable);
213 query.Append(" SET PARENT = ");
214 query.Append(bookmark.GetParentId());
215 query.Append(", ADDRESS = ");
217 query.Append(bookmarkUrl);
219 query.Append(", TITLE = ");
221 query.Append(bookmarkTitle);
223 query.Append(", UPDATEDATE = ");
225 query.Append(dt.ToString());
227 query.Append(" WHERE ID = ");
228 query.Append(bookmark.GetBookmarkId());
229 /*query.Append(L"UPDATE ");
230 query.Append(bookmarkTable);
231 query.Append(" SET TITLE = ");
233 query.Append(bookmarkTitle);
235 query.Append(", URL = ");
237 query.Append(bookmarkUrl);
239 query.Append(", PARENT_BOOKMARK_ID = ");
240 query.Append(bookmark.GetParentId());
241 query.Append(", MODIFIED_TIME = ");
243 query.Append(dt.ToString());
245 query.Append(", ICON_PATH = ");
247 query.Append(bookmark.GetIconPath());
249 query.Append(", FAVICON_ID = ");
251 query.Append(bookmark.GetFaviconId());
253 query.Append(" WHERE ID = ");
254 query.Append(bookmark.GetBookmarkId());*/
257 r = PresentationModelBase::ExecuteQuery(query, resultCount);
258 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
262 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
266 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
269 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
271 r = PresentationModelBase::CommitDb();
273 r = GetLastInsertedId(bookmarkTable, rowId);
274 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
279 bookmarkId.Append(rowId);
281 //Set the generated ID to Bookmark
282 bookmark.SetBookmarkId(bookmarkId);
288 BookmarkPresentationModel::SaveTempBookmark(BookmarkData& bookmark)
290 result r = E_FAILURE;
291 String bookmarkTable(BOOKMARK_URL_TABLE);
295 int resultCount = -1;
299 String bookmarkTitle = bookmark.GetBookmarkTitle();
300 bookmarkTitle.Replace(L"'", L"\'");
301 String bookmarkUrl = bookmark.GetUrl();
302 bookmarkUrl.Replace(L"'", L"\'");
304 PresentationModelBase::GetCurrentDateTime(dt);
306 if (bookmark.GetBookmarkId() == "")
308 columnNames.Append(L"TYPE, ");
309 columnNames.Append(L"PARENT, ");
310 columnNames.Append(L"ADDRESS, ");
311 columnNames.Append(L"TITLE, ");
312 columnNames.Append(L"CREATIONDATE, ");
313 columnNames.Append(L"UPDATEDATE, ");
315 columnNames.Append(L"FAVICON, ");
316 columnNames.Append(L"FAVICON_W, ");
317 columnNames.Append(L"FAVICON_H");
319 query.Append(L"INSERT INTO ");
320 query.Append(bookmarkTable);
322 query.Append(columnNames);
324 query.Append("VALUES");
325 query.Append(" (?,?,?,?,?,?,?,?,?)");
326 r = PresentationModelBase::ExecuteBookmarkQuery(query, resultCount, bookmark);
330 query.Append(L"UPDATE ");
331 query.Append(bookmarkTable);
332 query.Append(" SET PARENT = ");
333 query.Append(bookmark.GetParentId());
334 query.Append(", ADDRESS = ");
336 query.Append(bookmarkUrl);
338 query.Append(", TITLE = ");
340 query.Append(bookmarkTitle);
342 query.Append(", UPDATEDATE = ");
344 query.Append(dt.ToString());
346 query.Append(" WHERE ID = ");
347 query.Append(bookmark.GetBookmarkId());
348 r = PresentationModelBase::ExecuteQuery(query, resultCount);
352 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
356 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
360 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
363 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
365 r = PresentationModelBase::CommitDb();
367 r = GetLastInsertedId(bookmarkTable, rowId);
368 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
373 bookmarkId.Append(rowId);
375 //Set the generated ID to Bookmark
376 bookmark.SetBookmarkId(bookmarkId);
383 BookmarkPresentationModel::DeleteFolder(int folderId)
385 result r = E_SUCCESS;
387 String bookmarkTable(BOOKMARK_URL_TABLE);
388 int resultCount = -1;
392 return E_INVALID_ARG;
395 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
396 query.Append(L"DELETE FROM ");
397 query.Append(bookmarkTable);
398 query.Append(" WHERE ID = ");
399 query.Append(folderId);
401 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
402 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
403 r = BookmarkPresentationModel::CommitDb();
404 DeleteBookmarkByFolderId(folderId);
410 BookmarkPresentationModel::DeleteBookmark(int bookmarkId)
412 result r = E_SUCCESS;
414 String bookmarkTable(BOOKMARK_URL_TABLE);
415 int resultCount = -1;
419 return E_INVALID_ARG;
422 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
423 query.Append(L"DELETE FROM ");
424 query.Append(bookmarkTable);
425 query.Append(" WHERE ID = ");
426 query.Append(bookmarkId);
428 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
429 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
430 r = BookmarkPresentationModel::CommitDb();
436 BookmarkPresentationModel::DeleteBookmarkByFolderId(int folderId)
438 result r = E_SUCCESS;
440 String bookmarkTable(BOOKMARK_URL_TABLE);
441 int resultCount = -1;
445 return E_INVALID_ARG;
448 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
449 query.Append(L"DELETE FROM ");
450 query.Append(bookmarkTable);
451 query.Append(" WHERE PARENT = ");
452 query.Append(folderId);
454 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
455 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
456 r = BookmarkPresentationModel::CommitDb();
463 BookmarkPresentationModel::GetFolderBookmarkCount(const String& parentID, int& Count)
465 result r = E_SUCCESS;
466 int bookmarkCount = 0;
468 r = GetBookmarkCount(parentID,bookmarkCount);
469 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
471 r = GetFolderCount(parentID,folderCount);
472 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
473 Count = folderCount+ bookmarkCount;
480 BookmarkPresentationModel::GetBookmarkCount(const String& parentID, int& bookmarkCount)
485 String bookmarkTable(BOOKMARK_URL_TABLE);
486 result r = E_FAILURE;
487 bool nextRowPresent = false;
489 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
490 query.Append(L"SELECT COUNT(ID) FROM ");
491 query.Append(bookmarkTable);
492 query.Append(" WHERE PARENT = ");
493 query.Append(parentID);
494 query.Append(" AND ADDRESS != ''");
497 r = PresentationModelBase::ExecuteQuery(query, count);
498 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
499 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
500 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
501 if (nextRowPresent == true)
503 r = PresentationModelBase::GetColumn(0, intVal);
506 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
510 bookmarkCount = intVal;
511 AppLog("Count:%d", bookmarkCount);
517 BookmarkPresentationModel::GetFolderCount(const String& parentID, int& folderCount)
523 String bookmarkTable(BOOKMARK_URL_TABLE);
524 result r = E_FAILURE;
525 bool nextRowPresent = false;
527 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
528 query.Append(L"SELECT COUNT(ID) FROM ");
529 query.Append(bookmarkTable);
530 query.Append(" WHERE PARENT = ");
531 query.Append(parentID);
532 query.Append(" AND ADDRESS = ''");
534 r = PresentationModelBase::ExecuteQuery(query, count);
535 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
536 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
537 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
538 if (nextRowPresent == true)
540 r = PresentationModelBase::GetColumn(0, intVal);
543 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
547 folderCount = intVal;
548 AppLog("Count:%d", folderCount);
557 String bookmarkFolderTable(BOOKMARK_FOLDER_TABLE);
558 result r = E_FAILURE;
559 bool nextRowPresent = false;
561 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID) != 0)
566 query.Append(L"SELECT COUNT(ID) FROM ");
567 query.Append(bookmarkFolderTable);
569 r = PresentationModelBase::ExecuteQuery(query, count);
570 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolderCount query failed %s",GetErrorMessage(r));
572 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
574 if (nextRowPresent == true)
576 r = PresentationModelBase::GetColumn(0, intVal);
578 folderCount = intVal;
584 BookmarkPresentationModel::GetFoldersBookmarks(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
587 arrayList.Construct();
588 GetFolder(parentID,startIndex,limit,arrayList);
589 for(int index = arrayList.GetCount()-1; index >= 0; index--)
591 pBookmarkList.Add(*arrayList.GetAt(index));
593 arrayList.RemoveAll(false);
594 GetBookmark(parentID,startIndex,limit,arrayList);
595 for(int index = arrayList.GetCount()-1; index >= 0; index--)
597 pBookmarkList.Add(*arrayList.GetAt(index));
603 BookmarkPresentationModel::GetBookmark(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
607 String bookmarkTable(BOOKMARK_URL_TABLE);
608 result r = E_FAILURE;
610 query.Append(L"SELECT * FROM ");
611 query.Append(bookmarkTable);
612 query.Append(" WHERE PARENT = ");
613 query.Append(parentID);
614 query.Append(" AND ADDRESS != ''");
619 query.Append(" LIMIT ");
625 query.Append(" OFFSET ");
626 query.Append(startIndex);
629 r = PresentationModelBase::ExecuteQuery(query, count);
630 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
632 r = CreateBookmarkList(count, pBookmarkList);
633 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
638 result BookmarkPresentationModel::GetBookmarkForHistory(int startIndex, Tizen::Base::Collection::ArrayList& pBookmarkList)
642 String bookmarkTable(BOOKMARK_URL_TABLE);
643 result r = E_FAILURE;
645 query.Append(L"SELECT * FROM ");
646 query.Append(bookmarkTable);
647 query.Append(" WHERE ADDRESS != ''");
649 r = PresentationModelBase::ExecuteQuery(query, count);
650 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
652 r = CreateBookmarkList(count, pBookmarkList);
653 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
659 BookmarkPresentationModel::GetFolder(const String& parentID, int startIndex, int limit, ArrayList& folderList)
663 String bookmarkTable(BOOKMARK_URL_TABLE);
664 result r = E_FAILURE;
666 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID ) != 0)
670 query.Append(L"SELECT * FROM ");
671 query.Append(bookmarkTable);
672 query.Append(" WHERE ADDRESS = ''");
677 query.Append(" LIMIT ");
683 query.Append(" OFFSET ");
684 query.Append(startIndex);
688 r = PresentationModelBase::ExecuteQuery(query, count);
689 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolder query failed %s",GetErrorMessage(r));
691 r = CreateFolderList(count, folderList);
692 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
698 BookmarkPresentationModel::GetSearchFolderBookmarkCount(int& searchBookmarkCount, String& text)
700 int searchUrlCount = 0;
701 int searchFolderCount = 0;
702 GetSearchBookmarkCount(searchUrlCount,text);
703 GetSearchFolderCount(searchFolderCount,text);
704 searchBookmarkCount = searchUrlCount + searchFolderCount;
709 BookmarkPresentationModel::GetSearchBookmarkCount(int& searchBookmarkCount, String& text)
715 String bookmarkTable(BOOKMARK_URL_TABLE);
716 result r = E_FAILURE;
717 bool nextRowPresent = false;
718 text.Replace(L"'", L"\'");
720 query.Append(L"SELECT COUNT(ID) FROM ");
721 query.Append(bookmarkTable);
722 query.Append(L" WHERE (TITLE LIKE '%");
725 query.Append(" OR ");
726 query.Append(L"ADDRESS LIKE '%");
729 query.Append(" ESCAPE '/')");
730 query.Append(" AND ADDRESS != ''");
732 r = BookmarkPresentationModel::ExecuteQuery(query, count);
733 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
735 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
737 if (nextRowPresent == true)
739 r = BookmarkPresentationModel::GetColumn(0, intVal);
740 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
742 searchBookmarkCount = intVal;
745 // text.Replace(L"''", L"'");
752 BookmarkPresentationModel::GetSearchFolderCount(int& searchFolderCount, String& text)
758 String bookmarkTable(BOOKMARK_URL_TABLE);
759 result r = E_FAILURE;
760 bool nextRowPresent = false;
761 text.Replace(L"'", L"\'");
763 query.Append(L"SELECT COUNT(ID) FROM ");
764 query.Append(bookmarkTable);
765 query.Append(L" WHERE TITLE LIKE '%");
768 query.Append(" ESCAPE '/'");
769 query.Append(" AND ADDRESS = ''");
771 r = BookmarkPresentationModel::ExecuteQuery(query, count);
772 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
774 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
776 if (nextRowPresent == true)
778 r = BookmarkPresentationModel::GetColumn(0, intVal);
779 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
781 searchFolderCount = intVal;
784 // text.Replace(L"''", L"'");
790 BookmarkPresentationModel::GetSearchFoldersBookmarks(int startIndex, int limit, ArrayList& pFolderList, String& text)
793 arrayList.Construct();
794 GetSearchFolder(startIndex, limit, arrayList,text);
795 for(int index = arrayList.GetCount()-1; index >= 0; index--)
797 pFolderList.Add(*arrayList.GetAt(index));
799 arrayList.RemoveAll(false);
800 GetSearchBookmark(startIndex, limit, arrayList,text);
801 for(int index = arrayList.GetCount()-1; index >= 0; index--)
803 pFolderList.Add(*arrayList.GetAt(index));
809 BookmarkPresentationModel::GetSearchBookmark(int startIndex, int limit, ArrayList& pBookmarkList, String& text)
813 String bookmarkTable(BOOKMARK_URL_TABLE);
814 result r = E_FAILURE;
816 text.Replace(L"'", L"\'");
817 query.Append(L"SELECT * FROM ");
818 query.Append(bookmarkTable);
819 query.Append(L" WHERE ((TITLE LIKE '%");
821 query.Append("%' ESCAPE '/')");
822 query.Append(" OR ");
823 query.Append(L"(ADDRESS LIKE '%");
825 query.Append("%' ESCAPE '/') )");
826 query.Append(" AND (ADDRESS != '')");
830 query.Append(" LIMIT ");
836 query.Append(" OFFSET ");
837 query.Append(startIndex);
840 AppLog("Query is %ls", query.GetPointer());
841 r = BookmarkPresentationModel::ExecuteQuery(query, count);
842 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
844 r = CreateBookmarkList(count, pBookmarkList);
845 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
848 // text.Replace(L"''", L"'");
853 BookmarkPresentationModel::GetSearchFolder(int startIndex, int limit, ArrayList& pFolderList, String& text)
857 String bookmarkTable(BOOKMARK_URL_TABLE);
858 result r = E_FAILURE;
859 text.Replace(L"'", L"\'");
861 query.Append(L"SELECT * FROM ");
862 query.Append(bookmarkTable);
863 query.Append(L" WHERE TITLE LIKE '%");
865 //query.Append("%')");
867 query.Append(" ESCAPE '/'");
868 query.Append(" AND ADDRESS = ''");
873 query.Append(" LIMIT ");
879 query.Append(" OFFSET ");
880 query.Append(startIndex);
884 r = BookmarkPresentationModel::ExecuteQuery(query, count);
885 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
887 r = CreateFolderList(count, pFolderList);
888 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
891 // text.Replace(L"''", L"'");
896 BookmarkPresentationModel::CreateFolderList(int bookmarkCount, ArrayList& folderList)
898 BookmarkData* pBookmark = null;
902 result r = E_FAILURE;
906 DateTime createdTime;
907 DateTime modifiedTime;
909 bool nextRowPresent = false;
911 if (bookmarkCount < 1)
915 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
917 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
920 if (nextRowPresent == true)
922 pBookmark = new(std::nothrow) BookmarkData;
926 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
932 r = PresentationModelBase::GetColumn(columnCount, intVal);
938 bookmarkId.Append(intVal);
939 if (bookmarkId.GetLength() > 0)
940 pBookmark->SetBookmarkId(bookmarkId);
945 case BOOKMARK_PARENT:
946 r = PresentationModelBase::GetColumn(columnCount, intVal);
952 parentId.Append(intVal);
953 if (parentId.GetLength() > 0)
954 pBookmark->SetParentId(parentId);
958 case BOOKMARK_ADDRESS:
959 r = PresentationModelBase::GetColumn(columnCount, value);
962 pBookmark->SetUrl(value);
966 r = PresentationModelBase::GetColumn(columnCount, value);
969 pBookmark->SetBookmarkTitle(value);
972 case BOOKMARK_CREATIONDATE:
973 r = PresentationModelBase::GetColumn(columnCount, dateValue);
976 createdTime = dateValue;
977 pBookmark->SetCreatedTime(createdTime);
981 case BOOKMARK_UPDATEDATA:
982 r = PresentationModelBase::GetColumn(columnCount, dateValue);
985 modifiedTime = dateValue;
986 pBookmark->SetModifiedTime(modifiedTime);
991 r = PresentationModelBase::GetColumn(columnCount, value);
995 pBookmark->SetIconPath(iconPath);
1000 r = PresentationModelBase::GetColumn(columnCount, intVal);
1006 faviconId.Append(intVal);
1007 if (faviconId.GetLength() > 0)
1009 pBookmark->SetFaviconId(faviconId);
1021 r = folderList.Add(*pBookmark);
1034 BookmarkPresentationModel::CreateBookmarkList(int bookmarkCount, ArrayList& bookmarkList)
1036 AppLog("BookmarkPresentationModel::CreateBookmarkList start");
1037 BookmarkData* pBookmark = null;
1041 result r = E_FAILURE;
1045 DateTime createdTime;
1046 DateTime modifiedTime;
1047 ByteBuffer *pFavIconBuffer = null;
1050 bool nextRowPresent = false;
1052 if (bookmarkCount < 1)
1057 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
1059 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1062 if (nextRowPresent == true)
1064 pBookmark = new(std::nothrow) BookmarkData;
1067 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
1070 switch (columnCount)
1073 r = PresentationModelBase::GetColumn(columnCount, intVal);
1079 bookmarkId.Append(intVal);
1080 if (bookmarkId.GetLength() > 0)
1081 pBookmark->SetBookmarkId(bookmarkId);
1086 case BOOKMARK_PARENT:
1087 r = PresentationModelBase::GetColumn(columnCount, intVal);
1093 parentId.Append(intVal);
1094 if (parentId.GetLength() > 0)
1095 pBookmark->SetParentId(parentId);
1099 case BOOKMARK_ADDRESS:
1100 r = PresentationModelBase::GetColumn(columnCount, value);
1103 pBookmark->SetUrl(value);
1106 case BOOKMARK_TITLE:
1107 r = PresentationModelBase::GetColumn(columnCount, value);
1110 pBookmark->SetBookmarkTitle(value);
1113 case BOOKMARK_CREATIONDATE:
1114 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1117 createdTime = dateValue;
1118 pBookmark->SetCreatedTime(createdTime);
1121 case BOOKMARK_SEQUENCE:
1126 case BOOKMARK_UPDATEDATA:
1127 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1130 modifiedTime = dateValue;
1131 pBookmark->SetModifiedTime(modifiedTime);
1134 case BOOKMARK_VISITDATE:
1139 case BOOKMARK_EDITABLE:
1144 case BOOKMARK_ACCESSACCOUNT:
1149 case BOOKMARK_FAVICON:
1151 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 0");
1152 pFavIconBuffer = new ByteBuffer();
1153 r = PresentationModelBase::GetColumn(columnCount, *pFavIconBuffer);
1154 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 1");
1155 if (pFavIconBuffer->GetCapacity() > 0)
1157 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer not null");
1161 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer is null");
1167 pBookmark->SetFavIconBuffer(*pFavIconBuffer);
1171 case BOOKMARK_FAVICON_LENGTH:
1176 case BOOKMARK_FAVICON_W:
1178 r = PresentationModelBase::GetColumn(columnCount, intVal);
1183 pBookmark->SetFavIconWidth(intVal);
1188 case BOOKMARK_FAVICON_H:
1190 r = PresentationModelBase::GetColumn(columnCount, intVal);
1195 pBookmark->SetFavIconHeight(intVal);
1202 r = PresentationModelBase::GetColumn(columnCount, value);
1206 pBookmark->SetIconPath(iconPath);
1211 r = PresentationModelBase::GetColumn(columnCount, intVal);
1217 faviconId.Append(intVal);
1218 if (faviconId.GetLength() > 0)
1220 pBookmark->SetFaviconId(faviconId);
1232 r = bookmarkList.Add(*pBookmark);
1241 AppLog("BookmarkPresentationModel::CreateBookmarkList end");
1246 BookmarkPresentationModel::DoesBookmarkExist(const Tizen::Base::String& Url, bool &exist, const String& parentId, bool checkParentId)
1248 int bookmarkCount = -1;
1251 String bookmarkTable(BOOKMARK_URL_TABLE);
1252 result r = E_FAILURE;
1253 bool nextRowPresent = false;
1256 query.Append(L"SELECT COUNT(ID) FROM ");
1257 query.Append(bookmarkTable);
1258 query.Append(" WHERE ADDRESS = '");
1260 if(Url.EndsWith(L"/"))
1262 query.Append("' OR ADDRESS = '");
1263 String newUrl = L"";
1264 Url.SubString(0,Url.GetLength()-1 ,newUrl);
1265 query.Append(newUrl);
1269 query.Append("' OR ADDRESS = '");
1270 String newUrl = Url;
1271 // Url.SubString(0,Url.GetLength()-1 ,newUrl);
1272 newUrl.Append(L"/");
1273 query.Append(newUrl);
1276 if(checkParentId == true)
1278 query.Append(L"' AND PARENT = '");
1279 query.Append(parentId);
1283 AppLog("BookmarkPresentationModel::DoesBookmarkExist query is %S",query.GetPointer());
1285 r = PresentationModelBase::ExecuteQuery(query, bookmarkCount);
1286 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DoesBookmarkExist query failed %s",GetErrorMessage(r));
1288 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1290 if (nextRowPresent == true)
1292 r = PresentationModelBase::GetColumn(0, intVal);
1309 BookmarkPresentationModel::DeleteBookmark(const Tizen::Base::String& url)
1311 result r = E_SUCCESS;
1313 String bookmarkTable(BOOKMARK_URL_TABLE);
1314 int resultCount = -1;
1316 query.Append(L"DELETE FROM ");
1317 query.Append(bookmarkTable);
1318 query.Append(" WHERE ADDRESS = '");
1321 if(url.EndsWith(L"/"))
1323 query.Append("' OR ADDRESS = '");
1324 String newUrl = L"";
1325 url.SubString(0,url.GetLength()-1 ,newUrl);
1326 query.Append(newUrl);
1330 query.Append("' OR ADDRESS = '");
1331 String newUrl = url;
1332 // Url.SubString(0,Url.GetLength()-1 ,newUrl);
1333 newUrl.Append(L"/");
1334 query.Append(newUrl);
1340 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
1341 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
1343 r = BookmarkPresentationModel::CommitDb();