public override void FinishedInitialization() { base.FinishedInitialization(); IFlowSharpService fss = ServiceManager.Get <IFlowSharpService>(); IFlowSharpCodeEditorService ces = ServiceManager.Get <IFlowSharpCodeEditorService>(); fss.FlowSharpInitialized += OnFlowSharpInitialized; fss.ContentResolver += OnContentResolver; fss.NewCanvas += OnNewCanvas; ces.TextChanged += OnCodeEditorServiceTextChanged; InitializeMenu(); }
protected void OnElementSelected(object controller, ElementEventArgs args) { ElementProperties elementProperties = null; IFlowSharpCodeEditorService csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); IFlowSharpScintillaEditorService editorService = ServiceManager.Get <IFlowSharpScintillaEditorService>(); if (args.Element != null) { GraphicElement el = args.Element; System.Diagnostics.Trace.WriteLine("*** ON ELEMENT SELECTED " + el.Id.ToString()); elementProperties = el.CreateProperties(); if (!String.IsNullOrEmpty(csCodeEditorService.Filename)) { // Save last position. int curpos = csCodeEditorService.GetPosition(); fileCaretPos[csCodeEditorService.Filename] = curpos; System.Diagnostics.Trace.WriteLine("*** " + csCodeEditorService.Filename + " => SET CURRENT POS: " + curpos); } string code; el.Json.TryGetValue("Code", out code); csCodeEditorService.SetText("C#", code ?? String.Empty); string fn = el.Id.ToString(); // Use something that is unique for this shape's code. System.Diagnostics.Trace.WriteLine("*** " + fn + " => SET ID"); csCodeEditorService.Filename = fn; // Set the last known position if we have one. int pos; if (fileCaretPos.TryGetValue(fn, out pos)) { System.Diagnostics.Trace.WriteLine("*** " + fn + " => SET PREVIOUS POS: " + pos); csCodeEditorService.SetPosition(pos); } else { // A newly seen document, set the caret to pos 0 so the editor doesn't retain // the previous scrollbar location. csCodeEditorService.SetPosition(0); } el.Json.TryGetValue("python", out code); editorService.SetText("python", code ?? String.Empty); } else { csCodeEditorService.SetText("C#", String.Empty); editorService.SetText("python", String.Empty); } }
protected void OnContentResolver(object sender, ContentLoadedEventArgs e) { switch (e.Metadata.LeftOf(",")) { case FlowSharpCodeServiceInterfaces.Constants.META_EDITOR: Panel pnlEditor = new Panel() { Dock = DockStyle.Fill, Tag = FlowSharpCodeServiceInterfaces.Constants.META_EDITOR }; e.DockContent.Controls.Add(pnlEditor); e.DockContent.Text = "Editor"; csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); csCodeEditorService.CreateEditor(pnlEditor); csCodeEditorService.AddAssembly("Clifton.Core.dll"); break; } }
protected void OnFlowSharpInitialized(object sender, EventArgs args) { IDockingFormService dockingService = ServiceManager.Get <IDockingFormService>(); Panel dock = dockingService.DockPanel; Control docCanvas = FindDocument(dockingService, FlowSharpServiceInterfaces.Constants.META_CANVAS); Control csDocEditor = dockingService.CreateDocument(docCanvas, DockAlignment.Bottom, "C# Editor", FlowSharpCodeServiceInterfaces.Constants.META_EDITOR, 0.50); Control pnlCsCodeEditor = new Panel() { Dock = DockStyle.Fill }; csDocEditor.Controls.Add(pnlCsCodeEditor); csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); csCodeEditorService.CreateEditor(pnlCsCodeEditor); csCodeEditorService.AddAssembly("Clifton.Core.dll"); }
protected void OnContentResolver(object sender, ContentLoadedEventArgs e) { switch (e.Metadata.LeftOf(",")) { case FlowSharpCodeServiceInterfaces.Constants.META_CSHARP_EDITOR: Panel pnlEditor = new Panel() { Dock = DockStyle.Fill, Tag = FlowSharpCodeServiceInterfaces.Constants.META_CSHARP_EDITOR }; e.DockContent.Controls.Add(pnlEditor); e.DockContent.Text = "C# Editor"; IFlowSharpCodeEditorService csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); csCodeEditorService.CreateEditor(pnlEditor); csCodeEditorService.AddAssembly("Clifton.Core.dll"); break; case FlowSharpCodeServiceInterfaces.Constants.META_OUTPUT: Panel pnlOutputWindow = new Panel() { Dock = DockStyle.Fill, Tag = FlowSharpCodeServiceInterfaces.Constants.META_OUTPUT }; e.DockContent.Controls.Add(pnlOutputWindow); e.DockContent.Text = "Output"; IFlowSharpCodeOutputWindowService outputWindowService = ServiceManager.Get <IFlowSharpCodeOutputWindowService>(); outputWindowService.CreateOutputWindow(pnlOutputWindow); break; case FlowSharpCodeServiceInterfaces.Constants.META_SCINTILLA_EDITOR: string language = e.Metadata.RightOf(","); Panel pnlCodeEditor = new Panel() { Dock = DockStyle.Fill, Tag = language }; e.DockContent.Controls.Add(pnlCodeEditor); e.DockContent.Text = language.CamelCase() + " Editor"; IFlowSharpScintillaEditorService scintillaEditorService = ServiceManager.Get <IFlowSharpScintillaEditorService>(); scintillaEditorService.CreateEditor(pnlCodeEditor, language); break; } }
protected IDockDocument CreateCSharpEditor() { IDockingFormService dockingService = ServiceManager.Get <IDockingFormService>(); // Panel dock = dockingService.DockPanel; Control d = FindDocument(dockingService, FlowSharpCodeServiceInterfaces.Constants.META_SCINTILLA_EDITOR); if (d == null) { Control docCanvas = FindDocument(dockingService, FlowSharpServiceInterfaces.Constants.META_CANVAS); if (docCanvas == null) { csDocEditor = dockingService.CreateDocument(DockState.Document, "C# Editor", FlowSharpCodeServiceInterfaces.Constants.META_CSHARP_EDITOR); } else { csDocEditor = dockingService.CreateDocument(docCanvas, DockAlignment.Bottom, "C# Editor", FlowSharpCodeServiceInterfaces.Constants.META_CSHARP_EDITOR, 0.50); } } else { csDocEditor = dockingService.CreateDocument(d, DockState.Document, "C# Editor", FlowSharpCodeServiceInterfaces.Constants.META_CSHARP_EDITOR); } Control pnlCsCodeEditor = new Panel() { Dock = DockStyle.Fill }; csDocEditor.Controls.Add(pnlCsCodeEditor); IFlowSharpCodeEditorService csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); csCodeEditorService.CreateEditor(pnlCsCodeEditor); csCodeEditorService.AddAssembly("Clifton.Core.dll"); return((IDockDocument)csDocEditor); }
protected void OnElementSelected(object controller, ElementEventArgs args) { ElementProperties elementProperties = null; IFlowSharpCodeEditorService csCodeEditorService = ServiceManager.Get <IFlowSharpCodeEditorService>(); IFlowSharpScintillaEditorService editorService = ServiceManager.Get <IFlowSharpScintillaEditorService>(); if (args.Element != null) { GraphicElement el = args.Element; elementProperties = el.CreateProperties(); string code; el.Json.TryGetValue("Code", out code); csCodeEditorService.SetText("C#", code ?? String.Empty); el.Json.TryGetValue("python", out code); editorService.SetText("python", code ?? String.Empty); } else { csCodeEditorService.SetText("C#", String.Empty); editorService.SetText("python", String.Empty); } }