public VisualContextMenu(IVisualListEntry entry) { var copyItem = new MenuItem { Header = TryFindResource("VisualCopyContextMenu") ?? "Copy" }; copyItem.Click += entry.CopyItemClick; _PasteItem = new MenuItem { Header = TryFindResource("VisualPasteContextMenu") ?? "Paste", IsEnabled = false }; _PasteItem.Click += entry.PasteItemClick; var deleteItem = new MenuItem { Header = TryFindResource("VisualDeleteContextMenu") ?? "Delete" }; deleteItem.Click += entry.DeleteItemClick; var cancelItem = new MenuItem { Header = TryFindResource("VisualCancelContextMenu") ?? "Cancel" }; Items.Add(copyItem); Items.Add(new Separator()); Items.Add(_PasteItem); Items.Add(new Separator()); Items.Add(deleteItem); Items.Add(new Separator()); Items.Add(cancelItem); }
public List <string> GetAvailableFields(IVisualListEntry item) { List <string> availableKeys; List <string> usedKeys; var keyResource = WoWVersionManager.GetInstance().LookupKeyResource(); if (item is VisualKitListEntry) { availableKeys = keyResource.KitColumnKeys.ToList(); usedKeys = VisualKits.Select(kitEntry => kitEntry as VisualKitListEntry) .Select(kitEntry => kitEntry?.KitName) .ToList(); } else if (item is VisualEffectListEntry effectEntry) { availableKeys = keyResource.EffectColumnKeys.ToList(); usedKeys = VisualKits.Select(kitEntry => kitEntry as VisualKitListEntry) .Where(kitEntry => uint.Parse(kitEntry.KitRecord[0].ToString()) == effectEntry.ParentKitId) .Select(kitEntry => kitEntry?.GetAllEffectsAndAttachmentsEntries()) .SelectMany(list => list.Select(listEntry => listEntry as VisualEffectListEntry) .Select(listEntry => listEntry.EffectName)) .ToList(); } else { throw new Exception($"Unknown IVisualListEntry type: { item.GetType() }\n{ item }"); } availableKeys.RemoveAll(key => usedKeys.Contains(key)); return(availableKeys); }
public VisualPasteListEntry(IVisualListEntry copyEntry, List <string> availableKeys) { Orientation = Orientation.Horizontal; CopyEntry = copyEntry; _keyComboBox = new ComboBox { Margin = new Thickness(5), MinWidth = 100.00 }; BuildSelf(availableKeys); }