public void Initialise(ItemFilterScript itemFilterScript, bool newScript) { ItemFilterBlockViewModels.Clear(); Script = itemFilterScript; foreach (var block in Script.ItemFilterBlocks) { var vm = _itemFilterBlockViewModelFactory.Create(); vm.Initialise(block, this); ItemFilterBlockViewModels.Add(vm); } _filenameIsFake = newScript; if (newScript) { Script.FilePath = "Untitled.filter"; } if (ItemFilterBlockViewModels.Count > 0) { SelectedBlockViewModel = ItemFilterBlockViewModels.First(); } Title = Filename; ContentId = "ScriptContentId"; }
private void AddItemFilterBlockViewModels(IEnumerable <IItemFilterBlockBase> itemFilterBlocks, int addAtIndex) { var firstNewViewModel = true; foreach (var itemFilterBlock in itemFilterBlocks) { var vm = _itemFilterBlockBaseViewModelFactory.Create(itemFilterBlock); vm.Initialise(itemFilterBlock, this); vm.BlockBecameDirty += OnBlockBecameDirty; if (addAtIndex == -1) { ItemFilterBlockViewModels.Add(vm); } else { ItemFilterBlockViewModels.Insert(addAtIndex, vm); } if (firstNewViewModel) { SelectedBlockViewModel = vm; firstNewViewModel = false; } } }
public void PasteBlock(IItemFilterBlockViewModel targetBlockViewModel) { try { var clipboardText = _clipboardService.GetClipboardText(); if (string.IsNullOrEmpty(clipboardText)) { return; } _blockGroupHierarchyBuilder.Initialise(Script.ItemFilterBlockGroups.First()); var translatedBlock = _blockTranslator.TranslateStringToItemFilterBlock(clipboardText, Script.ThemeComponents); if (translatedBlock == null) { return; } var vm = _itemFilterBlockViewModelFactory.Create(); vm.Initialise(translatedBlock, this); if (ItemFilterBlockViewModels.Count > 0) { Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock); ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm); } else { Script.ItemFilterBlocks.Add(translatedBlock); ItemFilterBlockViewModels.Add(vm); } SelectedBlockViewModel = vm; IsDirty = true; } catch (Exception e) { _logger.Error(e); var innerException = e.InnerException != null ? e.InnerException.Message : string.Empty; _messageBoxService.Show("Paste Error", e.Message + Environment.NewLine + innerException, MessageBoxButton.OK, MessageBoxImage.Error); } }
public void AddBlock(IItemFilterBlockViewModel targetBlockViewModel) { var vm = _itemFilterBlockViewModelFactory.Create(); var newBlock = new ItemFilterBlock(); vm.Initialise(newBlock, this); if (targetBlockViewModel != null) { Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock); ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm); } else { Script.ItemFilterBlocks.Add(newBlock); ItemFilterBlockViewModels.Add(vm); } SelectedBlockViewModel = vm; vm.IsExpanded = true; IsDirty = true; }