Example #1
0
        private void OnFolderChanged(BaseFolderViewModel folder)
        {
            if (this.ViewModel == null)
            {
                return;
            }

            if (this.ViewModel.Folder != null)
            {
                this.ViewModel.Folder.FolderNavigatedTo -= OnFolderNavigatedTo;
                this.ViewModel.Folder.ChangeViewEvent   -= OnViewChanged;
                this.ViewModel.Folder.ItemCollection.MultiSelectEnabled  -= OnMultiSelectEnabled;
                this.ViewModel.Folder.ItemCollection.MultiSelectDisabled -= OnMultiSelectDisabled;
                this.ViewModel.Folder.ItemCollection.OnlyAllowSingleSelectStatusChanged -= OnOnlyAllowSingleSelectStatusChanged;
                this.ViewModel.Folder.ItemCollection.AllSelected -= OnAllSelected;
            }

            this.ViewModel.Folder = folder;

            if (this.ViewModel.Folder == null)
            {
                return;
            }

            this.ViewModel.Folder.FolderNavigatedTo += OnFolderNavigatedTo;
            this.ViewModel.Folder.ChangeViewEvent   += OnViewChanged;
            this.ViewModel.Folder.ItemCollection.MultiSelectEnabled  += OnMultiSelectEnabled;
            this.ViewModel.Folder.ItemCollection.MultiSelectDisabled += OnMultiSelectDisabled;
            this.ViewModel.Folder.ItemCollection.OnlyAllowSingleSelectStatusChanged += OnOnlyAllowSingleSelectStatusChanged;
            this.ViewModel.Folder.ItemCollection.AllSelected += OnAllSelected;

            this.OnlyAllowSingleSelect(this.ViewModel.Folder.IsForSelectFolder);
        }
Example #2
0
        /// <summary>
        /// Creates the sort menu with all the sort options.
        /// </summary>
        /// <param name="folder">Folder to sort.</param>
        /// <returns>The flyout menu with the sort options.</returns>
        public static MenuFlyout CreateSortMenu(BaseFolderViewModel folder)
        {
            var currentSortOrder = UiService.GetSortOrder(folder?.FolderRootNode?.Base64Handle, folder?.FolderRootNode?.Name);

            MenuFlyout menuFlyout = new MenuFlyout();

            menuFlyout.Items?.Add(new MenuFlyoutItem()
            {
                Text       = ResourceService.UiResources.GetString("UI_SortOptionName"),
                Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_NAME),
                Command    = new RelayCommand(() =>
                {
                    var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ?
                                   MSortOrderType.ORDER_ALPHABETICAL_ASC : MSortOrderType.ORDER_ALPHABETICAL_DESC;
                    if (folder == null)
                    {
                        return;
                    }
                    UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder);
                    folder.LoadChildNodes();
                })
            });

            menuFlyout.Items?.Add(new MenuFlyoutItem()
            {
                Text       = ResourceService.UiResources.GetString("UI_SortOptionSize"),
                Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_SIZE),
                Command    = new RelayCommand(() =>
                {
                    var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ?
                                   MSortOrderType.ORDER_SIZE_ASC : MSortOrderType.ORDER_SIZE_DESC;
                    if (folder == null)
                    {
                        return;
                    }
                    UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder);
                    folder.LoadChildNodes();
                })
            });

            menuFlyout.Items?.Add(new MenuFlyoutItem()
            {
                Text       = ResourceService.UiResources.GetString("UI_SortOptionDateModified"),
                Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_MODIFICATION),
                Command    = new RelayCommand(() =>
                {
                    var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ?
                                   MSortOrderType.ORDER_MODIFICATION_ASC : MSortOrderType.ORDER_MODIFICATION_DESC;
                    if (folder == null)
                    {
                        return;
                    }
                    UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder);
                    folder.LoadChildNodes();
                })
            });

            menuFlyout.Items?.Add(new MenuFlyoutItem()
            {
                Text       = ResourceService.UiResources.GetString("UI_SortOptionType"),
                Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_TYPE),
                Command    = new RelayCommand(() =>
                {
                    var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ?
                                   MSortOrderType.ORDER_DEFAULT_ASC : MSortOrderType.ORDER_DEFAULT_DESC;
                    if (folder == null)
                    {
                        return;
                    }
                    UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder);
                    folder.LoadChildNodes();
                })
            });

            return(menuFlyout);
        }