Exemple #1
0
        public void AddColorPalettes(IEnumerable <CodedPalette> newPalettes, bool replace = false)
        {
            Debug.Assert(newPalettes != null, "New palettes collection should not be null.");

            if (replace)
            {
                AvailablePalettes = null;
            }

            if (AvailablePalettes == null)
            {
                AvailablePalettes = newPalettes.ToList();
            }
            else
            {
                foreach (var newPalette in newPalettes)
                {
                    if (!AvailablePalettes.Any(palette => palette.Name.Equals(newPalette.Name, StringComparison.OrdinalIgnoreCase)))
                    {
                        AvailablePalettes.Add(newPalette);
                    }
                }
            }

            if (SelectedPalette == null || replace)
            {
                var defaultPalette = (SelectedPalette != null ? AvailablePalettes.FirstOrDefault(p => p.Name.Equals(SelectedPalette.Name, StringComparison.OrdinalIgnoreCase)) : null)
                                     ?? AvailablePalettes.FirstOrDefault();
                selectedPalette = null;
                if (defaultPalette != null)
                {
                    PaletteName = defaultPalette.Name;
                }
            }
        }
Exemple #2
0
        public ImageColorsController(ImageColorsManipulator manipulator, IEnumerable <CodedPalette> availablePalettes = null, CodedPalette selectedPalette = null) : base(manipulator)
        {
            Debug.Assert(selectedPalette == null || availablePalettes != null && availablePalettes.Contains(selectedPalette), "selectedPalette should be included into availablePalettes collection.");

            using (SuspendCallManipulations())
            {
                AvailablePalettes = availablePalettes?.ToList();
                SelectedPalette   = selectedPalette ?? AvailablePalettes?.FirstOrDefault();

                RestoreDefaults();
                CallManipulations();
            }
        }