2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file GlAllListEditorPanel.cpp
19 * @brief This is the implementation file for AllListEditorPanel class.
23 #include "GlAllListEditorPanel.h"
24 #include "GlCommonUtil.h"
25 #include "GlFileUpdateTimer.h"
26 #include "GlFileListEditorForm.h"
27 #include "GlFileListPresentationModel.h"
28 #include "GlResourceManager.h"
31 using namespace Tizen::App;
32 using namespace Tizen::Base;
33 using namespace Tizen::Base::Collection;
34 using namespace Tizen::Base::Utility;
35 using namespace Tizen::Content;
36 using namespace Tizen::Graphics;
37 using namespace Tizen::Media;
38 using namespace Tizen::Ui::Controls;
39 using namespace Tizen::Ui::Scenes;
41 static const int H_COUNT_LABEL = 48;
42 static const int H_COUNT_LABEL_BUTTON = 42;
43 static const int W_COUNT_LABEL_BUTTON = 42;
44 static const int COUNT_LABEL_FONT_SIZE = 33;
45 static const int H_CONTENT_MARGIN = 9;
46 static const int W_CONTENT_MARGIN = 6;
47 static const int W_CONTENT_SPACE = 6;
48 static const int H_CONTENT_SPACE = 6;
49 static const int LENGTH_COUNT_LABEL = 256;
50 static const unsigned int COLOR_COUNT_LABEL = Color32<68, 68, 68>::Value;
51 static const unsigned int COLOR_SELECT_COUNT_FONT = Color32<255, 255, 255>::Value;
52 static const unsigned int COLOR_COUNT_LABEL_BUTTON = Color32<120, 120, 120>::Value;
53 static const Color COLOR_THUMBNAIL_DIM (Color::GetColor(COLOR_ID_BLACK));
54 static const int ALPHA_THUMBNAIL_DIM = 70;
56 static const Rectangle RECT_INITIAL (0, 0, 10, 10);
58 AllListEditorPanel::AllListEditorPanel(void)
60 , __pContentIconListView(null)
61 , __pLabelSelectCnt(null)
62 , __pButtonSelectRegion(null)
63 , __pFileUpdateTimer(null)
64 , __pFileListEditorForm(null)
65 , __pPresentationModel(null)
68 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
71 AllListEditorPanel::~AllListEditorPanel(void)
74 delete __pFileUpdateTimer;
75 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
79 AllListEditorPanel::Initialize(void)
82 result r = Construct(RECT_INITIAL);
83 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
89 AllListEditorPanel::OnInitializing(void)
92 const Form* pForm = dynamic_cast<Form*>(GetParent());
93 TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
95 __pPresentationModel = FileListPresentationModel::GetInstance();
96 __pPresentationModel->ClearThumbnailRequests();
97 __pPresentationModel->AddPresentationModelListener(this);
99 Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
100 SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
102 __pContentIconListView = new (std::nothrow) IconListView();
103 __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height - H_COUNT_LABEL),
104 DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
105 Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
106 if (pBitmapEmpty != null)
108 __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
111 __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
112 __pContentIconListView->SetMargin(MARGIN_TYPE_LEFT, W_CONTENT_MARGIN);
113 __pContentIconListView->SetMargin(MARGIN_TYPE_RIGHT, W_CONTENT_MARGIN);
114 __pContentIconListView->SetMargin(MARGIN_TYPE_TOP, H_CONTENT_MARGIN);
115 __pContentIconListView->SetItemSpacing(W_CONTENT_SPACE, H_CONTENT_SPACE);
116 __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
117 __pContentIconListView->SetItemProvider(*this);
118 __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_LEFT);
119 __pContentIconListView->AddIconListViewItemEventListener(*this);
120 __pContentIconListView->SetTouchAnimationEnabled(false);
121 AddControl(__pContentIconListView);
122 __pContentIconListView->SetShowState(true);
124 __pLabelSelectCnt = new (std::nothrow) Label();
126 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED").GetPointer();
127 __pLabelSelectCnt->Construct(
128 Rectangle(0, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL), strTmp);
129 __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
130 __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
131 __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
132 __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
133 __pLabelSelectCnt->SetTextConfig(COUNT_LABEL_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
134 AddControl(__pLabelSelectCnt);
135 __pLabelSelectCnt->Invalidate(true);
137 __pButtonSelectRegion = new (std::nothrow) Button();
138 __pButtonSelectRegion->Construct(Rectangle(clientAreaBounds.width - W_COUNT_LABEL_BUTTON - 10,
139 clientAreaBounds.height - H_COUNT_LABEL_BUTTON - 4, W_COUNT_LABEL_BUTTON, H_COUNT_LABEL_BUTTON),
141 __pButtonSelectRegion->SetActionId(IDA_BUTTON_MOVE_TO_SELECTION);
142 __pButtonSelectRegion->SetColor(BUTTON_STATUS_NORMAL, COLOR_COUNT_LABEL_BUTTON);
143 Bitmap* pSelectionBitmap = ResourceManager::GetBitmapN(IDB_BUTTON_MOVE_SELECTION);
144 if (pSelectionBitmap != null)
146 Rectangle buttonRegionRect = __pButtonSelectRegion->GetBounds();
147 pSelectionBitmap->Scale(Dimension(buttonRegionRect.width, buttonRegionRect.height));
148 __pButtonSelectRegion->SetNormalBitmap(Point(buttonRegionRect.width, buttonRegionRect.height),
151 AddControl(__pButtonSelectRegion);
153 if (pSelectionBitmap != null)
155 delete pSelectionBitmap;
157 __pButtonSelectRegion->AddActionEventListener(*this);
160 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
166 AllListEditorPanel::OnTerminating(void)
168 AppLogDebug("ENTER");
169 __pPresentationModel->RemovePresentationModelListener(*this);
170 __pPresentationModel->RemoveContentEventListener(__pFileListEditorForm);
171 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
177 AllListEditorPanel::OnActionPerformed(const Control& source, int actionId)
179 AppLogDebug("ENTER");
180 SceneManager* pSceneManager = SceneManager::GetInstance();
181 TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
185 case IDA_BUTTON_CHECKED:
187 int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
188 for (int i=0; i < loopCount; ++i)
190 if (__pContentIconListView->IsItemChecked(i) == false)
192 __pContentIconListView->SetItemChecked(i, true);
193 __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
196 int checkedCount = GetItemCheckedCount();
199 if (checkedCount == 0)
201 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
203 else if (checkedCount == 1)
205 strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
209 strTmp.Format(LENGTH_COUNT_LABEL,
210 ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
213 __pLabelSelectCnt->SetText(strTmp);
214 __pLabelSelectCnt->RequestRedraw(true);
219 case IDA_BUTTON_UNCHECKED:
221 int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
222 for (int i = 0; i < loopCount; ++i)
224 if (__pContentIconListView->IsItemChecked(i) == true)
226 __pContentIconListView->SetItemChecked(i,false);
229 int checkedCount = GetItemCheckedCount();
232 if (checkedCount == 0)
234 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
236 else if (checkedCount == 1)
238 strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
242 strTmp.Format(LENGTH_COUNT_LABEL,
243 ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
246 __pLabelSelectCnt->SetText(strTmp);
247 __pLabelSelectCnt->RequestRedraw(true);
248 __pContentIconListView->UpdateList();
253 case IDA_BUTTON_MOVE_TO_SELECTION:
255 if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
257 IList* pList = GetItemCheckedIndexListN();
260 pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
262 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_SELECTION), pList);
266 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_SELECTION));
274 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
278 AllListEditorPanel::GetItemCount(void)
280 AppLogDebug("ENTER");
281 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
287 AllListEditorPanel::CreateItem(int index)
289 AppLogDebug("ENTER : index(%d)", index);
290 IconListViewItem* pIconListviewItem;
291 Bitmap* pBitmap = null;
292 String* pItemText = null;
293 result r = __pPresentationModel->GetThumbnailInSyncCacheN(index, pItemText, pBitmap);
294 if (pBitmap == null || r == E_FAILURE)
296 __pPresentationModel->RequestThumbnail(index);
297 pBitmap = CommonUtil::GetEmptyThumbnailN();
300 if (pItemText == null)
302 pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
304 else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
307 pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
310 if (__pContentIconListView->IsItemChecked(index) == true)
314 BufferInfo bufferInfo;
315 pBitmap->Lock(bufferInfo, INFINITE);
317 Color dimColor(COLOR_THUMBNAIL_DIM);
318 dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
321 canvas.Construct(bufferInfo);
322 canvas.FillRectangle(dimColor, canvas.GetBounds());
324 Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
325 pSelectedBitmap->Construct(canvas, canvas.GetBounds());
326 pIconListviewItem = new (std::nothrow) IconListViewItem();
327 pIconListviewItem->Construct(*pBitmap, pItemText, pSelectedBitmap);
328 delete pSelectedBitmap;
332 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
339 pIconListviewItem = new (std::nothrow) IconListViewItem();
340 pIconListviewItem->Construct(*pBitmap, pItemText);
347 if (pItemText != null)
351 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
353 return pIconListviewItem;
357 AllListEditorPanel::DeleteItem(int index, IconListViewItem* pItem)
359 AppLogDebug("ENTER");
361 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
367 AllListEditorPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
369 AppLogDebug("ENTER");
370 if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
372 int checkedCount = GetItemCheckedCount();
375 if (checkedCount == 0)
377 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
379 else if (checkedCount == 1)
381 strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
385 strTmp.Format(LENGTH_COUNT_LABEL,
386 ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
389 __pLabelSelectCnt->SetText(strTmp);
390 __pLabelSelectCnt->RequestRedraw(true);
391 __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
394 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
398 AllListEditorPanel::OnFileInfoChanged(const ContentType contentType)
400 AppLogDebug("ENTER");
401 if (contentType == CONTENT_TYPE_ALL
402 || contentType == CONTENT_TYPE_IMAGE
403 || contentType == CONTENT_TYPE_VIDEO)
405 __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
406 __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
407 __pContentIconListView->UpdateList();
409 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
413 AllListEditorPanel::OnThumbnailDecoded(const int index)
415 AppLogDebug("ENTER : index(%d)", index);
418 __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
420 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
424 AllListEditorPanel::OnSceneActivatedN(const SceneId& previousSceneId,
425 const SceneId& currentSceneId, IList* pArgs)
427 AppLogDebug("ENTER");
428 __pPresentationModel = FileListPresentationModel::GetInstance();
430 SceneManager* pSceneManager = SceneManager::GetInstance();
431 TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
432 __pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
433 TryReturnVoid(__pFileListEditorForm != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
434 __pPresentationModel->AddContentEventListener(__pFileListEditorForm);
436 if (previousSceneId == IDSCN_ALL_LIST_SELECTION)
440 if (__pContentIconListView != null)
442 int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
443 for (int i = 0; i < loopCount; ++i)
445 __pContentIconListView->SetItemChecked(i, false);
447 __pContentIconListView->UpdateList();
450 if (pArgs->GetCount() > 0) //SomeItems are Still Selected.
452 IList* pSeletedIndexList = pArgs;
453 int loopCount = pSeletedIndexList->GetCount();
454 if (__pContentIconListView != null)
456 for (int i = 0; i < loopCount; ++i)
458 int index = static_cast<Integer*>(pSeletedIndexList->GetAt(i))->ToInt();
459 __pContentIconListView->SetItemChecked(index, true);
461 __pContentIconListView->UpdateList();
466 int checkedCount = GetItemCheckedCount();
469 if (checkedCount == 0)
471 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
473 else if (checkedCount == 1)
475 strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
479 strTmp.Format(LENGTH_COUNT_LABEL,
480 ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
483 __pLabelSelectCnt->SetText(strTmp);
484 __pLabelSelectCnt->RequestRedraw(true);
486 else if (previousSceneId == IDSCN_ALL_LIST)
493 __pFileListEditorForm->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
495 if (pArgs != null && pArgs->GetCount() > 0 && previousSceneId != IDSCN_ALL_LIST_SELECTION)
497 String* pDirectory = static_cast<String*>(pArgs->GetAt(0));
498 if (pDirectory != null && pDirectory->GetLength() > 0)
500 __pFileListEditorForm->MoveToAlbum(*pDirectory);
504 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
508 AllListEditorPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
510 AppLogDebug("ENTER");
511 __pPresentationModel->RemoveContentEventListener(__pFileListEditorForm);
512 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
516 AllListEditorPanel::GetItemCheckedCount(void) const
518 AppLogDebug("ENTER");
520 if (__pContentIconListView != null)
522 int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
523 for (int i = 0; i < loopCount; ++i)
525 if (__pContentIconListView->IsItemChecked(i))
531 AppLog("Index i = %d is Not Checked", i);
535 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
541 AllListEditorPanel::GetItemCheckedIndexListN(void) const
543 AppLogDebug("ENTER");
544 IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
545 Integer* pIndex = null;
547 if (__pContentIconListView!=null)
549 int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
550 for (int i = 0; i < loopCount; ++i)
552 if (__pContentIconListView->IsItemChecked(i) == true)
554 pIndex = new (std::nothrow) Integer(i);
556 AppLogDebug("checked index(%d)", i);
560 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
566 AllListEditorPanel::OnRequestDelete(void)
568 AppLogDebug("ENTER");
569 IList* pIndexList = GetItemCheckedIndexListN();
570 if (pIndexList->GetCount() <= 0)
573 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
578 delete __pFileUpdateTimer;
579 __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_DELETE);
580 result r = __pFileUpdateTimer->StartTimer();
584 delete __pFileUpdateTimer;
585 __pFileUpdateTimer = null;
590 __pPresentationModel->SetUpdateProgressStatus(true);
595 void AllListEditorPanel::OnFileOpInvalidate(enum FileActionMode actionId)
597 __pFileListEditorForm->Invalidate(true);
600 void AllListEditorPanel::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
602 __pPresentationModel->SetUpdateProgressStatus(false);
604 __pLabelSelectCnt->SetText(ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
605 __pLabelSelectCnt->RequestRedraw(true);
607 __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
608 __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
609 __pContentIconListView->UpdateList();
611 SceneManager* pSceneManager = SceneManager::GetInstance();
612 if (GetItemCount() > 0)
614 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST,SCENE_TRANSITION_ANIMATION_TYPE_NONE,
615 SCENE_HISTORY_OPTION_ADD_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
619 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST,SCENE_TRANSITION_ANIMATION_TYPE_NONE,
620 SCENE_HISTORY_OPTION_ADD_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
622 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
626 AllListEditorPanel::OnRequestMessage(void)
628 AppLogDebug("ENTER");
629 result r = E_SUCCESS;
630 IList* pIndexList = GetItemCheckedIndexListN();
631 if (pIndexList == null || pIndexList->GetCount() <= 0)
633 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
638 Integer* pIndex = null;
640 ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
641 pArrayList->Construct();
642 int loopCount = pIndexList->GetCount();
644 for (int i = 0; i < loopCount; ++i)
646 pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
649 checkedIndex = pIndex->ToInt();
650 pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
654 HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
655 pDataList->Construct();
656 pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_MESSAGE_TYPE), new (std::nothrow) String(APPCONTROL_DATA_MMS));
657 pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
659 r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGE, APPCONTROL_OPERATION_ID_COMPOSE, null,
660 null, pDataList, null);
662 if (r == E_MAX_EXCEEDED)
664 MessageBox messageBox;
665 messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
666 MSGBOX_STYLE_NONE, 3000);
668 messageBox.ShowAndWait(modalResult);
670 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
676 AllListEditorPanel::OnRequestEmail(void)
678 AppLogDebug("ENTER");
679 result r = E_SUCCESS;
681 IList* pIndexList = GetItemCheckedIndexListN();
682 if (pIndexList == null || pIndexList->GetCount() <= 0)
684 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
689 Integer* pIndex = null;
691 ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
692 pArrayList->Construct();
693 int loopCount = pIndexList->GetCount();
695 for (int i = 0; i < loopCount; ++i)
697 pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
700 checkedIndex = pIndex->ToInt();
701 pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
705 HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
706 pDataList->Construct();
707 pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
709 r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL, APPCONTROL_OPERATION_ID_COMPOSE,
710 new (std::nothrow) String(APPCONTROL_URI_MAIL_TO), null, pDataList, null);
712 if (r == E_MAX_EXCEEDED)
714 MessageBox messageBox;
715 messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
716 MSGBOX_STYLE_NONE, 3000);
718 messageBox.ShowAndWait(modalResult);
721 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
727 AllListEditorPanel::OnRequestSlideShow(void)
729 AppLogDebug("ENTER");
730 result r = E_SUCCESS;
731 IList* pIndexList = GetItemCheckedIndexListN();
732 if (pIndexList == null)
734 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
738 Integer* pRealIndex = null;
740 ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
741 pArrayList->Construct();
742 int loopCount = pIndexList->GetCount();
744 for (int i = 0; i < loopCount; ++i)
746 pRealIndex = static_cast<Integer*>(pIndexList->GetAt(i));
747 if (pRealIndex != null)
749 realIndex = pRealIndex->ToInt();
750 pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(realIndex)));
754 HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
755 pDataList->Construct();
756 pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
757 pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
759 r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
760 new (std::nothrow) String(APPCONTROL_MIME_IMAGE_ALL), pDataList, null);
762 if (r == E_MAX_EXCEEDED)
764 MessageBox messageBox;
765 messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
766 MSGBOX_STYLE_NONE, 3000);
768 messageBox.ShowAndWait(modalResult);
772 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
778 AllListEditorPanel::ResetSelection(void)
780 AppLogDebug("ENTER");
781 __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
782 __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
784 for ( int index = 0; index < __itemCount; index++)
786 __pContentIconListView->SetItemChecked(index, false);
789 __pContentIconListView->UpdateList();
792 strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
794 __pLabelSelectCnt->SetText(strTmp);
795 __pLabelSelectCnt->RequestRedraw(true);
797 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
801 AllListEditorPanel::SetButtonState(void)
803 AppLogDebug("ENTER");
804 SceneManager* pSceneManager = SceneManager::GetInstance();
805 TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
807 if (GetItemCheckedCount() > 0)
809 AppLogDebug("BUTTONSTATE : Request Enable");
810 __pFileListEditorForm->SetFooterButtonsState(true);
811 __pButtonSelectRegion->SetShowState(true);
815 AppLogDebug("BUTTONSTATE : Request disable");
816 __pFileListEditorForm->SetFooterButtonsState(false);
817 __pButtonSelectRegion->SetShowState(false);
819 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
823 AllListEditorPanel::OnSelectAllPressed(void)
825 bool needToSelectAll = true;
826 int checkedCount = GetItemCheckedCount();
827 int totalFileCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
828 if (checkedCount == totalFileCount)
830 needToSelectAll = false;
833 if (needToSelectAll == true)
835 for (int i = 0; i < totalFileCount; ++i)
837 if (__pContentIconListView->IsItemChecked(i) == false)
839 __pContentIconListView->SetItemChecked(i,true);
840 __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
846 for (int i = 0; i < totalFileCount; ++i)
848 if (__pContentIconListView->IsItemChecked(i) == true)
850 __pContentIconListView->SetItemChecked(i, false);
851 __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
857 if (needToSelectAll == true)
859 tempString.Format(LENGTH_COUNT_LABEL,
860 ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), totalFileCount);
864 tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
867 __pLabelSelectCnt->SetText(tempString);
868 __pLabelSelectCnt->RequestRedraw(true);
873 AllListEditorPanel::OnRequestRotate(RotateMode rotateMode)
875 AppLogDebug("ENTER");
876 IList* pIndexList = GetItemCheckedIndexListN();
877 if (pIndexList == null)
879 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
882 else if (pIndexList->GetCount() <= 0)
885 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
890 delete __pFileUpdateTimer;
891 __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_ROTATE, rotateMode);
892 result r = __pFileUpdateTimer->StartTimer();
896 delete __pFileUpdateTimer;
897 __pFileUpdateTimer = null;
902 __pPresentationModel->SetUpdateProgressStatus(true);
907 void AllListEditorPanel::CancelUpdateProgress(void)
909 if( __pFileUpdateTimer!= null && __pFileUpdateTimer->IsStarted())
911 __pFileUpdateTimer->Cancel();
912 delete __pFileUpdateTimer;
913 __pFileUpdateTimer = null;