Beispiel #1
0
        /// <summary>
        /// 指定したアイテムを削除する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void deleteItemButton_Click(object sender, RoutedEventArgs e)
        {
            FolderListItem item = (sender as MenuFlyoutItem).DataContext as FolderListItem;

            if (item == null)
            {
                return;
            }

            MessageDialog dialog = new MessageDialog(item.Name + "を本棚から削除しますか?", "確認");

            dialog.Commands.Add(new UICommand("OK", (command) => {
                //TODO:ここに削除処理
                BookCategory category = m_db.QueryBookCategory(item.Name);
                foreach (BookItem bookItem in m_db.QueryBookItemList(category))
                {
                    StorageHistoryManager.RemoveStorage(bookItem.Token, StorageHistoryManager.DataType.Bookshelf);
                }
                m_db.DeleteBookCategory(category);

                this.ViewModel.Init(m_naviParam);
            }));
            dialog.Commands.Add(new UICommand("キャンセル"));
            dialog.DefaultCommandIndex = 1;
            await dialog.ShowAsync();
        }
Beispiel #2
0
        /// <summary>
        /// ZIPデータを読み込みファイル一覧を作成する
        /// </summary>
        /// <returns></returns>
        public async Task LoadDataAsync()
        {
            this.Dispose();
            this.m_dataList.Clear();

            StorageFile zipFile = await StorageFile.GetFileFromPathAsync(m_imageParam.Path);

            StorageHistoryManager.AddStorage(zipFile, StorageHistoryManager.DataType.Latest);
            this.ParentStorage = zipFile;

            IRandomAccessStream randomStream = await zipFile.OpenReadAsync();

            Stream stream = randomStream.AsStreamForRead();

            m_zipArchive = new ZipArchive(stream);
            foreach (ZipArchiveEntry entry in m_zipArchive.Entries)
            {
                if (FileKind.IsImageFile(entry.FullName))
                {
                    m_dataList.Add(entry);
                }
            }
            sortList(m_dataList);

            //名前の順に並び替え
            foreach (ZipArchiveEntry entry in m_dataList)
            {
                Debug.WriteLine(entry.Name);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 指定した本棚カテゴリから削除する
        /// </summary>
        /// <param name="category"></param>
        private void removeBookItem(BookCategory category)
        {
            BookItem bookItem = m_db.QueryBookItemFromPath(category.Id, this.ViewModel.ParentStorage.Path);

            if (bookItem != null)
            {
                StorageHistoryManager.RemoveStorage(bookItem.Token, StorageHistoryManager.DataType.Bookshelf);
                m_db.DeleteBookItem(bookItem);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 全削除ボタン押下処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void deleteAllButton_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog dialog = new MessageDialog("全履歴の削除を実行しますか?", "確認");

            dialog.Commands.Add(new UICommand("OK", (command) => {
                StorageHistoryManager.RemoveAll(StorageHistoryManager.DataType.Latest);
                ViewModel.Init(m_naviParam);
            }));
            dialog.Commands.Add(new UICommand("キャンセル"));
            dialog.DefaultCommandIndex = 1;
            await dialog.ShowAsync();
        }
Beispiel #5
0
        /// <summary>
        /// フォルダの登録を全て解除する
        /// </summary>
        private async void RemoveAllButton_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog dialog = new MessageDialog("全てのフォルダ登録を解除しますか?(中のファイルなどは削除しません)", "確認");

            dialog.Commands.Add(new UICommand("OK", (command) => {
                StorageHistoryManager.RemoveAll(StorageHistoryManager.DataType.Folder);
                ViewModel.Init(m_naviParam);
            }));
            dialog.Commands.Add(new UICommand("キャンセル"));
            dialog.DefaultCommandIndex = 1;
            await dialog.ShowAsync();
        }
Beispiel #6
0
        /// <summary>
        /// フォルダを登録する
        /// </summary>
        private async void AddButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder folder = await selectFolder();

            if (folder == null)
            {
                return; //未選択
            }

            StorageHistoryManager.AddStorage(folder, StorageHistoryManager.DataType.Folder);
            ViewModel.Init(m_naviParam);
        }
Beispiel #7
0
        /// <summary>
        /// 指定した本棚カテゴリに追加する
        /// </summary>
        /// <param name="category"></param>
        private void addBookItem(BookCategory category)
        {
            string token = StorageHistoryManager.AddStorage(this.ViewModel.ParentStorage, StorageHistoryManager.DataType.Bookshelf);

            m_db.InsertBookItem(new BookItem()
            {
                BookCategoryId = category.Id,
                Token          = token,
                Path           = this.ViewModel.ParentStorage.Path,
                Uptime         = DateTime.Now
            });
        }
        /// <summary>
        /// ファイル一覧を作成する
        /// </summary>
        /// <returns></returns>
        public async Task LoadDataAsync()
        {
            StorageFolder folder;

            if (m_imageParam.Type == ImageNavigateParameter.DataType.ImageFile)
            {
                StorageFile imageFile = await StorageFile.GetFileFromPathAsync(m_imageParam.Path);

                folder = await imageFile.GetParentAsync();
            }
            else
            {
                folder = await StorageFolder.GetFolderFromPathAsync(m_imageParam.Path);
            }
            StorageHistoryManager.AddStorage(folder, StorageHistoryManager.DataType.Latest);
            this.ParentStorage = folder;

            IReadOnlyList <StorageFile> fileList = await getImageFilesAsync(folder);

            m_dataList.Clear();
            foreach (StorageFile file in fileList)
            {
                m_dataList.Add(file);
            }

            //ファイル名昇順で並び替え
            sortList(m_dataList);

            //遷移時の選択ファイルを取得
            for (int i = 0; i < m_dataList.Count; i++)
            {
                if (m_dataList[i].Path == m_imageParam.Path)
                {
                    this.FirstIndex = i;
                    break;
                }
            }
        }