Browse Source

Move IronPython and IronRuby form designer name creation service and designer generator class to common Scripting project.

pull/1/head
mrward 15 years ago
parent
commit
77dcfe5e75
  1. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj
  2. 14
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs
  3. 6
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs
  4. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoaderProvider.cs
  5. 107
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/NameCreationServiceTestFixture.cs
  6. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs
  7. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  8. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonDesignerLoader.cs
  9. 99
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockDesignerGenerator.cs
  10. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj
  11. 16
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerGenerator.cs
  12. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerLoader.cs
  13. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerLoaderProvider.cs
  14. 51
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyNameCreationService.cs
  15. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Designer/RubyDesignerLoaderTestFixture.cs
  16. 2
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj
  17. 8
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/DerivedRubyDesignerLoader.cs
  18. 7
      src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj
  19. 24
      src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingDesignerGenerator.cs
  20. 6
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingNameCreationService.cs
  21. 9
      src/AddIns/BackendBindings/Scripting/Test/Designer/NameCreationServiceTests.cs
  22. 3
      src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj
  23. 8
      src/AddIns/BackendBindings/Scripting/Test/Utils/MockDesignerGenerator.cs

1
src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj

@ -105,7 +105,6 @@
<Compile Include="Src\PythonModuleCompletionItems.cs" /> <Compile Include="Src\PythonModuleCompletionItems.cs" />
<Compile Include="Src\PythonModuleCompletionItemsFactory.cs" /> <Compile Include="Src\PythonModuleCompletionItemsFactory.cs" />
<Compile Include="Src\PythonImportResolver.cs" /> <Compile Include="Src\PythonImportResolver.cs" />
<Compile Include="Src\PythonNameCreationService.cs" />
<Compile Include="Src\PythonNamespaceResolver.cs" /> <Compile Include="Src\PythonNamespaceResolver.cs" />
<Compile Include="Src\PythonResolverContext.cs" /> <Compile Include="Src\PythonResolverContext.cs" />
<Compile Include="Src\PythonStandardLibraryPath.cs" /> <Compile Include="Src\PythonStandardLibraryPath.cs" />

14
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs

