예제 #1
0
        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);
        }
예제 #2
0
        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);
        }