private static void AddNumericFilterPredicateItemToBlockItems <T>(IItemFilterBlock block, string inputString) where T : NumericFilterPredicateBlockItem { var blockItem = Activator.CreateInstance <T>(); SetNumericFilterPredicateFromString(blockItem.FilterPredicate, inputString); block.BlockItems.Add(blockItem); }
private static void AddStringListItemToBlockItems <T>(IItemFilterBlock block, string inputString) where T : StringListBlockItem { var blockItem = Activator.CreateInstance <T>(); PopulateListFromString(blockItem.Items, inputString.Substring(inputString.IndexOf(" ", StringComparison.Ordinal) + 1).Trim()); block.BlockItems.Add(blockItem); }
public void Initialise(IItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock) { _replaceColorsParameterSet = new ReplaceColorsParameterSet(); if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof(TextColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceTextColor = true; var existingBlockColor = ((TextColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof(TextColorBlockItem))).Color; _replaceColorsParameterSet.OldTextColor = existingBlockColor; _replaceColorsParameterSet.NewTextColor = existingBlockColor; } if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof(BackgroundColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceBackgroundColor = true; var existingBlockColor = ((BackgroundColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof(BackgroundColorBlockItem))).Color; _replaceColorsParameterSet.OldBackgroundColor = existingBlockColor; _replaceColorsParameterSet.NewBackgroundColor = existingBlockColor; } if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof(BorderColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceBorderColor = true; var existingBlockColor = ((BorderColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof(BorderColorBlockItem))).Color; _replaceColorsParameterSet.OldBorderColor = existingBlockColor; _replaceColorsParameterSet.NewBorderColor = existingBlockColor; } _itemFilterScript = itemFilterScript; }
public bool ItemBlockMatch(IItemFilterBlock block, IItem item) { var match = block.BlockItems .Where(blockItem => !(blockItem is IAudioVisualBlockItem) && !(blockItem is ActionBlockItem)) .All(blockItem => ItemBlockItemMatch(blockItem, item)); return(match); }
private static void RemoveExistingBlockItemsOfType <T>(IItemFilterBlock block) { var existingBlockItemCount = block.BlockItems.Count(b => b.GetType() == typeof(T)); if (existingBlockItemCount > 0) { var existingBlockItem = block.BlockItems.First(b => b.GetType() == typeof(T)); block.BlockItems.Remove(existingBlockItem); } }
private static void AddBooleanItemToBlockItems <T>(IItemFilterBlock block, string inputString) where T : BooleanBlockItem { var blockItem = Activator.CreateInstance <T>(); var splitString = inputString.Split(' '); if (splitString.Length == 2) { blockItem.BooleanValue = splitString[1].Trim().ToLowerInvariant() == "true"; block.BlockItems.Add(blockItem); } }
public FilteredItem(IItem item, IItemFilterBlock itemFilterBlock) { Item = item; ItemFilterBlock = itemFilterBlock; BlockAction = itemFilterBlock?.Action ?? BlockAction.Show; BackgroundColor = itemFilterBlock?.DisplayBackgroundColor ?? new Color { A = 255, R = 0, G = 0, B = 0 }; BorderColor = itemFilterBlock?.DisplayBorderColor ?? new Color {A = 255, R = 0, G = 0, B = 0}; FontSize = (itemFilterBlock?.DisplayFontSize ?? 34) / 1.8; SetTextColor(); }
public void Execute() { _newItemFilterBlock = new ItemFilterBlock(_itemFilterScript); if (_addAfterItemFilterBlock != null) { _itemFilterScript.ItemFilterBlocks.Insert(_itemFilterScript.ItemFilterBlocks.IndexOf(_addAfterItemFilterBlock) + 1, _newItemFilterBlock); } else { _itemFilterScript.ItemFilterBlocks.Add(_newItemFilterBlock); } }
private void AddBlockGroupToBlock(IItemFilterBlock block, string inputString) { var blockGroupText = GetTextAfterFirstComment(inputString); var blockGroups = blockGroupText.Split(new[] { " - " }, StringSplitOptions.RemoveEmptyEntries) .Select(s => s.Trim()) .ToList(); if (blockGroups.Count(b => !string.IsNullOrEmpty(b.Trim())) > 0) { block.BlockGroup = _blockGroupHierarchyBuilder.IntegrateStringListIntoBlockGroupHierarchy(blockGroups); block.BlockGroup.IsChecked = block.Action == BlockAction.Show; } }
public FilteredItem(IItem item, IItemFilterBlock itemFilterBlock) { Item = item; ItemFilterBlock = itemFilterBlock; BlockAction = itemFilterBlock?.Action ?? BlockAction.Show; BackgroundColor = itemFilterBlock?.DisplayBackgroundColor ?? new Color { A = 240, R = 0, G = 0, B = 0 }; BorderColor = itemFilterBlock?.DisplayBorderColor ?? new Color { A = 240, R = 0, G = 0, B = 0 }; FontSize = (itemFilterBlock?.DisplayFontSize ?? 34) / 1.8; SetTextColor(); }
public void Initialise(IItemFilterBlock itemFilterBlock, ItemFilterScriptViewModel parentScriptViewModel) { if (itemFilterBlock == null || parentScriptViewModel == null) { throw new ArgumentNullException(nameof(itemFilterBlock)); } _parentScriptViewModel = parentScriptViewModel; Block = itemFilterBlock; itemFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged; foreach (var blockItem in itemFilterBlock.BlockItems.OfType <IAudioVisualBlockItem>()) { blockItem.PropertyChanged += OnAudioVisualBlockItemChanged; } }
private void AddBlockGroupToBlock(IItemFilterBlock block, string inputString) { var blockGroupStart = inputString.IndexOf("#", StringComparison.Ordinal); if (blockGroupStart <= 0) { return; } var blockGroupText = inputString.Substring(blockGroupStart + 1); var blockGroups = blockGroupText.Split('-').ToList(); if (blockGroups.Count(b => !string.IsNullOrEmpty(b.Trim())) > 0) { block.BlockGroup = _blockGroupHierarchyBuilder.IntegrateStringListIntoBlockGroupHierarchy(blockGroups); block.BlockGroup.IsChecked = block.Action == BlockAction.Show; } }
// This method converts an ItemFilterBlock object into a string. This is used for copying a ItemFilterBlock // to the clipboard, and when saving a ItemFilterScript. public string TranslateItemFilterBlockToString(IItemFilterBlock block) { if (block.GetType() == typeof(ItemFilterSection)) { return("# Section: " + block.Description); } var outputString = string.Empty; if (!block.Enabled) { outputString += "#Disabled Block Start" + Environment.NewLine; } if (!string.IsNullOrEmpty(block.Description)) { outputString += "# " + block.Description + Environment.NewLine; } outputString += (!block.Enabled ? "#" : string.Empty) + block.Action.GetAttributeDescription(); if (block.BlockGroup != null) { outputString += " # " + block.BlockGroup; } // ReSharper disable once LoopCanBeConvertedToQuery foreach (var blockItem in block.BlockItems.Where(b => b.GetType() != typeof(ActionBlockItem)).OrderBy(b => b.SortOrder)) { if (blockItem.OutputText != string.Empty) { outputString += (!block.Enabled ? _disabledNewLine : _newLine) + blockItem.OutputText; } } if (!block.Enabled) { outputString += Environment.NewLine + "#Disabled Block End"; } return(outputString); }
// This method converts an ItemFilterBlock object into a string. This is used for copying a ItemFilterBlock // to the clipboard, and when saving a ItemFilterScript. // TODO: Private public string TranslateItemFilterBlockToString(IItemFilterBlock block) { if (!block.IsEdited) { return(block.OriginalText); } var outputString = string.Empty; if (!string.IsNullOrEmpty(block.Description)) { outputString += "# " + block.Description + Environment.NewLine; } outputString += (!block.Enabled ? "#" : string.Empty) + block.Action.GetAttributeDescription(); if (block.BlockGroup != null) { outputString += " # " + block.BlockGroup; } else if (!string.IsNullOrEmpty(block.ActionBlockItem?.Comment)) { outputString += " #" + block.ActionBlockItem.Comment; } // ReSharper disable once LoopCanBeConvertedToQuery foreach (var blockItem in block.BlockItems.Where(b => b.GetType() != typeof(ActionBlockItem)).OrderBy(b => b.SortOrder)) { if (blockItem.OutputText != string.Empty) { outputString += (!block.Enabled ? _disabledNewLine : _newLine) + blockItem.OutputText; } } //TODO: Disabled for the time being. A better solution is needed. // Replace 'Maelström' to prevent encoding problems in other editors //outputString.Replace("Maelström Staff", "Maelstr"); //outputString.Replace("Maelström of Chaos", "Maelstr"); //outputString.Replace("Maelström", "Maelstr"); return(outputString); }
public void Initialise(IItemFilterBlock itemFilterBlock, ItemFilterScriptViewModel parentScriptViewModel) { 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; } }
private void AddColorItemToBlockItems <T>(IItemFilterBlock block, string inputString) where T : ColorBlockItem { block.BlockItems.Add(GetColorBlockItemFromString <T>(inputString)); }
public void Initialise(ItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock) { _replaceColorsParameterSet = new ReplaceColorsParameterSet(); if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof (TextColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceTextColor = true; var existingBlockColor = ((TextColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof (TextColorBlockItem))).Color; _replaceColorsParameterSet.OldTextColor = existingBlockColor; _replaceColorsParameterSet.NewTextColor = existingBlockColor; } if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof(BackgroundColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceBackgroundColor = true; var existingBlockColor = ((BackgroundColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof(BackgroundColorBlockItem))).Color; _replaceColorsParameterSet.OldBackgroundColor = existingBlockColor; _replaceColorsParameterSet.NewBackgroundColor = existingBlockColor; } if (initialiseFromBlock.BlockItems.Count(b => b.GetType() == typeof(BorderColorBlockItem)) > 0) { _replaceColorsParameterSet.ReplaceBorderColor = true; var existingBlockColor = ((BorderColorBlockItem) initialiseFromBlock.BlockItems.First(b => b.GetType() == typeof(BorderColorBlockItem))).Color; _replaceColorsParameterSet.OldBorderColor = existingBlockColor; _replaceColorsParameterSet.NewBorderColor = existingBlockColor; } _itemFilterScript = itemFilterScript; }
private bool BlockIsColorReplacementCandidate(ReplaceColorsParameterSet replaceColorsParameterSet, IItemFilterBlock block) { var textColorItem = block.HasBlockItemOfType <TextColorBlockItem>() ? block.BlockItems.OfType <TextColorBlockItem>().First() : null; var backgroundColorItem = block.HasBlockItemOfType <BackgroundColorBlockItem>() ? block.BlockItems.OfType <BackgroundColorBlockItem>().First() : null; var borderColorItem = block.HasBlockItemOfType <BorderColorBlockItem>() ? block.BlockItems.OfType <BorderColorBlockItem>().First() : null; // If we don't have all of the things we want to replace, then we aren't a candidate for replacing those things. if ((textColorItem == null && replaceColorsParameterSet.ReplaceTextColor) || (backgroundColorItem == null && replaceColorsParameterSet.ReplaceBackgroundColor) || (borderColorItem == null && replaceColorsParameterSet.ReplaceBorderColor)) { return(false); } if ((replaceColorsParameterSet.ReplaceTextColor && textColorItem.Color != replaceColorsParameterSet.OldTextColor) || (replaceColorsParameterSet.ReplaceBackgroundColor && backgroundColorItem.Color != replaceColorsParameterSet.OldBackgroundColor) || (replaceColorsParameterSet.ReplaceBorderColor && borderColorItem.Color != replaceColorsParameterSet.OldBorderColor)) { return(false); } return(true); }
private bool BlockIsColorReplacementCandidate(ReplaceColorsParameterSet replaceColorsParameterSet, IItemFilterBlock block) { var textColorItem = block.HasBlockItemOfType<TextColorBlockItem>() ? block.BlockItems.OfType<TextColorBlockItem>().First() : null; var backgroundColorItem = block.HasBlockItemOfType<BackgroundColorBlockItem>() ? block.BlockItems.OfType<BackgroundColorBlockItem>().First() : null; var borderColorItem = block.HasBlockItemOfType<BorderColorBlockItem>() ? block.BlockItems.OfType<BorderColorBlockItem>().First() : null; // If we don't have all of the things we want to replace, then we aren't a candidate for replacing those things. if ((textColorItem == null && replaceColorsParameterSet.ReplaceTextColor) || (backgroundColorItem == null && replaceColorsParameterSet.ReplaceBackgroundColor) || (borderColorItem == null && replaceColorsParameterSet.ReplaceBorderColor)) { return false; } if ((replaceColorsParameterSet.ReplaceTextColor && textColorItem.Color != replaceColorsParameterSet.OldTextColor) || (replaceColorsParameterSet.ReplaceBackgroundColor && backgroundColorItem.Color != replaceColorsParameterSet.OldBackgroundColor) || (replaceColorsParameterSet.ReplaceBorderColor && borderColorItem.Color != replaceColorsParameterSet.OldBorderColor)) { return false; } return true; }