protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            ListViewControl.AddHandler(PointerPressedEvent, PointerPressedHandler, true);
            CoreWindow.GetForCurrentThread().KeyDown += RecycleBin_KeyDown;
            SelectionExtention = new ListViewBaseSelectionExtention(ListViewControl, DrawRectangle);

            await ActivateLoading(true, Globalization.GetString("Progress_Tip_Loading"));

            using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController())
            {
                IReadOnlyList <IRecycleStorageItem> Result = await Exclusive.Controller.GetRecycleBinItemsAsync();

                FileCollection.AddRange(SortCollectionGenerator.GetSortedCollection(Result, SortTarget.Name, SortDirection.Ascending));
            }

            if (FileCollection.Count == 0)
            {
                HasFile.Visibility        = Visibility.Visible;
                ClearRecycleBin.IsEnabled = false;
            }
            else
            {
                HasFile.Visibility        = Visibility.Collapsed;
                ClearRecycleBin.IsEnabled = true;
            }

            await ActivateLoading(false);
        }
Exemple #2
0
        private void ListHeaderName_Click(object sender, RoutedEventArgs e)
        {
            if (SortMap[SortTarget.Name] == SortDirection.Ascending)
            {
                SortMap[SortTarget.Name]         = SortDirection.Descending;
                SortMap[SortTarget.Type]         = SortDirection.Ascending;
                SortMap[SortTarget.ModifiedTime] = SortDirection.Ascending;
                SortMap[SortTarget.Size]         = SortDirection.Ascending;
                SortMap[SortTarget.Path]         = SortDirection.Ascending;

                FileSystemStorageItemBase[] SortResult = SortCollectionGenerator.GetSortedCollection(SearchResult, SortTarget.Name, SortDirection.Descending).ToArray();

                SearchResult.Clear();

                foreach (FileSystemStorageItemBase Item in SortResult)
                {
                    SearchResult.Add(Item);
                }
            }
            else
            {
                SortMap[SortTarget.Name]         = SortDirection.Ascending;
                SortMap[SortTarget.Type]         = SortDirection.Ascending;
                SortMap[SortTarget.ModifiedTime] = SortDirection.Ascending;
                SortMap[SortTarget.Size]         = SortDirection.Ascending;
                SortMap[SortTarget.Path]         = SortDirection.Ascending;

                FileSystemStorageItemBase[] SortResult = SortCollectionGenerator.GetSortedCollection(SearchResult, SortTarget.Name, SortDirection.Ascending).ToArray();

                SearchResult.Clear();

                foreach (FileSystemStorageItemBase Item in SortResult)
                {
                    SearchResult.Add(Item);
                }
            }
        }
