// -------------------------------------------------------------------------------------------------------------

        /*********************************************************************************
        *  //! CRITICAL CODE: Do not rename nor move.
        *  // This part is entangled with predefined Domains, thru some
        *  // serialized event-handlers with Action<T>, Func<T> and lambdas.
        *********************************************************************************/
        public static void UpdatePalettes(DocumentEngine DocEngine)
        {
            if (DocEngine == null)
            {
                return;
            }

            var IdeaPalettes = new Dictionary <IRecognizableElement, IEnumerable <IRecognizableElement> >();

            foreach (var Palette in DocEngine.GetExposedElementsPalettes())
            {
                IdeaPalettes.Add(Palette, DocEngine.GetExposedItemsOfElementPalette(Palette));
            }

            CompositionDirector.IdeaPalette.UpdatePalettes(DocEngine, IdeaPalettes);

            var MarkerPalettes = new Dictionary <IRecognizableElement, IEnumerable <IRecognizableElement> >();

            foreach (var Palette in DocEngine.GetExposedMarkersPalettes())
            {
                MarkerPalettes.Add(Palette, DocEngine.GetExposedItemsOfMarkerPalette(Palette));
            }

            CompositionDirector.MarkerPalette.UpdatePalettes(DocEngine, MarkerPalettes);

            var ComplementPalettes = new Dictionary <IRecognizableElement, IEnumerable <IRecognizableElement> >();

            foreach (var Palette in DocEngine.GetExposedComplementsPalettes())
            {
                ComplementPalettes.Add(Palette, DocEngine.GetExposedItemsOfComplementPalette(Palette));
            }

            CompositionDirector.ComplementPalette.UpdatePalettes(DocEngine, ComplementPalettes);
        }