@ -16,26 +16,18 @@ using System.ComponentModel.Design.Serialization;
using System.Text; using System.Text;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PythonBinding namespace ICSharpCode.PythonBinding
{ {
public interface IPythonDesignerGenerator : IDesignerGenerator
{
/// <summary>
/// Updates the python form or user control's InitializeComponent method with any
/// changes to the designed form or user control.
/// </summary>
void MergeRootComponentChanges(IDesignerHost host, IDesignerSerializationManager serializationManager);
}
/// <summary> /// <summary>
/// Form's designer generator for the Python language. /// Form's designer generator for the Python language.
/// </summary> /// </summary>
public class PythonDesignerGenerator : IPythonDesignerGenerator public class PythonDesignerGenerator : IScriptingDesignerGenerator
{ {
FormsDesignerViewContent viewContent; FormsDesignerViewContent viewContent;
ITextEditorOptions textEditorOptions; ITextEditorOptions textEditorOptions;

6
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs

@ -30,11 +30,11 @@ namespace ICSharpCode.PythonBinding
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public class PythonDesignerLoader : BasicDesignerLoader, IComponentCreator public class PythonDesignerLoader : BasicDesignerLoader, IComponentCreator
{ {
IPythonDesignerGenerator generator; IScriptingDesignerGenerator generator;
IDesignerSerializationManager serializationManager; IDesignerSerializationManager serializationManager;
Dictionary<string, IComponent> addedObjects = new Dictionary<string, IComponent>(); Dictionary<string, IComponent> addedObjects = new Dictionary<string, IComponent>();
public PythonDesignerLoader(IPythonDesignerGenerator generator) public PythonDesignerLoader(IScriptingDesignerGenerator generator)
{ {
if (generator == null) { if (generator == null) {
throw new ArgumentException("Generator cannot be null.", "generator"); throw new ArgumentException("Generator cannot be null.", "generator");
@ -45,7 +45,7 @@ namespace ICSharpCode.PythonBinding
public override void BeginLoad(IDesignerLoaderHost host) public override void BeginLoad(IDesignerLoaderHost host)
{ {
host.AddService(typeof(ComponentSerializationService), new CodeDomComponentSerializationService((IServiceProvider)host)); host.AddService(typeof(ComponentSerializationService), new CodeDomComponentSerializationService((IServiceProvider)host));
host.AddService(typeof(INameCreationService), new PythonNameCreationService(host)); host.AddService(typeof(INameCreationService), new ScriptingNameCreationService(host));
host.AddService(typeof(IDesignerSerializationService), new DesignerSerializationService(host)); host.AddService(typeof(IDesignerSerializationService), new DesignerSerializationService(host));
ProjectResourceService projectResourceService = host.GetService(typeof(ProjectResourceService)) as ProjectResourceService; ProjectResourceService projectResourceService = host.GetService(typeof(ProjectResourceService)) as ProjectResourceService;

3
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoaderProvider.cs

@ -8,6 +8,7 @@
using System; using System;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding namespace ICSharpCode.PythonBinding
{ {
@ -19,7 +20,7 @@ namespace ICSharpCode.PythonBinding
public DesignerLoader CreateLoader(IDesignerGenerator generator) public DesignerLoader CreateLoader(IDesignerGenerator generator)
{ {
return new PythonDesignerLoader(generator as IPythonDesignerGenerator); return new PythonDesignerLoader(generator as IScriptingDesignerGenerator);
} }
} }
} }

107
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/NameCreationServiceTestFixture.cs

@ -1,107 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel.Design.Serialization;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
[TestFixture]
public class NameCreationServiceTestFixture
{
PythonNameCreationService nameCreationService;
MockDesignerLoaderHost host;
[SetUp]
public void Init()
{
host = new MockDesignerLoaderHost();
host.Container.Add(new Button(), "button1");
nameCreationService = new PythonNameCreationService(host);
}
[Test]
public void IsValidNameReturnsFalseIfComponentInContainerAlreadyUsesName()
{
Assert.IsFalse(nameCreationService.IsValidName("button1"));
}
[Test]
public void IsValidNameReturnsTrueIfNameNotInUse()
{
Assert.IsTrue(nameCreationService.IsValidName("unknown"));
}
[Test]
public void NullReferenceNotThrownWhenHostContainerIsNull()
{
host.Container = null;
Assert.IsTrue(nameCreationService.IsValidName("button1"));
}
[Test]
public void CreateNameReturnsTypeNameFollowedByNumberOne()
{
Assert.AreEqual("button1", nameCreationService.CreateName(null, typeof(Button)));
}
[Test]
public void CreateNameReturnsTypeNameFollowedByNumberTwoIfNameExistsInContainer()
{
Assert.AreEqual("button2", nameCreationService.CreateName(host.Container, typeof(Button)));
}
[Test]
public void ValidateNameThrowsExceptionIfNameExistsInContainer()
{
Exception ex = Assert.Throws<Exception>(delegate { nameCreationService.ValidateName("button1"); });
Assert.AreEqual("Invalid name button1", ex.Message);
}
[Test]
public void ValidateNameDoesNotThrowExceptionIfNameDoesNotExistInContainer()
{
Assert.DoesNotThrow(delegate { nameCreationService.ValidateName("button2"); });
}
[Test]
public void IsValidReturnsFalseWhenNameIsNull()
{
Assert.IsFalse(nameCreationService.IsValidName(null));
}
[Test]
public void IsValidReturnsFalseWhenNameIsEmptyString()
{
Assert.IsFalse(nameCreationService.IsValidName(String.Empty));
}
[Test]
public void IsValidReturnsFalseWhenNameContainsNonLetterOrDigit()
{
Assert.IsFalse(nameCreationService.IsValidName("a%b"));
}
[Test]
public void IsValidReturnsFalseWhenFirstCharacterOfNameIsNumber()
{
Assert.IsFalse(nameCreationService.IsValidName("1abc"));
}
[Test]
public void IsValidReturnsTrueWhenFirstCharacterOfNameIsUnderscore()
{
Assert.IsTrue(nameCreationService.IsValidName("_abc"));
}
}
}

3
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs

@ -18,6 +18,7 @@ using System.Windows.Forms;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.FormsDesigner.Services; using ICSharpCode.FormsDesigner.Services;
using ICSharpCode.PythonBinding; using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils; using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework; using NUnit.Framework;
using PythonBinding.Tests.Utils; using PythonBinding.Tests.Utils;
@ -110,7 +111,7 @@ namespace PythonBinding.Tests.Designer
[Test] [Test]
public void NameCreationServiceCreated() public void NameCreationServiceCreated()
{ {
PythonNameCreationService service = mockDesignerLoaderHost.GetService(typeof(INameCreationService)) as PythonNameCreationService; ScriptingNameCreationService service = mockDesignerLoaderHost.GetService(typeof(INameCreationService)) as ScriptingNameCreationService;
Assert.IsNotNull(service); Assert.IsNotNull(service);
} }

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -297,7 +297,6 @@
<Compile Include="Designer\LoadUserControlWithDoublePropertyTestFixture.cs" /> <Compile Include="Designer\LoadUserControlWithDoublePropertyTestFixture.cs" />
<Compile Include="Designer\MergeFormTestFixture.cs" /> <Compile Include="Designer\MergeFormTestFixture.cs" />
<Compile Include="Designer\MissingInitializeComponentMethodTestFixture.cs" /> <Compile Include="Designer\MissingInitializeComponentMethodTestFixture.cs" />
<Compile Include="Designer\NameCreationServiceTestFixture.cs" />
<Compile Include="Designer\NoNewLineAfterInitializeComponentTestFixture.cs" /> <Compile Include="Designer\NoNewLineAfterInitializeComponentTestFixture.cs" />
<Compile Include="Designer\OneCompatibleMethodTestFixture.cs" /> <Compile Include="Designer\OneCompatibleMethodTestFixture.cs" />
<Compile Include="Designer\ProjectRootNamespacePassedToMergeTestFixture.cs" /> <Compile Include="Designer\ProjectRootNamespacePassedToMergeTestFixture.cs" />
@ -435,7 +434,6 @@
<Compile Include="Utils\DerivedPythonDesignerGenerator.cs" /> <Compile Include="Utils\DerivedPythonDesignerGenerator.cs" />
<Compile Include="Utils\DerivedPythonDesignerLoader.cs" /> <Compile Include="Utils\DerivedPythonDesignerLoader.cs" />
<Compile Include="Utils\DerivedPythonFormsDesignerDisplayBinding.cs" /> <Compile Include="Utils\DerivedPythonFormsDesignerDisplayBinding.cs" />
<Compile Include="Utils\MockDesignerGenerator.cs" />
<Compile Include="Utils\MockPythonConsole.cs" /> <Compile Include="Utils\MockPythonConsole.cs" />
<Compile Include="Utils\MockPythonConsolePad.cs" /> <Compile Include="Utils\MockPythonConsolePad.cs" />
<Compile Include="Utils\MockWorkbench.cs" /> <Compile Include="Utils\MockWorkbench.cs" />

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonDesignerLoader.cs

@ -6,14 +6,16 @@
// </file> // </file>
using System; using System;
using System.Collections;
using System.CodeDom; using System.CodeDom;
using System.CodeDom.Compiler; using System.CodeDom.Compiler;
using System.Collections;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.IO; using System.IO;
using ICSharpCode.PythonBinding;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
namespace PythonBinding.Tests.Utils namespace PythonBinding.Tests.Utils
{ {
@ -23,7 +25,7 @@ namespace PythonBinding.Tests.Utils
/// </summary> /// </summary>
public class DerivedPythonDesignerLoader : PythonDesignerLoader public class DerivedPythonDesignerLoader : PythonDesignerLoader
{ {
public DerivedPythonDesignerLoader(IPythonDesignerGenerator generator) : base(generator) public DerivedPythonDesignerLoader(IScriptingDesignerGenerator generator) : base(generator)
{ {
} }

99
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockDesignerGenerator.cs

@ -1,99 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Windows.Forms;
using ICSharpCode.FormsDesigner;
using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop;
namespace PythonBinding.Tests.Utils
{
/// <summary>
/// Mock IDesignerGenerator class.
/// </summary>
public class MockDesignerGenerator : IPythonDesignerGenerator
{
FormsDesignerViewContent viewContent;
IDesignerHost mergeChangesHost;
IDesignerSerializationManager mergeChangesSerializationManager;
public MockDesignerGenerator()
{
}
public CodeDomProvider CodeDomProvider {
get { return null; }
}
public FormsDesignerViewContent ViewContent {
get { return this.viewContent; }
}
public void Attach(FormsDesignerViewContent viewContent)
{
this.viewContent = viewContent;
}
public void Detach()
{
this.viewContent = null;
}
public IEnumerable<OpenedFile> GetSourceFiles(out OpenedFile designerCodeFile)
{
designerCodeFile = this.viewContent.DesignerCodeFile;
return new [] {designerCodeFile};
}
public void MergeFormChanges(CodeCompileUnit unit)
{
}
public void NotifyFormRenamed(string newName)
{
}
public void MergeRootComponentChanges(IDesignerHost host, IDesignerSerializationManager serializationManager)
{
mergeChangesHost = host;
mergeChangesSerializationManager = serializationManager;
}
public IDesignerHost MergeChangesHost {
get { return mergeChangesHost; }
}
public IDesignerSerializationManager MergeChangesSerializationManager {
get { return mergeChangesSerializationManager; }
}
public bool InsertComponentEvent(IComponent component, System.ComponentModel.EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
{
throw new NotImplementedException();
}
public ICollection GetCompatibleMethods(EventDescriptor edesc)
{
throw new NotImplementedException();
}
public ICollection GetCompatibleMethods(EventInfo edesc)
{
throw new NotImplementedException();
}
}
}

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj

@ -114,7 +114,6 @@
<Compile Include="Src\RubyLanguageBinding.cs" /> <Compile Include="Src\RubyLanguageBinding.cs" />
<Compile Include="Src\RubyProjectBinding.cs" /> <Compile Include="Src\RubyProjectBinding.cs" />
<Compile Include="Src\RubyLanguageProperties.cs" /> <Compile Include="Src\RubyLanguageProperties.cs" />
<Compile Include="Src\RubyNameCreationService.cs" />
<Compile Include="Src\RubyOptionsPanel.cs" /> <Compile Include="Src\RubyOptionsPanel.cs" />
<Compile Include="Src\RubyOutputStream.cs" /> <Compile Include="Src\RubyOutputStream.cs" />
<Compile Include="Src\RubyParser.cs" /> <Compile Include="Src\RubyParser.cs" />

16
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerGenerator.cs

@ -13,33 +13,21 @@ using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.Drawing;
using System.Reflection;
using System.Text; using System.Text;
using System.Windows.Forms;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.RubyBinding namespace ICSharpCode.RubyBinding
{ {
public interface IRubyDesignerGenerator : IDesignerGenerator
{
/// <summary>
/// Updates the Ruby form or user control's InitializeComponent method with any
/// changes to the designed form or user control.
/// </summary>
void MergeRootComponentChanges(IDesignerHost host, IDesignerSerializationManager serializationManager);
}
/// <summary> /// <summary>
/// Form's designer generator for the Ruby language. /// Form's designer generator for the Ruby language.
/// </summary> /// </summary>
public class RubyDesignerGenerator : IRubyDesignerGenerator public class RubyDesignerGenerator : IScriptingDesignerGenerator
{ {
FormsDesignerViewContent viewContent; FormsDesignerViewContent viewContent;
ITextEditorOptions textEditorOptions; ITextEditorOptions textEditorOptions;

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerLoader.cs

@ -30,11 +30,11 @@ namespace ICSharpCode.RubyBinding
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public class RubyDesignerLoader : BasicDesignerLoader, IComponentCreator public class RubyDesignerLoader : BasicDesignerLoader, IComponentCreator
{ {
IRubyDesignerGenerator generator; IScriptingDesignerGenerator generator;
IDesignerSerializationManager serializationManager; IDesignerSerializationManager serializationManager;
Dictionary<string, IComponent> addedObjects = new Dictionary<string, IComponent>(); Dictionary<string, IComponent> addedObjects = new Dictionary<string, IComponent>();
public RubyDesignerLoader(IRubyDesignerGenerator generator) public RubyDesignerLoader(IScriptingDesignerGenerator generator)
{ {
if (generator == null) { if (generator == null) {
throw new ArgumentException("Generator cannot be null.", "generator"); throw new ArgumentException("Generator cannot be null.", "generator");
@ -45,7 +45,7 @@ namespace ICSharpCode.RubyBinding
public override void BeginLoad(IDesignerLoaderHost host) public override void BeginLoad(IDesignerLoaderHost host)
{ {
host.AddService(typeof(ComponentSerializationService), new CodeDomComponentSerializationService((IServiceProvider)host)); host.AddService(typeof(ComponentSerializationService), new CodeDomComponentSerializationService((IServiceProvider)host));
host.AddService(typeof(INameCreationService), new RubyNameCreationService(host)); host.AddService(typeof(INameCreationService), new ScriptingNameCreationService(host));
host.AddService(typeof(IDesignerSerializationService), new DesignerSerializationService(host)); host.AddService(typeof(IDesignerSerializationService), new DesignerSerializationService(host));
ProjectResourceService projectResourceService = host.GetService(typeof(ProjectResourceService)) as ProjectResourceService; ProjectResourceService projectResourceService = host.GetService(typeof(ProjectResourceService)) as ProjectResourceService;

3
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyDesignerLoaderProvider.cs

@ -8,6 +8,7 @@
using System; using System;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.Scripting;
namespace ICSharpCode.RubyBinding namespace ICSharpCode.RubyBinding
{ {
@ -19,7 +20,7 @@ namespace ICSharpCode.RubyBinding
public DesignerLoader CreateLoader(IDesignerGenerator generator) public DesignerLoader CreateLoader(IDesignerGenerator generator)
{ {
return new RubyDesignerLoader(generator as IRubyDesignerGenerator); return new RubyDesignerLoader(generator as IScriptingDesignerGenerator);
} }
} }
} }

51
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyNameCreationService.cs

@ -1,51 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using ICSharpCode.FormsDesigner;
namespace ICSharpCode.RubyBinding
{
public class RubyNameCreationService : INameCreationService
{
IDesignerHost host;
XmlDesignerNameCreationService nameCreationService;
public RubyNameCreationService(IDesignerHost host)
{
this.host = host;
nameCreationService = new XmlDesignerNameCreationService(host);
}
public string CreateName(IContainer container, Type dataType)
{
return nameCreationService.CreateName(container, dataType);
}
public bool IsValidName(string name)
{
if (!nameCreationService.IsValidName(name)) {
return false;
}
if (host.Container != null) {
return host.Container.Components[name] == null;
}
return true;
}
public void ValidateName(string name)
{
if (!IsValidName(name)) {
throw new Exception("Invalid name " + name);
}
}
}
}

3
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Designer/RubyDesignerLoaderTestFixture.cs

@ -18,6 +18,7 @@ using System.Windows.Forms;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.FormsDesigner.Services; using ICSharpCode.FormsDesigner.Services;
using ICSharpCode.RubyBinding; using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils; using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework; using NUnit.Framework;
using RubyBinding.Tests.Utils; using RubyBinding.Tests.Utils;
@ -112,7 +113,7 @@ namespace RubyBinding.Tests.Designer
[Test] [Test]
public void NameCreationServiceCreated() public void NameCreationServiceCreated()
{ {
RubyNameCreationService service = mockDesignerLoaderHost.GetService(typeof(INameCreationService)) as RubyNameCreationService; ScriptingNameCreationService service = mockDesignerLoaderHost.GetService(typeof(INameCreationService)) as ScriptingNameCreationService;
Assert.IsNotNull(service); Assert.IsNotNull(service);
} }

2
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj

@ -273,7 +273,6 @@
<Compile Include="Designer\LoadUserControlWithDoublePropertyTestFixture.cs" /> <Compile Include="Designer\LoadUserControlWithDoublePropertyTestFixture.cs" />
<Compile Include="Designer\MergeFormTestFixture.cs" /> <Compile Include="Designer\MergeFormTestFixture.cs" />
<Compile Include="Designer\MissingInitializeComponentMethodTestFixture.cs" /> <Compile Include="Designer\MissingInitializeComponentMethodTestFixture.cs" />
<Compile Include="Designer\NameCreationServiceTestFixture.cs" />
<Compile Include="Designer\NoNewLineAfterInitializeComponentMethodTestFixture.cs" /> <Compile Include="Designer\NoNewLineAfterInitializeComponentMethodTestFixture.cs" />
<Compile Include="Designer\NullGeneratorPassedToLoader.cs" /> <Compile Include="Designer\NullGeneratorPassedToLoader.cs" />
<Compile Include="Designer\OneCompatibleMethodTestFixture.cs" /> <Compile Include="Designer\OneCompatibleMethodTestFixture.cs" />
@ -329,7 +328,6 @@
<Compile Include="Utils\DerivedRubyDesignerGenerator.cs" /> <Compile Include="Utils\DerivedRubyDesignerGenerator.cs" />
<Compile Include="Utils\DerivedRubyDesignerLoader.cs" /> <Compile Include="Utils\DerivedRubyDesignerLoader.cs" />
<Compile Include="Utils\DerivedRubyFormsDesignerDisplayBinding.cs" /> <Compile Include="Utils\DerivedRubyFormsDesignerDisplayBinding.cs" />
<Compile Include="Utils\MockDesignerGenerator.cs" />
<Compile Include="Utils\MockRubyConsole.cs" /> <Compile Include="Utils\MockRubyConsole.cs" />
<Compile Include="Utils\MockRubyConsolePad.cs" /> <Compile Include="Utils\MockRubyConsolePad.cs" />
<Compile Include="Utils\MockWorkbench.cs" /> <Compile Include="Utils\MockWorkbench.cs" />

8
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/DerivedRubyDesignerLoader.cs

@ -6,14 +6,16 @@
// </file> // </file>
using System; using System;
using System.Collections;
using System.CodeDom; using System.CodeDom;
using System.CodeDom.Compiler; using System.CodeDom.Compiler;
using System.Collections;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.IO; using System.IO;
using ICSharpCode.RubyBinding;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
namespace RubyBinding.Tests.Utils namespace RubyBinding.Tests.Utils
{ {
@ -23,7 +25,7 @@ namespace RubyBinding.Tests.Utils
/// </summary> /// </summary>
public class DerivedRubyDesignerLoader : RubyDesignerLoader public class DerivedRubyDesignerLoader : RubyDesignerLoader
{ {
public DerivedRubyDesignerLoader(IRubyDesignerGenerator generator) : base(generator) public DerivedRubyDesignerLoader(IScriptingDesignerGenerator generator) : base(generator)
{ {
} }

7
src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj

@ -70,12 +70,14 @@
<Compile Include="Src\ILock.cs" /> <Compile Include="Src\ILock.cs" />
<Compile Include="Src\IMemberProvider.cs" /> <Compile Include="Src\IMemberProvider.cs" />
<Compile Include="Src\IScriptingConsoleTextEditor.cs" /> <Compile Include="Src\IScriptingConsoleTextEditor.cs" />
<Compile Include="Src\IScriptingDesignerGenerator.cs" />
<Compile Include="Src\IScriptingFileService.cs" /> <Compile Include="Src\IScriptingFileService.cs" />
<Compile Include="Src\ScriptingConsoleCompletionData.cs" /> <Compile Include="Src\ScriptingConsoleCompletionData.cs" />
<Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" /> <Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" />
<Compile Include="Src\ScriptingConsoleTextEditor.cs" /> <Compile Include="Src\ScriptingConsoleTextEditor.cs" />
<Compile Include="Src\ScriptingConsoleTextEditorKeyEventArgs.cs" /> <Compile Include="Src\ScriptingConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Src\ScriptingFileService.cs" /> <Compile Include="Src\ScriptingFileService.cs" />
<Compile Include="Src\ScriptingNameCreationService.cs" />
<Compile Include="Src\StringListLock.cs" /> <Compile Include="Src\StringListLock.cs" />
<Compile Include="Src\ThreadSafeScriptingConsoleTextEditor.cs" /> <Compile Include="Src\ThreadSafeScriptingConsoleTextEditor.cs" />
</ItemGroup> </ItemGroup>
@ -100,6 +102,11 @@
<Name>UnitTesting</Name> <Name>UnitTesting</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj">
<Project>{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}</Project>
<Name>FormsDesigner</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

24
src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingDesignerGenerator.cs

@ -0,0 +1,24 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using ICSharpCode.FormsDesigner;
namespace ICSharpCode.Scripting
{
public interface IScriptingDesignerGenerator : IDesignerGenerator
{
/// <summary>
/// Updates the form or user control's InitializeComponent method with any
/// changes to the designed form or user control.
/// </summary>
void MergeRootComponentChanges(IDesignerHost host, IDesignerSerializationManager serializationManager);
}
}

6
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonNameCreationService.cs → src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingNameCreationService.cs

@ -11,14 +11,14 @@ using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
namespace ICSharpCode.PythonBinding namespace ICSharpCode.Scripting
{ {
public class PythonNameCreationService : INameCreationService public class ScriptingNameCreationService : INameCreationService
{ {
IDesignerHost host; IDesignerHost host;
XmlDesignerNameCreationService nameCreationService; XmlDesignerNameCreationService nameCreationService;
public PythonNameCreationService(IDesignerHost host) public ScriptingNameCreationService(IDesignerHost host)
{ {
this.host = host; this.host = host;
nameCreationService = new XmlDesignerNameCreationService(host); nameCreationService = new XmlDesignerNameCreationService(host);

9
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Designer/NameCreationServiceTestFixture.cs → src/AddIns/BackendBindings/Scripting/Test/Designer/NameCreationServiceTests.cs

@ -9,17 +9,16 @@ using System;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.RubyBinding; using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils; using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework; using NUnit.Framework;
using RubyBinding.Tests.Utils;
namespace RubyBinding.Tests.Designer namespace ICSharpCode.Scripting.Tests.Designer
{ {
[TestFixture] [TestFixture]
public class NameCreationServiceTestFixture public class NameCreationServiceTestFixture
{ {
RubyNameCreationService nameCreationService; ScriptingNameCreationService nameCreationService;
MockDesignerLoaderHost host; MockDesignerLoaderHost host;
[SetUp] [SetUp]
@ -27,7 +26,7 @@ namespace RubyBinding.Tests.Designer
{ {
host = new MockDesignerLoaderHost(); host = new MockDesignerLoaderHost();
host.Container.Add(new Button(), "button1"); host.Container.Add(new Button(), "button1");
nameCreationService = new RubyNameCreationService(host); nameCreationService = new ScriptingNameCreationService(host);
} }
[Test] [Test]

3
src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj

@ -61,6 +61,7 @@
<ItemGroup> <ItemGroup>
<Folder Include="Configuration" /> <Folder Include="Configuration" />
<Folder Include="Console" /> <Folder Include="Console" />
<Folder Include="Designer" />
<Folder Include="Testing" /> <Folder Include="Testing" />
<Folder Include="Utils" /> <Folder Include="Utils" />
<Folder Include="Utils\Tests" /> <Folder Include="Utils\Tests" />
@ -74,6 +75,7 @@
<Compile Include="Console\OneItemCommandLineHistoryTestFixture.cs" /> <Compile Include="Console\OneItemCommandLineHistoryTestFixture.cs" />
<Compile Include="Console\ScriptingConsoleTextEditorTests.cs" /> <Compile Include="Console\ScriptingConsoleTextEditorTests.cs" />
<Compile Include="Console\ThreadSafeScriptingConsoleTextEditorTests.cs" /> <Compile Include="Console\ThreadSafeScriptingConsoleTextEditorTests.cs" />
<Compile Include="Designer\NameCreationServiceTests.cs" />
<Compile Include="Testing\CreateTextWriterFromCreateTextWriterInfoTestFixture.cs" /> <Compile Include="Testing\CreateTextWriterFromCreateTextWriterInfoTestFixture.cs" />
<Compile Include="Testing\CreateTextWriterInfoEqualsTestFixture.cs" /> <Compile Include="Testing\CreateTextWriterInfoEqualsTestFixture.cs" />
<Compile Include="Utils\AddedComponent.cs" /> <Compile Include="Utils\AddedComponent.cs" />
@ -97,6 +99,7 @@
<Compile Include="Utils\MockConsoleTextEditorKeyEventArgs.cs" /> <Compile Include="Utils\MockConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Utils\MockControlDispatcher.cs" /> <Compile Include="Utils\MockControlDispatcher.cs" />
<Compile Include="Utils\MockDebugger.cs" /> <Compile Include="Utils\MockDebugger.cs" />
<Compile Include="Utils\MockDesignerGenerator.cs" />
<Compile Include="Utils\MockDesignerLoaderHost.cs" /> <Compile Include="Utils\MockDesignerLoaderHost.cs" />
<Compile Include="Utils\MockEditableViewContent.cs" /> <Compile Include="Utils\MockEditableViewContent.cs" />
<Compile Include="Utils\MockEventBindingService.cs" /> <Compile Include="Utils\MockEventBindingService.cs" />

8
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/MockDesignerGenerator.cs → src/AddIns/BackendBindings/Scripting/Test/Utils/MockDesignerGenerator.cs

@ -17,15 +17,11 @@ using System.Reflection;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.RubyBinding;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
namespace RubyBinding.Tests.Utils namespace ICSharpCode.Scripting.Tests.Utils
{ {
/// <summary> public class MockDesignerGenerator : IScriptingDesignerGenerator
/// Mock IDesignerGenerator class.
/// </summary>
public class MockDesignerGenerator : IRubyDesignerGenerator
{ {
FormsDesignerViewContent viewContent; FormsDesignerViewContent viewContent;
IDesignerHost mergeChangesHost; IDesignerHost mergeChangesHost;
Loading…
Cancel
Save