コード例 #1
0
        public void CloseDocument(IDocument document)
        {
            if (!OpenDocuments.Contains(document))
            {
                throw new ArgumentException("CloseDocument called with non-existant document");
            }

            if (document.IsScript && ActiveDocument == document)
            {
                _sectionBrowserViewModel.ClearDown();
                _blockGroupBrowserViewModel.ClearDown();
                _blockOutputPreviewViewModel.ClearDown();
            }

            _openDocuments.Remove(document);
            if (_activeDocument == document)
            {
                _activeDocument = null;
            }


            // TODO: Replace _activeScriptViewModel and _activeThemeViewModel with a better solution.

            if (document.IsScript && _activeScriptViewModel == (IItemFilterScriptViewModel)document)
            {
                _activeScriptViewModel = null;
            }

            if (document.IsTheme && _activeThemeViewModel == (IThemeEditorViewModel)document)
            {
                _activeThemeViewModel = null;
            }
        }
コード例 #2
0
        public override void Initialise(IItemFilterBlockBase itemfilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel)
        {
            _parentScriptViewModel = itemFilterScriptViewModel;
            ItemFilterCommentBlock = itemfilterBlock as IItemFilterCommentBlock;
            BaseBlock = ItemFilterCommentBlock;

            base.Initialise(itemfilterBlock, itemFilterScriptViewModel);
        }
コード例 #3
0
        public IThemeEditorViewModel OpenMasterThemeForScript(IItemFilterScriptViewModel scriptViewModel)
        {
            var existingMasterThemeViewModelCount =
                OpenDocuments.OfType <IThemeEditorViewModel>()
                .Count(c => c.IsMasterThemeForScript == scriptViewModel.Script);

            if (existingMasterThemeViewModelCount > 0)
            {
                return(OpenDocuments.OfType <IThemeEditorViewModel>()
                       .First(c => c.IsMasterThemeForScript == scriptViewModel.Script));
            }

            return(null);
        }
コード例 #4
0
        public void AddDocument(IDocument document)
        {
            if (document.IsScript)
            {
                _activeScriptViewModel = (IItemFilterScriptViewModel)document;
            }
            else if (document.IsTheme)
            {
                _activeThemeViewModel = (IThemeEditorViewModel)document;
            }

            _openDocuments.Add(document);
            ActiveDocument = document;
        }
コード例 #5
0
        public void AddDocument(IDocument document)
        {
            if (document.IsScript)
            {
                _activeScriptViewModel = (IItemFilterScriptViewModel)document;
            }
            else if (document.IsTheme)
            {
                _activeThemeViewModel = (IThemeEditorViewModel)document;
            }

            Application.Current.Dispatcher.Invoke(() => _openDocuments.Add(document));
            ActiveDocument = document;
        }
コード例 #6
0
        public virtual void Initialise(IItemFilterBlockBase itemfilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel)
        {
            BaseBlock = itemfilterBlock;
            _parentScriptViewModel = itemFilterScriptViewModel;

            CopyBlockCommand         = new RelayCommand(OnCopyBlockCommand);
            PasteBlockCommand        = new RelayCommand(OnPasteBlockCommand);
            AddBlockCommand          = new RelayCommand(OnAddBlockCommand);
            AddSectionCommand        = new RelayCommand(OnAddSectionCommand);
            DeleteBlockCommand       = new RelayCommand(OnDeleteBlockCommand, () => _parentScriptViewModel.CanModifyBlock(this));
            MoveBlockUpCommand       = new RelayCommand(OnMoveBlockUpCommand);
            MoveBlockDownCommand     = new RelayCommand(OnMoveBlockDownCommand);
            MoveBlockToTopCommand    = new RelayCommand(OnMoveBlockToTopCommand);
            MoveBlockToBottomCommand = new RelayCommand(OnMoveBlockToBottomCommand);
        }
コード例 #7
0
        public void NewScript_ReturnsScriptFromViewModelFactory()
        {
            // Arrange
            var mockPersistenceService = new Mock <IItemFilterPersistenceService>();

            var mockItemFilterScriptViewModel = new Mock <IItemFilterScriptViewModel>();

            var mockItemFilterScriptViewModelFactory = new Mock <IItemFilterScriptViewModelFactory>();

            mockItemFilterScriptViewModelFactory.Setup(f => f.Create()).Returns(mockItemFilterScriptViewModel.Object);

            var repository = new ItemFilterScriptRepository(mockPersistenceService.Object, mockItemFilterScriptViewModelFactory.Object);

            // Act
            IItemFilterScriptViewModel result = repository.NewScript();

            // Assert
            Assert.AreEqual(mockItemFilterScriptViewModel.Object, result);
        }