Exemple #3
0
        private async Task Initialize(SearchCategory Category, bool IngoreCase, bool IncludeRegex, bool GlobleSearch, uint MaxCount)
        {
            HasItem.Visibility = Visibility.Collapsed;

            try
            {
                Cancellation = new CancellationTokenSource();

                if (WeakToFileControl.TryGetTarget(out FileControl Control))
                {
                    string SearchTarget = Control.GlobeSearch.Text;
                    FileSystemStorageFolder CurrentFolder = Control.CurrentPresenter.CurrentFolder;

                    SearchStatus.Text          = Globalization.GetString("SearchProcessingText");
                    SearchStatusBar.Visibility = Visibility.Visible;

                    switch (Category)
                    {
                    case SearchCategory.BuiltInEngine_Deep:
                    case SearchCategory.BuiltInEngine_Shallow:
                    {
                        await foreach (FileSystemStorageItemBase Item in CurrentFolder.SearchAsync(SearchTarget, Category == SearchCategory.BuiltInEngine_Deep, SettingControl.IsDisplayHiddenItem, SettingControl.IsDisplayProtectedSystemItems, IncludeRegex, IngoreCase, Cancellation.Token))
                        {
                            if (Cancellation.IsCancellationRequested)
                            {
                                HasItem.Visibility = Visibility.Visible;
                                break;
                            }
                            else
                            {
                                SearchResult.Insert(SortCollectionGenerator.SearchInsertLocation(SearchResult, Item, SortTarget.Name, SortDirection.Ascending), Item);
                            }
                        }

                        if (SearchResult.Count == 0)
                        {
                            HasItem.Visibility = Visibility.Visible;
                        }

                        break;
                    }

                    case SearchCategory.EverythingEngine:
                    {
                        using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController())
                        {
                            IReadOnlyList <FileSystemStorageItemBase> SearchItems = await Exclusive.Controller.SearchByEverythingAsync(GlobleSearch?string.Empty : CurrentFolder.Path, SearchTarget, IncludeRegex, IngoreCase, MaxCount);

                            if (SearchItems.Count == 0)
                            {
                                HasItem.Visibility = Visibility.Visible;
                            }
                            else
                            {
                                foreach (FileSystemStorageItemBase Item in SortCollectionGenerator.GetSortedCollection(SearchItems, SortTarget.Name, SortDirection.Ascending))
                                {
                                    SearchResult.Add(Item);
                                }
                            }
                        }

                        break;
                    }
                    }

                    SearchStatus.Text          = Globalization.GetString("SearchCompletedText");
                    SearchStatusBar.Visibility = Visibility.Collapsed;
                }
            }
            catch (Exception ex)
            {
                LogTracer.Log(ex, $"An error was threw in {nameof(Initialize)}");
            }
            finally
            {
                Cancellation.Dispose();
                Cancellation = null;
            }
        }
        private async Task Initialize(SearchOptions Options)
        {
            HasItem.Visibility = Visibility.Collapsed;

            try
            {
                Cancellation = new CancellationTokenSource();

                SearchStatus.Text          = Globalization.GetString("SearchProcessingText");
                SearchStatusBar.Visibility = Visibility.Visible;

                switch (Options.EngineCategory)
                {
                case SearchCategory.BuiltInEngine:
                {
                    await foreach (FileSystemStorageItemBase Item in Options.SearchFolder.SearchAsync(Options.SearchText, Options.DeepSearch, SettingControl.IsDisplayHiddenItem, SettingControl.IsDisplayProtectedSystemItems, Options.UseRegexExpression, Options.IgnoreCase, Cancellation.Token))
                    {
                        if (Cancellation.IsCancellationRequested)
                        {
                            HasItem.Visibility = Visibility.Visible;
                            break;
                        }
                        else
                        {
                            SearchResult.Insert(SortCollectionGenerator.SearchInsertLocation(SearchResult, Item, SortTarget.Name, SortDirection.Ascending), Item);
                        }
                    }

                    if (SearchResult.Count == 0)
                    {
                        HasItem.Visibility = Visibility.Visible;
                    }

                    break;
                }

                case SearchCategory.EverythingEngine:
                {
                    using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController())
                    {
                        IReadOnlyList <FileSystemStorageItemBase> SearchItems = await Exclusive.Controller.SearchByEverythingAsync(Options.DeepSearch?string.Empty : Options.SearchFolder.Path, Options.SearchText, Options.UseRegexExpression, Options.IgnoreCase, Options.NumLimit);

                        if (SearchItems.Count == 0)
                        {
                            HasItem.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            foreach (FileSystemStorageItemBase Item in SortCollectionGenerator.GetSortedCollection(SearchItems, SortTarget.Name, SortDirection.Ascending))
                            {
                                SearchResult.Add(Item);
                            }
                        }
                    }

                    break;
                }
                }

                SearchStatus.Text          = Globalization.GetString("SearchCompletedText");
                SearchStatusBar.Visibility = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                LogTracer.Log(ex, $"An error was threw in {nameof(Initialize)}");
            }
            finally
            {
                Cancellation.Dispose();
                Cancellation = null;
            }
        }