コード例 #1
0
        private void LoadTemplates()
        {
            Items.Clear();
            PageItems.Clear();
            int count = 0;

            string[] files = Directory.GetFiles(Constants.TemplateThumbnailRoot);
            if (files == null)
            {
                Debug.Write("Error: Reading files from the souvenirs image folder returns null.");
                return;
            }
            foreach (var file in files)
            {
                string        name     = Path.GetFileNameWithoutExtension(file);
                TemplateModel template = new TemplateModel(name, Path.GetFullPath(file), name);
                if (count < Constants.NumberOfItemsPerPage)
                {
                    PageItems.Add(template);
                    ++count;
                }
                Items.Add(template);
            }
            PageCursor    = 1;
            NumberOfPages = (Items.Count + Constants.NumberOfItemsPerPage - 1) / Constants.NumberOfItemsPerPage;
            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();
        }
コード例 #2
0
        protected void Reset()
        {
            PageCursor    = 1;
            NumberOfPages = 1;
            Items.Clear();
            PageItems.Clear();

            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();
        }
コード例 #3
0
        private void EditBookChanged()
        {
            EditBook.BookPages.CollectionChanged += BookPages_CollectionChanged;

            PaperWidth  = EditBook.PaperSize.GetWidthPixel();
            PaperHeight = EditBook.PaperSize.GetHeightPiexl();

            TotalNum = EditBook.BookPages.Count;
            LeftNum  = -1;
            RightNum = 0;

            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();
        }
コード例 #4
0
        private void PageForwardCommandExecute(object parameter)
        {
            PageItems.Clear();
            ++PageCursor;
            int startIndex = (PageCursor - 1) * Constants.NumberOfItemsPerPage;

            for (var i = startIndex; i < startIndex + Constants.NumberOfItemsPerPage; ++i)
            {
                if (i >= Items.Count)
                {
                    break;
                }
                PageItems.Add(Items[i]);
            }
            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();
        }
コード例 #5
0
        private void BookPages_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            TotalNum = EditBook.BookPages.Count;

            if (e.Action == NotifyCollectionChangedAction.Remove &&
                TotalNum % 2 == 0)
            {
                PageBack();
            }
            else
            {
                LeftNum  = LeftNum;
                RightNum = RightNum;
            }

            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();
        }
コード例 #6
0
        private async void LoadAlbumsAsync()
        {
            lock (loadAlbumsMutex)
            {
                if (isLoadingAlbums)
                {
                    return;
                }

                isLoadingAlbums = true;
            }

            Items.Clear();
            PageItems.Clear();
            int count  = 0;
            var albums = await oneDriveController.GetAlbumsAsync();

            if (albums == null)
            {
                if (!HasInternetConnection)
                {
                    Debug.WriteLine("No internet connection.");
                }
                ItemsExist = false;
                IsLoading  = false;

                Debug.WriteLine("Error: Fetching albums from OneDrive returns null.");

                lock (loadAlbumsMutex)
                {
                    isLoadingAlbums = false;
                }
            }
            else
            {
                foreach (var album in albums)
                {
                    var bundle = new BundleModel(album.Id, album.Name, album.ThumbnailUrl);
                    if (count < Constants.NumberOfItemsPerPage)
                    {
                        PageItems.Add(bundle);
                        ++count;
                    }
                    Items.Add(bundle);
                }
            }

            PageCursor    = 1;
            NumberOfPages = (Items.Count + Constants.NumberOfItemsPerPage - 1) / Constants.NumberOfItemsPerPage;
            NumberOfPages = NumberOfPages < 1 ? 1 : NumberOfPages;
            ItemsExist    = Items.Count != 0;

            PageBackCommand.RaiseCanExecuteChanged();
            PageForwardCommand.RaiseCanExecuteChanged();

            IsLoading = false;

            lock (loadAlbumsMutex)
            {
                isLoadingAlbums = false;
            }
        }