Skip to content

Commit 1455eef

Browse files
committed
Rename python scripting package
1 parent 25cbe4f commit 1455eef

18 files changed

+374
-14
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
3+
<PropertyGroup>
4+
<Title>Bonsai - IronPython Scripting Design Library</Title>
5+
<Description>Bonsai Design Library containing editor classes for IronPython scripting in Bonsai.</Description>
6+
<PackageTags>Bonsai Rx Scripting Iron Python Design</PackageTags>
7+
<UseWindowsForms>true</UseWindowsForms>
8+
<TargetFramework>net462</TargetFramework>
9+
<Version>2.7.0</Version>
10+
</PropertyGroup>
11+
<ItemGroup>
12+
<PackageReference Include="jacobslusser.ScintillaNET" Version="3.6.3" />
13+
</ItemGroup>
14+
<ItemGroup>
15+
<ProjectReference Include="..\Bonsai.Scripting.IronPython\Bonsai.Scripting.IronPython.csproj" />
16+
</ItemGroup>
17+
</Project>

Bonsai.Scripting.Python/Properties/launchSettings.json renamed to Bonsai.Scripting.IronPython.Design/Properties/launchSettings.json

File renamed without changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System;
2+
using System.Drawing.Design;
3+
using System.ComponentModel;
4+
using System.Windows.Forms.Design;
5+
using System.Windows.Forms;
6+
7+
namespace Bonsai.Scripting.IronPython.Design
8+
{
9+
/// <summary>
10+
/// Provides a user interface editor that displays a dialog box for editing
11+
/// the Python script.
12+
/// </summary>
13+
public class PythonScriptEditor : UITypeEditor
14+
{
15+
/// <inheritdoc/>
16+
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
17+
{
18+
return UITypeEditorEditStyle.Modal;
19+
}
20+
21+
/// <inheritdoc/>
22+
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
23+
{
24+
var editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
25+
if (editorService != null)
26+
{
27+
var script = value as string;
28+
var editorDialog = new PythonScriptEditorDialog();
29+
editorDialog.Script = script;
30+
if (editorService.ShowDialog(editorDialog) == DialogResult.OK)
31+
{
32+
return editorDialog.Script;
33+
}
34+
}
35+
36+
return base.EditValue(context, provider, value);
37+
}
38+
}
39+
}

Bonsai.Scripting.IronPython.Design/PythonScriptEditorDialog.Designer.cs

