From 34adda75f7eac2b97b1dc1a8db3213f180bd2632 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Fri, 20 Dec 2019 07:37:30 -0500 Subject: [PATCH] the selections system in universal editor needs an extreme makeover --- .../Editors/Multimedia/Palette/PaletteEditor.cs | 16 +++++++++++++++- .../Multimedia/Palette/PaletteEntrySelection.cs | 17 +++++++++++++++++ ...itor.Plugins.Multimedia.UserInterface.csproj | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEntrySelection.cs diff --git a/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEditor.cs b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEditor.cs index 9cadd872..16d38c48 100644 --- a/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEditor.cs +++ b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEditor.cs @@ -38,7 +38,15 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pa } public override void UpdateSelections() { - throw new NotImplementedException(); + if (Selections.Count == 1) + { + _SelectedEntry = (Selections[0] as PaletteEntrySelection).Value; + } + else + { + _SelectedEntry = null; + } + Refresh(); } private static EditorReference _er = null; @@ -204,6 +212,12 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pa get { return _SelectedEntry; } set { + bool changed = (_SelectedEntry != value); + if (!changed) return; + + Selections.Clear(); + Selections.Add(new PaletteEntrySelection(value)); + System.ComponentModel.CancelEventArgs ce = new System.ComponentModel.CancelEventArgs(); OnSelectionChanging(ce); if (ce.Cancel) return; diff --git a/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEntrySelection.cs b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEntrySelection.cs new file mode 100644 index 00000000..8be94779d --- /dev/null +++ b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/Editors/Multimedia/Palette/PaletteEntrySelection.cs @@ -0,0 +1,17 @@ +using System; +using UniversalEditor.ObjectModels.Multimedia.Palette; +using UniversalEditor.UserInterface; + +namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Palette +{ + public class PaletteEntrySelection : EditorSelection + { + public PaletteEntrySelection(PaletteEntry value) + { + Value = value; + } + public PaletteEntry Value { get; set; } = null; + + public override object Content { get => Value; set => Value = (value as PaletteEntry); } + } +} diff --git a/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface.csproj b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface.csproj index 47cd56cc..48db6696 100644 --- a/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface.csproj +++ b/CSharp/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface.csproj @@ -45,6 +45,7 @@ +