public override void Run() { Altaxo.Scripting.IScriptText script = null; // or load it from somewhere if (script == null) { script = new Altaxo.Scripting.ProgramInstanceScript(); } OpenFileDialog odlg = new OpenFileDialog(); odlg.Title = "Open a script or press Cancel to create a new script"; odlg.Filter = "C# files (*.cs)|*.cs|All files (*.*)|*.*"; odlg.FilterIndex = 1; if (DialogResult.OK == odlg.ShowDialog(Current.MainWindow)) { string scripttext; string err = OpenScriptText(odlg.FileName, out scripttext); if (null != err) { MessageBox.Show(err); } else { script.ScriptText = scripttext; } } object[] args = new object[] { script, new Altaxo.Gui.Scripting.ScriptExecutionHandler(this.EhScriptExecution) }; if (Current.Gui.ShowDialog(args, "New instance script")) { string errors = null; do { errors = null; // store the script somewhere m_Table.TableScript = (TableScript)args[0]; SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "Save your script"; dlg.Filter = "C# files (*.cs)|*.cs|All files (*.*)|*.*"; dlg.FilterIndex = 1; if (DialogResult.OK == dlg.ShowDialog(Current.MainWindow)) { errors = SaveScriptText(dlg.FileName, script.ScriptText); if (null != errors) { MessageBox.Show(Current.MainWindow, errors); } } } while (null != errors); } }
public bool EhScriptExecution(Altaxo.Scripting.IScriptText script) { return(((Altaxo.Scripting.ProgramInstanceScript)script).Execute()); }