Lines changed: 96 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
using ScintillaNET;
2+
using System;
3+
using System.Drawing;
4+
using System.Windows.Forms;
5+
6+
namespace Bonsai.Scripting.IronPython.Design
7+
{
8+
internal partial class PythonScriptEditorDialog : Form
9+
{
10+
public PythonScriptEditorDialog()
11+
{
12+
InitializeComponent();
13+
scintilla.StyleResetDefault();
14+
scintilla.Styles[Style.Default].Font = "Consolas";
15+
scintilla.Styles[Style.Default].Size = 10;
16+
scintilla.StyleClearAll();
17+
18+
scintilla.CaretLineBackColor = ColorTranslator.FromHtml("#feefff");
19+
scintilla.Styles[Style.Python.Default].ForeColor = Color.Black;
20+
scintilla.Styles[Style.Python.Character].ForeColor = ColorTranslator.FromHtml("#00aa00");
21+
scintilla.Styles[Style.Python.ClassName].ForeColor = Color.Black;
22+
scintilla.Styles[Style.Python.ClassName].Bold = true;
23+
scintilla.Styles[Style.Python.CommentLine].ForeColor = ColorTranslator.FromHtml("#adadad");
24+
scintilla.Styles[Style.Python.CommentBlock].ForeColor = ColorTranslator.FromHtml("#adadad");
25+
scintilla.Styles[Style.Python.DefName].ForeColor = Color.Black;
26+
scintilla.Styles[Style.Python.DefName].Bold = true;
27+
scintilla.Styles[Style.Python.Number].ForeColor = ColorTranslator.FromHtml("#800000");
28+
scintilla.Styles[Style.Python.String].ForeColor = ColorTranslator.FromHtml("#00aa00");
29+
scintilla.Styles[Style.Python.StringEol].ForeColor = ColorTranslator.FromHtml("#00aa00");
30+
scintilla.Styles[Style.Python.Triple].ForeColor = ColorTranslator.FromHtml("#adadad");
31+
scintilla.Styles[Style.Python.TripleDouble].ForeColor = ColorTranslator.FromHtml("#adadad");
32+
scintilla.Styles[Style.Python.Word].ForeColor = ColorTranslator.FromHtml("#0000ff");
33+
scintilla.Styles[Style.Python.Word2].ForeColor = ColorTranslator.FromHtml("#900090");
34+
scintilla.Lexer = Lexer.Python;
35+
36+
scintilla.SetKeywords(0, "and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try");
37+
scintilla.SetKeywords(1, "self None True False abs divmod input open staticmethod all enumerate int ord str any eval isinstance pow sum basestring execfile issubclass print super bin file iter property tuple bool filter len range type bytearray float list raw_input unichr callable format locals reduce unicode chr frozenset long reload vars classmethod getattr map repr xrange cmp globals max reversed zip compile hasattr memoryview round __import__ complex hash min set delattr help next setattr dict hex object slice dir id oct sorted");
38+
}
39+
40+
public string Script { get; set; }
41+
42+
protected override void OnLoad(EventArgs e)
43+
{
44+
scintilla.Text = Script;
45+
scintilla.EmptyUndoBuffer();
46+
if (Owner != null)
47+
{
48+
Icon = Owner.Icon;
49+
ShowIcon = true;
50+
}
51+
52+
base.OnLoad(e);
53+
}
54+
55+
protected override void OnKeyDown(KeyEventArgs e)
56+
{
57+
if (e.KeyCode == Keys.Escape && !e.Handled)
58+
{
59+
Close();
60+
e.Handled = true;
61+
}
62+
63+
base.OnKeyDown(e);
64+
}
65+
66+
private void scintilla_KeyDown(object sender, KeyEventArgs e)
67+
{
68+
if (e.KeyCode == Keys.Enter && e.Modifiers == Keys.Control)
69+
{
70+
okButton.PerformClick();
71+
}
72+
}
73+
74+
private void scintilla_TextChanged(object sender, EventArgs e)
75+
{
76+
Script = scintilla.Text;
77+
}
78+
}
79+
}
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<!--
4+
Microsoft ResX Schema
5+
6+
Version 2.0
7+
8+
The primary goals of this format is to allow a simple XML format
9+
that is mostly human readable. The generation and parsing of the
10+
various data types are done through the TypeConverter classes
11+
associated with the data types.
12+
13+
Example:
14+
15+
... ado.net/XML headers & schema ...
16+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17+
<resheader name="version">2.0</resheader>
18+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24+
</data>
25+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+
<comment>This is a comment</comment>
28+
</data>
29+
30+
There are any number of "resheader" rows that contain simple
31+
name/value pairs.
32+
33+
Each data row contains a name, and value. The row also contains a
34+
type or mimetype. Type corresponds to a .NET class that support
35+
text/value conversion through the TypeConverter architecture.
36+
Classes that don't support this are serialized and stored with the
37+
mimetype set.
38+
39+
The mimetype is used for serialized objects, and tells the
40+
ResXResourceReader how to depersist the object. This is currently not
41+
extensible. For a given mimetype the value must be set accordingly:
42+
43+
Note - application/x-microsoft.net.object.binary.base64 is the format
44+
that the ResXResourceWriter will generate, however the reader can
45+
read any of the formats listed below.
46+
47+
mimetype: application/x-microsoft.net.object.binary.base64
48+
value : The object must be serialized with
49+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+
: and then encoded with base64 encoding.
51+
52+
mimetype: application/x-microsoft.net.object.soap.base64
53+
value : The object must be serialized with
54+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+
: and then encoded with base64 encoding.
56+
57+
mimetype: application/x-microsoft.net.object.bytearray.base64
58+
value : The object must be serialized into a byte array
59+
: using a System.ComponentModel.TypeConverter
60+
: and then encoded with base64 encoding.
61+
-->
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+
<xsd:element name="root" msdata:IsDataSet="true">
65+
<xsd:complexType>
66+
<xsd:choice maxOccurs="unbounded">
67+
<xsd:element name="metadata">
68+
<xsd:complexType>
69+
<xsd:sequence>
70+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71+
</xsd:sequence>
72+
<xsd:attribute name="name" use="required" type="xsd:string" />
73+
<xsd:attribute name="type" type="xsd:string" />
74+
<xsd:attribute name="mimetype" type="xsd:string" />
75+
<xsd:attribute ref="xml:space" />
76+
</xsd:complexType>
77+
</xsd:element>
78+
<xsd:element name="assembly">
79+
<xsd:complexType>
80+
<xsd:attribute name="alias" type="xsd:string" />
81+
<xsd:attribute name="name" type="xsd:string" />
82+
</xsd:complexType>
83+
</xsd:element>
84+
<xsd:element name="data">
85+
<xsd:complexType>
86+
<xsd:sequence>
87+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+
</xsd:sequence>
90+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+
<xsd:attribute ref="xml:space" />
94+
</xsd:complexType>
95+
</xsd:element>
96+
<xsd:element name="resheader">
97+
<xsd:complexType>
98+
<xsd:sequence>
99+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+
</xsd:sequence>
101+
<xsd:attribute name="name" type="xsd:string" use="required" />
102+
</xsd:complexType>
103+
</xsd:element>
104+
</xsd:choice>
105+
</xsd:complexType>
106+
</xsd:element>
107+
</xsd:schema>
108+
<resheader name="resmimetype">
109+
<value>text/microsoft-resx</value>
110+
</resheader>
111+
<resheader name="version">
112+
<value>2.0</value>
113+
</resheader>
114+
<resheader name="reader">
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+
</resheader>
117+
<resheader name="writer">
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+
</resheader>
120+
</root>

