Browse Source

add EventHandlerProxy

formsdesignerappdomain
Siegfried Pammer 14 years ago
parent
commit
3ab8de383b
  1. 57
      src/AddIns/DisplayBindings/FormsDesigner/FormsDesigner.AddIn/FormsDesignerViewContent.cs
  2. 1
      src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj
  3. 73
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/EventHandlerProxy.cs

57
src/AddIns/DisplayBindings/FormsDesigner/FormsDesigner.AddIn/FormsDesignerViewContent.cs

@ -40,7 +40,6 @@ namespace ICSharpCode.FormsDesigner @@ -40,7 +40,6 @@ namespace ICSharpCode.FormsDesigner
readonly ResourceStore resourceStore;
FormsDesignerUndoEngine undoEngine;
FormsDesignerAppDomainHost appDomainHost;
EventHandlers eventHandlers;
ToolboxProvider toolbox;
public FormsDesignerAppDomainHost AppDomainHost {
@ -140,7 +139,6 @@ namespace ICSharpCode.FormsDesigner @@ -140,7 +139,6 @@ namespace ICSharpCode.FormsDesigner
this.generator = generator;
this.sourceProvider = sourceProvider;
this.sourceProvider.Attach(this);
this.eventHandlers = new FormsDesignerViewContent.EventHandlers(this);
this.Files.Add(this.primaryViewContent.PrimaryFile);
}
@ -268,41 +266,6 @@ namespace ICSharpCode.FormsDesigner @@ -268,41 +266,6 @@ namespace ICSharpCode.FormsDesigner
}
#region Proxies
class EventHandlers : MarshalByRefObject
{
object vc;
public EventHandlers(object vc)
{
this.vc = vc;
}
internal void DesignerLoading(object sender, EventArgs e)
{
// vc.DesignerLoading(sender, e);
}
internal void DesignerLoaded(object sender, LoadedEventArgs e)
{
// vc.DesignerLoaded(sender, e);
}
internal void DesignerUnloading(object sender, EventArgs e)
{
// vc.DesignerUnloading(sender, e);
}
internal void DesignerFlushed(object sender, EventArgs e)
{
// vc.DesignerFlushed(sender, e);
}
internal void TransactionClose(object sender, DesignerTransactionCloseEventArgs e)
{
// vc.TransactionClose(sender, e);
}
}
class ViewContentIFormsDesignerProxy : MarshalByRefObject, IFormsDesigner
{
FormsDesignerViewContent vc;
@ -374,10 +337,10 @@ namespace ICSharpCode.FormsDesigner @@ -374,10 +337,10 @@ namespace ICSharpCode.FormsDesigner
appDomainHost.Services.AddService(typeof(System.CodeDom.Compiler.CodeDomProvider), generator.CodeDomProvider);
}
appDomainHost.DesignSurfaceLoading += eventHandlers.DesignerLoading;
appDomainHost.DesignSurfaceLoaded += eventHandlers.DesignerLoaded;
appDomainHost.DesignSurfaceFlushed += eventHandlers.DesignerFlushed;
appDomainHost.DesignSurfaceUnloading += eventHandlers.DesignerUnloading;
appDomainHost.DesignSurfaceLoading += new EventHandlerProxy(DesignerLoading);
appDomainHost.DesignSurfaceLoaded += new LoadedEventHandlerProxy(DesignerLoaded);
appDomainHost.DesignSurfaceFlushed += new EventHandlerProxy(DesignerFlushed);
appDomainHost.DesignSurfaceUnloading += new EventHandlerProxy(DesignerUnloading);
this.loader = new SharpDevelopDesignerLoader(appDomainHost, generator, loaderProvider.CreateLoader(generator));
appDomainHost.BeginDesignSurfaceLoad(this.loader);
@ -394,7 +357,7 @@ namespace ICSharpCode.FormsDesigner @@ -394,7 +357,7 @@ namespace ICSharpCode.FormsDesigner
componentChangeService.ComponentAdded += ComponentListChanged;
componentChangeService.ComponentRemoved += ComponentListChanged;
componentChangeService.ComponentRename += ComponentListChanged;
appDomainHost.Host.TransactionClosed += eventHandlers.TransactionClose;
appDomainHost.Host.TransactionClosed += new DesignerTransactionCloseEventHandlerProxy(TransactionClose);
ISelectionService selectionService = (ISelectionService)appDomainHost.GetService(typeof(ISelectionService));
selectionService.SelectionChanged += SelectionChangedHandler;
@ -502,10 +465,10 @@ namespace ICSharpCode.FormsDesigner @@ -502,10 +465,10 @@ namespace ICSharpCode.FormsDesigner
// at design time" is thrown.
// This is solved by calling dispose after the double-click event has been processed.
if (appDomainHost.DesignSurfaceName != null) {
appDomainHost.DesignSurfaceLoading -= eventHandlers.DesignerLoading;
appDomainHost.DesignSurfaceLoaded -= eventHandlers.DesignerLoaded;
appDomainHost.DesignSurfaceFlushed -= eventHandlers.DesignerFlushed;
appDomainHost.DesignSurfaceUnloading -= eventHandlers.DesignerUnloading;
appDomainHost.DesignSurfaceLoading -= new EventHandlerProxy(DesignerLoading);
appDomainHost.DesignSurfaceLoaded -= new LoadedEventHandlerProxy(DesignerLoaded);
appDomainHost.DesignSurfaceFlushed -= new EventHandlerProxy(DesignerFlushed);
appDomainHost.DesignSurfaceUnloading -= new EventHandlerProxy(DesignerUnloading);
IComponentChangeService componentChangeService = appDomainHost.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
if (componentChangeService != null) {
@ -515,7 +478,7 @@ namespace ICSharpCode.FormsDesigner @@ -515,7 +478,7 @@ namespace ICSharpCode.FormsDesigner
componentChangeService.ComponentRename -= ComponentListChanged;
}
if (appDomainHost.Host != null) {
appDomainHost.Host.TransactionClosed -= eventHandlers.TransactionClose;
appDomainHost.Host.TransactionClosed -= new DesignerTransactionCloseEventHandlerProxy(TransactionClose);
}
ISelectionService selectionService = appDomainHost.GetService(typeof(ISelectionService)) as ISelectionService;

1
src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj

@ -86,6 +86,7 @@ @@ -86,6 +86,7 @@
<Compile Include="Src\DesignerAppDomainManager.cs" />
<Compile Include="Src\DesignerLoader\SharpDevelopDesignerLoader.cs" />
<Compile Include="Src\DesignerLoader\IDesignerLoader.cs" />
<Compile Include="Src\EventHandlerProxy.cs" />
<Compile Include="Src\Gui\ComponentLibraryLoader.cs" />
<Compile Include="Src\Gui\CustomComponentToolBoxItem.cs" />
<Compile Include="Src\IDesignerGenerator.cs" />

73
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/EventHandlerProxy.cs

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.ComponentModel.Design;
namespace ICSharpCode.FormsDesigner
{
public class EventHandlerProxy : MarshalByRefObject
{
EventHandler underlyingHandler;
EventHandler proxyHandler;
public EventHandlerProxy(EventHandler underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, EventArgs e)
{
underlyingHandler(sender, e);
}
public static implicit operator EventHandler(EventHandlerProxy proxy)
{
return proxy.proxyHandler;
}
}
public class LoadedEventHandlerProxy : MarshalByRefObject
{
LoadedEventHandler underlyingHandler;
LoadedEventHandler proxyHandler;
public LoadedEventHandlerProxy(LoadedEventHandler underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, LoadedEventArgs e)
{
underlyingHandler(sender, e);
}
public static implicit operator LoadedEventHandler(LoadedEventHandlerProxy proxy)
{
return proxy.proxyHandler;
}
}
public class DesignerTransactionCloseEventHandlerProxy : MarshalByRefObject
{
DesignerTransactionCloseEventHandler underlyingHandler;
DesignerTransactionCloseEventHandler proxyHandler;
public DesignerTransactionCloseEventHandlerProxy(DesignerTransactionCloseEventHandler underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, DesignerTransactionCloseEventArgs e)
{
underlyingHandler(sender, e);
}
public static implicit operator DesignerTransactionCloseEventHandler(DesignerTransactionCloseEventHandlerProxy proxy)
{
return proxy.proxyHandler;
}
}
}
Loading…
Cancel
Save