/// <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); }
/// <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); }