public void Dispose()
{
sourceProject.ComponentTypesChanged -= OnSourceProjectLibsChanged;
sourceProject.ProjectReloaded -= OnSourceProjectReloaded;
gproject.ModifiedChanged -= new EventHandler (OnModifiedChanged);
gproject.Changed -= new EventHandler (OnChanged);
gproject.ProjectReloaded -= OnProjectReloaded;
gproject.ProjectReloading -= OnProjectReloading;
// gproject.WidgetMemberNameChanged -= new Stetic.Wrapper.WidgetNameChangedHandler (OnWidgetNameChanged);
if (!autoCommitChanges) {
// Don't dispose the project here! it will be disposed by the frontend
if (widget != null) {
widget.SelectionChanged -= OnSelectionChanged;
// Don't dispose the widget. It will be disposed when destroyed together
// with the container
widget = null;
}
}
if (plug != null)
plug.Destroy ();
gproject = null;
rootWidget = null;
frontend = null;
System.Runtime.Remoting.RemotingServices.Disconnect (this);
disposed = true;
}