Beispiel #1
0
 private void IsInAnotherGroup(List <INode> history, INode newNode)
 {
     if (_currentGroup != newNode.MultiSelectSettings.MultiSelectGroup)
     {
         CloseAllNodesInList(history);
         _historyTracker.UpdateHistoryData(null);
         _currentGroup = newNode.MultiSelectSettings.MultiSelectGroup;
     }
 }
Beispiel #2
0
    private void CloseThisLevel(INode node)
    {
        _history.Remove(node);
        _historyTracker.UpdateHistoryData(node);

        if (node.HasChildBranch.IsNull())
        {
            return;
        }
        node.HasChildBranch.LastSelected.DeactivateNode();
        node.HasChildBranch.StartBranchExitProcess(OutTweenType.Cancel, EndOfTweenActions);

        void EndOfTweenActions() => node.MyBranch.MoveToThisBranch();
    }
Beispiel #3
0
    private void DoesntContainNewNode()
    {
        if (!_historyTracker.IsPaused)
        {
            SelectedNodeInDifferentBranch();
        }

        _historyTracker.UpdateHistoryData(_newNode);

        _history.Add(_newNode);
        _lastSelected = _newNode;
    }
    public INode BackOneLevelProcess()
    {
        CheckForExceptionsOneLevel();
        if (_history.Count == 0)
        {
            return(null);
        }

        var lastNode = _history.Last();

        if (IsHomeScreenBranch(lastNode))
        {
            return(BackToHomeProcess());
        }

        _historyTracker.UpdateHistoryData(lastNode);

        _history.Remove(lastNode);
        DoMoveBackOneLevel(lastNode, _activeBranch);
        ResetExceptionChecks();
        return(_history.Count == 0 ? null : _history.Last());
    }