コード例 #8
0
        public override void Initialise(IItemFilterBlockBase itemFilterBlockBase, IItemFilterScriptViewModel parentScriptViewModel)
        {
            var itemFilterBlock = itemFilterBlockBase as IItemFilterBlock;

            if (itemFilterBlock == null || parentScriptViewModel == null)
            {
                throw new ArgumentNullException(nameof(itemFilterBlock));
            }

            _parentScriptViewModel = parentScriptViewModel;

            Block = itemFilterBlock;

            itemFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged;

            foreach (var blockItem in itemFilterBlock.BlockItems)
            {
                blockItem.PropertyChanged += OnBlockItemChanged;
            }
            base.Initialise(itemFilterBlock, parentScriptViewModel);
        }
コード例 #9
0
        public override void Initialise(IItemFilterBlockBase itemFilterBlockBase, IItemFilterScriptViewModel parentScriptViewModel)
        {
            if (!(itemFilterBlockBase is IItemFilterBlock itemFilterBlock) || parentScriptViewModel == null)
            {
                throw new ArgumentNullException(nameof(itemFilterBlock));
            }

            BlockGroups = new ObservableCollection <ItemFilterBlockGroup>();

            _parentScriptViewModel = parentScriptViewModel;

            Block = itemFilterBlock;
            Block.EnabledStatusChanged += OnBlockEnabledStatusChanged;

            itemFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged;

            foreach (var blockItem in itemFilterBlock.BlockItems)
            {
                blockItem.PropertyChanged += OnBlockItemChanged;
            }
            base.Initialise(itemFilterBlock, parentScriptViewModel);

            UpdateBlockGroups();
        }
コード例 #10
0
 public void Initialise(IItemFilterBlockBase itemFilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel)
 {
     //throw new NotImplementedException();
 }
コード例 #11
0
        public IThemeEditorViewModel OpenMasterThemeForScript(IItemFilterScriptViewModel scriptViewModel)
        {
            var existingMasterThemeViewModelCount =
                OpenDocuments.OfType<IThemeEditorViewModel>()
                    .Count(c => c.IsMasterThemeForScript == scriptViewModel.Script);
            if (existingMasterThemeViewModelCount > 0)
            {
                return OpenDocuments.OfType<IThemeEditorViewModel>()
                    .First(c => c.IsMasterThemeForScript == scriptViewModel.Script);
            }

            return null;
        }
コード例 #12
0
        public void CloseDocument(IDocument document)
        {
            if (!OpenDocuments.Contains(document))
            {
                throw new ArgumentException("CloseDocument called with non-existant document");
            }

            if (document.IsScript && ActiveDocument == document)
            {
                _sectionBrowserViewModel.ClearDown();
                _blockGroupBrowserViewModel.ClearDown();
                _blockOutputPreviewViewModel.ClearDown();
            }

            _openDocuments.Remove(document);
            if (_activeDocument == document)
            {
                _activeDocument = null;
            }

            // TODO: Replace _activeScriptViewModel and _activeThemeViewModel with a better solution.

            if (document.IsScript && _activeScriptViewModel == (IItemFilterScriptViewModel) document)
            {
                _activeScriptViewModel = null;
            }

            if (document.IsTheme && _activeThemeViewModel == (IThemeEditorViewModel)document)
            {
                _activeThemeViewModel = null;
            }
        }
コード例 #13
0
        public void AddDocument(IDocument document)
        {
            if (document.IsScript)
            {
                _activeScriptViewModel = (IItemFilterScriptViewModel) document;
            }
            else if (document.IsTheme)
            {
                _activeThemeViewModel = (IThemeEditorViewModel) document;
            }

            _openDocuments.Add(document);
            ActiveDocument = document;
        }
コード例 #14
0
 public virtual void Initialise(IItemFilterBlockBase itemfilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel)
 {
     BaseBlock = itemfilterBlock;
     _parentScriptViewModel = itemFilterScriptViewModel;
 }