1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| public HostSurface() : base()
{
// le bon code, mais modifie pour ajouter les event handlers suivants:
IMenuCommandService ims = new MenuCommandService(this.ServiceContainer);
ims.AddCommand(new MenuCommand(new EventHandler(this.ExecuteUndo), StandardCommands.Undo));
ims.AddCommand(new MenuCommand(new EventHandler(this.ExecuteRedo), StandardCommands.Redo));
this.AddService(typeof(IMenuCommandService), ims );
// Ajout : les 2 lignes de code suivantes.
this.AddService(typeof(IDesignerSerializationService),
new DesignerSerializationService(this.ServiceContainer));
this.AddService(typeof(ComponentSerializationService),
new CodeDomComponentSerializationService(this.ServiceContainer));
// AJOUT : UndoEngine
UndoEngine undoEngine = new UndoEngineImpl(this.ServiceContainer);
//- enable the UndoEngine
undoEngine.Enabled =true;
if (undoEngine != null)
{
//- the UndoEngine is ready to be replaced
this.ServiceContainer.RemoveService(typeof(UndoEngine), false);
this.ServiceContainer.AddService(typeof(UndoEngine), undoEngine);
}
}
public HostSurface(IServiceProvider parentProvider) : base(parentProvider)
{
IMenuCommandService ims = new MenuCommandService(this.ServiceContainer);
ims.AddCommand(new MenuCommand(new EventHandler(this.ExecuteUndo), StandardCommands.Undo));
ims.AddCommand(new MenuCommand(new EventHandler(this.ExecuteRedo), StandardCommands.Redo));
this.AddService(typeof(IMenuCommandService), ims);
this.AddService(typeof(IDesignerSerializationService),
new DesignerSerializationService(this.ServiceContainer));
this.AddService(typeof(ComponentSerializationService),
new CodeDomComponentSerializationService(this.ServiceContainer));
this.AddService(typeof(UndoEngine),new UndoEngineImpl(this.ServiceContainer));
// AJOUT : UndoEngine
UndoEngine undoEngine = new UndoEngineImpl(this.ServiceContainer);
//- enable the UndoEngine
undoEngine.Enabled = true;
if (undoEngine != null)
{
//- the UndoEngine is ready to be replaced
this.ServiceContainer.RemoveService(typeof(UndoEngine), false);
this.ServiceContainer.AddService(typeof(UndoEngine), undoEngine);
}
}
....
// ICI les EVENT HANDLERS
private void ExecuteUndo(object sender, EventArgs e)
{
UndoEngineImpl undoEngine = this.GetService(typeof(UndoEngine)) as UndoEngineImpl;
if (undoEngine != null)
undoEngine.DoUndo();
}
private void ExecuteRedo(object sender, EventArgs e)
{
UndoEngineImpl undoEngine = this.GetService(typeof(UndoEngine)) as UndoEngineImpl;
if (undoEngine != null)
undoEngine.DoRedo();
} |
Partager