Exemple #1
0
        /// <summary>
        /// Creates, activates and returns a new Comopsition Engine, using the supplied Manager and Visualizer.
        /// From this point in time onwards, every editing change will be stored by this Entity Edit-Engine.
        /// </summary>
        public static CompositionEngine CreateActiveCompositionEngine(CompositionsManager Manager, IDocumentVisualizer Visualizer, bool IsForEditDomain)
        {
            var NewEngine = new CompositionEngine(Manager, Visualizer);

            NewEngine.IsForEditDomain = IsForEditDomain;

            EntityEditEngine.ActiveEntityEditor = NewEngine;

            return(NewEngine);
        }
Exemple #2
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="Manager">CompositionsManager which owns this edition engine.</param>
        /// <param name="Visualizer">Visualization control for document views.</param>
        private CompositionEngine(CompositionsManager Manager, IDocumentVisualizer Visualizer)
        {
            General.ContractRequiresNotNull(Manager, Visualizer);
            this.Manager    = Manager;
            this.Visualizer = Visualizer;

            // Subscribes to entity-change event
            this.ExistenceUpdateAction = (prevsta, currsta) =>
            {
                this.Manager.WorkspaceDirector.ShellProvider.RefreshSelection(null, true);
            };

            this.EntityChanged += this.ExistenceUpdateAction;

            this.Manager.WorkspaceDirector.ShellProvider.KeyActioned += new KeyEventHandler(ShellProvider_KeyActioned);
        }