public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(parameter is CodeExplorerSortOrder flag) ||
                !(value is bool isSet))
            {
                return(_state);
            }

            switch (flag)
            {
            case CodeExplorerSortOrder.Name:
                _state = isSet ? (_state & ~CodeExplorerSortOrder.CodeLine) | flag : (_state & ~flag) | CodeExplorerSortOrder.Name;
                break;

            case CodeExplorerSortOrder.CodeLine:
                _state = isSet ? (_state & ~CodeExplorerSortOrder.Name) | flag : (_state & ~flag) | CodeExplorerSortOrder.CodeLine;
                break;

            default:
                _state ^= flag;
                break;
            }

            return(_state);
        }
コード例 #2
0
        public void SortComparerIsPriority_ProjectReference(CodeExplorerSortOrder order)
        {
            var viewModel = new CodeExplorerReferenceViewModel(null, ProjectReference)
            {
                SortOrder = order
            };

            Assert.AreEqual(CodeExplorerItemComparer.ReferencePriority.GetType(), viewModel.SortComparer.GetType());
        }
コード例 #3
0
        public void SortComparerIsReferenceType_Projects(CodeExplorerSortOrder order)
        {
            var references = AddRemoveReferencesSetup.DummyProjectsList;
            var folder     = new CodeExplorerReferenceFolderViewModel(null, null, references, ReferenceKind.Project)
            {
                SortOrder = order
            };

            Assert.AreEqual(CodeExplorerItemComparer.ReferenceType.GetType(), folder.SortComparer.GetType());
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(parameter is CodeExplorerSortOrder flag) ||
                !(value is CodeExplorerSortOrder bound))
            {
                return(_state);
            }

            _state = bound;
            return(_state.HasFlag(flag));
        }
コード例 #5
0
        public void SortComparerIsComponentType(CodeExplorerSortOrder order)
        {
            var declarations         = CodeExplorerTestSetup.TestProjectOneDeclarations.TestComponentDeclarations(CodeExplorerTestSetup.TestModuleName);
            var componentDeclaration = declarations
                                       .First(declaration => declaration.DeclarationType.HasFlag(DeclarationType.Module) &&
                                              declaration.IdentifierName.Equals(CodeExplorerTestSetup.TestModuleName));

            var component = new CodeExplorerComponentViewModel(null, componentDeclaration, ref declarations, null);

            Assert.AreEqual(CodeExplorerItemComparer.ComponentType.GetType(), component.SortComparer.GetType());
        }
コード例 #6
0
        public void SortComparerIsCorrectSortOrderType(CodeExplorerSortOrder order, Type comparerType)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(CodeExplorerTestCode.TestSubName, out var memberDeclaration);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations)
            {
                SortOrder = order
            };


            Assert.AreEqual(comparerType, member.SortComparer.GetType());
        }
コード例 #7
0
        public void SortComparerIsNodeType(CodeExplorerSortOrder order)
        {
            var declarations       = CodeExplorerTestSetup.TestProjectOneDeclarations;
            var projectDeclaration = declarations.First(declaration => declaration.DeclarationType == DeclarationType.Project);

            var project = new CodeExplorerProjectViewModel(projectDeclaration, ref declarations, null, null, CodeExplorerTestSetup.ProjectOneProvider)
            {
                SortOrder = order
            };

            Assert.AreEqual(CodeExplorerItemComparer.NodeType.GetType(), project.SortComparer.GetType());
        }
コード例 #8
0
        public void SortComparerIsName(CodeExplorerSortOrder order)
        {
            const string folderName = "Foo";

            var testFolder   = (Name : CodeExplorerTestSetup.TestModuleName, Folder : folderName);
            var declarations = CodeExplorerTestSetup.TestProjectWithFolderStructure(new List <(string Name, string Folder)> {
                testFolder
            }, out _);

            var folder = new CodeExplorerCustomFolderViewModel(null, folderName, folderName, null, ref declarations)
            {
                SortOrder = order
            };

            Assert.AreEqual(CodeExplorerItemComparer.Name.GetType(), folder.SortComparer.GetType());
        }