Bonsai.Scripting.Python/Bonsai.Scripting.Python.csproj renamed to Bonsai.Scripting.IronPython/Bonsai.Scripting.IronPython.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
4-
<Title>Bonsai - Python Scripting Library</Title>
5-
<Description>Bonsai Scripting Library containing Python scripting infrastructure for Bonsai.</Description>
6-
<PackageTags>Bonsai Rx Scripting Python</PackageTags>
4+
<Title>Bonsai - IronPython Scripting Library</Title>
5+
<Description>Bonsai Scripting Library containing IronPython scripting infrastructure for Bonsai.</Description>
6+
<PackageTags>Bonsai Rx Scripting Iron Python</PackageTags>
77
<TargetFramework>net462</TargetFramework>
88
<Version>2.7.0</Version>
99
</PropertyGroup>

Bonsai.Scripting.Python/IScriptingElement.cs renamed to Bonsai.Scripting.IronPython/IScriptingElement.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace Bonsai.Scripting.Python
1+
namespace Bonsai.Scripting.IronPython
22
{
33
interface IScriptingElement : INamedElement
44
{

Bonsai.Scripting.Python/Properties/AssemblyInfo.cs renamed to Bonsai.Scripting.IronPython/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
// General Information about an assembly is controlled through the following
44
// set of attributes. Change these attribute values to modify the information
55
// associated with an assembly.
6-
[assembly: XmlNamespacePrefix("clr-namespace:Bonsai.Scripting.Python", "py")]
6+
[assembly: XmlNamespacePrefix("clr-namespace:Bonsai.Scripting.IronPython", "ipy")]
77
[assembly: WorkflowNamespaceIcon("Bonsai:ElementIcon.Scripting")]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"profiles": {
3+
"Bonsai": {
4+
"commandName": "Executable",
5+
"executablePath": "$(SolutionDir)Bonsai/bin/$(Configuration)/net472/Bonsai.exe",
6+
"commandLineArgs": "--lib:$(TargetDir)."
7+
}
8+
}
9+
}

0 commit comments

Comments
 (0)