Example #1
0
        public void ToggleChildrenVisibility(DeckInformation parent, IAnkiDecksView decksView)
        {
            var children = GetChildren(parent);

            parent.IsShowChildren = !parent.IsShowChildren;

            foreach (var deck in children.Desks)
            {
                if (parent.IsShowChildren)
                {
                    if (Collection.Deck.IsParent(parent.Name, deck.Name))
                    {
                        deck.Visibility = Visibility.Visible;
                    }
                }
                else
                {
                    deck.Visibility     = Visibility.Collapsed;
                    deck.IsShowChildren = false;
                }
                var item = decksView.GetItemView(deck);
                if (item != null)
                {
                    item.Visibility = deck.Visibility;
                }
            }
        }
        public void UnFoldAllChildrenDecks(IAnkiDecksView decksView)
        {
            foreach (var parent in Decks)
            {
                if (!parent.IsParent)
                {
                    continue;
                }

                var children = GetChildren(parent);
                parent.IsShowChildren = true;

                foreach (var deck in children.Desks)
                {
                    if (!Collection.Deck.IsParent(parent.Name, deck.Name))
                    {
                        continue;
                    }

                    deck.Visibility     = Visibility.Visible;
                    deck.IsShowChildren = true;

                    var item = decksView.GetItemView(deck);
                    if (item != null)
                    {
                        item.Visibility = Visibility.Visible;
                    }
                }
            }
        }
Example #3
0
 public void ShowAllDecks(IAnkiDecksView decksView)
 {
     foreach (var deck in Decks)
     {
         deck.Visibility     = Visibility.Visible;
         deck.IsShowChildren = true;
         var item = decksView.GetItemView(deck);
         if (item != null)
         {
             item.Visibility = deck.Visibility;
         }
     }
 }
Example #4
0
        public void DragAnDrop(DeckInformation parent, DeckInformation child, IAnkiDecksView deckView)
        {
            var oldName         = child.Name;
            var oldParent       = child.ParentName;
            var childrenOfChild = GetChildren(child);

            if (Collection.Deck.IsParent(parent.Name, child.Name))
            {
                RemoveFromSubDeck(child); //Remove from children if child deck is dragged on parent deck
            }
            else
            {
                CreateSubDeck(parent, child);
            }

            //Children name of child must be updated later
            UpdateDeckName(child, false);
            //If name does not change no need to update anything
            if (oldName.Equals(child.Name, StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            //Remove children of child first to avoid sorting errors
            RemoveChildrenFromDecks(childrenOfChild);

            if (Collection.Deck.IsParent(parent.Name, child.Name))
            {
                parent.IsParent = true;
                if (!parent.IsShowChildren)
                {
                    ToggleChildrenVisibility(parent, deckView);
                }
                SortIntoSubdeck(parent, child);
            }
            else
            {
                ResortNonSubdeck(child);
            }

            SetInShowChildrenState(child);
            UpdateChildrenPositionAndName(child, childrenOfChild);
            UpdateOldParent(oldParent);

            UpdateCardCountAllDecks();
            Collection.SaveAndCommitAsync();
        }
Example #5
0
        private void SwitchToListView()
        {
            MainPage.UserPrefs.IsDeckListView = true;
            if (deckGridView != null)
            {
                deckGridView.Visibility  = Visibility.Collapsed;
                deckGridView.DataContext = null;
            }
            if (deckListView == null)
            {
                this.FindName("deckListView");
                decksView = deckListView as IAnkiDecksView;
                HookDeckItemEvent();
            }
            decksView             = deckListView;
            decksView.DataContext = deckListViewModel.Decks;
            mainPage.ListViewButton.Visibility = Visibility.Collapsed;
            mainPage.GridViewButton.Visibility = Visibility.Visible;

            deckListViewModel.ShowAllDecks(decksView);
            deckListView.Visibility = Visibility.Visible;
        }