├── .gitignore ├── App.config ├── Article ├── 555-2.png ├── 555.gif ├── 555.png ├── 7476.gif ├── 7476.png ├── FlowSharpCodeComm.htm ├── IoT │ ├── FizzBuzzSimple-layout.xml │ ├── FizzBuzzSimple.fsd │ ├── WebSocketClientDemo-layout.xml │ ├── WebSocketClientDemo.fsd │ ├── arch2-layout.xml │ ├── arch2.fsd │ ├── arch3.png │ ├── arch4.png │ ├── arch5.png │ ├── architecture.png │ ├── article-layout.xml │ ├── article.fsd │ ├── cswsc1.png │ ├── cswsc10.png │ ├── cswsc2.png │ ├── cswsc3.png │ ├── cswsc4.png │ ├── cswsc5.png │ ├── cswsc6.png │ ├── cswsc7.png │ ├── cswsc8.png │ ├── cswsc9.png │ ├── devscenario1.png │ ├── devscenario2.png │ ├── drakon1.png │ ├── drakon2.png │ ├── fb1.png │ ├── fb2.png │ ├── fb3.png │ ├── fb4.png │ ├── fizzbuz-no-arrows-layout.xml │ ├── fizzbuz-no-arrows.fsd │ ├── fizzbuzz-code-behind-layout.xml │ ├── fizzbuzz-code-behind.fsd │ ├── fizzbuzz-layout.xml │ ├── fizzbuzz.fsd │ ├── index.htm │ ├── iot2-layout.xml │ ├── iot2.fsd │ ├── pylint1.png │ ├── sftp1.png │ ├── sftp2.png │ ├── sftp3.png │ ├── sftp4.png │ ├── sftp5.png │ ├── sftp6.png │ ├── sftp7.png │ ├── sftp8.png │ ├── sofar.png │ ├── wsc1.png │ ├── wsc10.png │ ├── wsc11.png │ ├── wsc12.png │ ├── wsc2.png │ ├── wsc3.png │ ├── wsc4.png │ ├── wsc5.png │ ├── wsc6.png │ ├── wsc7.png │ ├── wsc8.png │ ├── wsc9.png │ ├── wss1.png │ ├── wss2.png │ ├── wss3.png │ ├── wss4.png │ ├── wss5.png │ ├── wss6.png │ └── wss7.png ├── anchors.fsd ├── app1.png ├── app2.png ├── app3.png ├── app4.png ├── app5.png ├── app6-small.png ├── app6.png ├── architecture overview-layout.xml ├── architecture overview.fsd ├── architecture-layout.xml ├── architecture-small.png ├── architecture.fsd ├── architecture.png ├── bookmark1.png ├── bookmark2.png ├── bpel.png ├── db.png ├── flowaharp.png ├── flowsharp2.png ├── flowsharpcode1.png ├── flowsharpcode2.htm ├── fsc1.png ├── fsc2.png ├── fsc3.png ├── fsc4.png ├── fsc5.png ├── fsc6.png ├── fsc7.png ├── fscc.htm ├── grabbag.jpg ├── helloWorldDemo-layout.xml ├── helloWorldDemo.fsd ├── httpserver1.png ├── httpserver2.png ├── httpserver3.png ├── httpserver4.png ├── httpserver5.png ├── httpserver6.png ├── httpserver7.png ├── httpserver8.png ├── httpserver9.png ├── img1.png ├── img10.png ├── img11.png ├── img12.png ├── img13.png ├── img14.png ├── img15-1.png ├── img15-2.png ├── img15-3.png ├── img15-4.png ├── img16.png ├── img17.png ├── img18.png ├── img19.png ├── img2.png ├── img20.png ├── img21.png ├── img22.png ├── img23.png ├── img24.png ├── img25.png ├── img26.png ├── img27.png ├── img28.png ├── img29.png ├── img3.png ├── img30.png ├── img31.png ├── img32.png ├── img33.png ├── img34.png ├── img35.png ├── img36.png ├── img37.png ├── img38.png ├── img39.png ├── img4.png ├── img40.png ├── img5.png ├── img6.png ├── img7.png ├── img8.png ├── img9.png ├── index.htm ├── index2.htm ├── intercomms-layout.xml ├── intercomms.fsd ├── intercomms.png ├── js2.png ├── linecaps1.fsd ├── minArchitecture.fsd ├── negwidth.fsd ├── negwidth1.png ├── negwidth2.png ├── negwidth3.png ├── negwidth4.fsd ├── negwidth4.png ├── objectModel.fsd ├── objectModel.png ├── outline.png ├── overview.png ├── rendering.fsd ├── scratch.png ├── sem1.png ├── sem2.png ├── sem3.png ├── sem4.png ├── sem5.png ├── sem6.png ├── sem7.png ├── sem8.png ├── semantic agent-based computing.htm ├── serializationTest.fsd ├── snapping.png ├── soundPlayer.png ├── speaker.png ├── text.fsd ├── text2.fsd ├── ui1.png ├── ui2.png ├── ui3.png ├── uiObjectModel.png ├── uiobjectModel.fsd ├── umlactor.png ├── undo1.png ├── undo2.png ├── undo3.jpg ├── v1.png ├── vsinfo.png ├── websocketserver1.png ├── websocketserver10.png ├── websocketserver11.png ├── websocketserver2.png ├── websocketserver3.png ├── websocketserver4.png ├── websocketserver5.png ├── websocketserver6.png ├── websocketserver7.png ├── websocketserver8.png ├── websocketserver9.png ├── welcome.fsd ├── welcome2-1.fsd ├── welcome2-layout.xml ├── welcome2.fsd ├── welcome2.png ├── welcome3.png ├── whatsthebuzz.png ├── winform.png ├── z-order.fsd ├── z1.png ├── z2.png └── z3.png ├── Bootstrap.cs ├── CPOL.htm ├── Demos ├── Hello FlowSharpCode-layout.xml ├── Hello FlowSharpCode.fsd ├── Hope │ ├── FFDemo-layout.xml │ ├── FFDemo.fsd │ ├── FFDemo2-layout.xml │ ├── FFDemo2.fsd │ ├── HelloWorld-layout.xml │ ├── HelloWorld.fsd │ ├── InsDemo-layout.xml │ ├── InsDemo.fsd │ ├── StandAlone-layout.xml │ └── StandAlone.fsd ├── HuntTheWumpus-layout.xml ├── HuntTheWumpus.fsd ├── Python │ ├── HelloWorld-layout.xml │ └── HelloWorld.fsd ├── btntest-layout.xml ├── btntest.fsd ├── http vs websocket-layout.xml ├── http vs websocket.fsd ├── soundPlayer-layout.xml ├── soundPlayer.fsd ├── websockettest-layout.xml ├── websockettest.fsd ├── winctrl-test-layout.xml └── winctrl-test.fsd ├── Drakon ├── drakonpart1eng-130606152516-phpapp02.pdf ├── drakonpart2eng-130610124216-phpapp01.pdf └── drakonpart3eng-130612234848-phpapp02.pdf ├── FS-HOPE ├── CodeTester │ ├── App.config │ ├── CodeTester.csproj │ ├── Program.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpHopeCommon │ ├── BaseRouteHandlers.cs │ ├── FlowSharpHopeCommon.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── PropertyContainer.cs │ ├── PropertyData.cs │ ├── ReceptorDescription.cs │ └── WebServer.cs ├── FlowSharpHopeService │ ├── Animator.cs │ ├── AppDomainRunner.cs │ ├── CarrierShape.cs │ ├── FlowSharpHopeService.csproj │ ├── HigherOrderProgrammingService.cs │ ├── IRunner.cs │ ├── InAppRunner.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RouteHandlers.cs │ └── StandAloneRunner.cs ├── FlowSharpHopeServiceInterfaces │ ├── FlowSharpHopeServiceInterfaces.csproj │ ├── Interfaces.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpHopeShapeInterfaces │ ├── FlowSharpHopeShapeInterfaces.csproj │ ├── Interfaces.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FsHopeLib │ ├── Agent.cs │ ├── FsHopeLib.csproj │ ├── FsHopeMembrane.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── HopeRunner │ ├── HopeRunner.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Runner.cs ├── HopeRunnerAppDomainInterface │ ├── HopeRunnerAppDomainInterface.csproj │ ├── HopeRunnerInterface.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── HopeShapes │ ├── AgentReceptorShape.cs │ ├── AgentShape.cs │ ├── HopeShapes.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── PropertyGridHelpers │ │ ├── CustomClass.cs │ │ ├── CustomProperty.cs │ │ └── CustomPropertyDescriptor.cs │ ├── PublishSemanticType.Designer.cs │ ├── PublishSemanticType.cs │ ├── PublishSemanticType.resx │ └── SemanticTypeShape.cs ├── IFlowSharpHopeServiceInterface │ ├── IFlowSharpHopeServiceInterface.csproj │ ├── Interfaces.cs │ └── Properties │ │ └── AssemblyInfo.cs └── StandAloneRunner │ ├── App.config │ ├── HttpGet.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── RouteHandlers.cs │ └── StandAloneRunner.csproj ├── FlowSharp.csproj ├── FlowSharp.ico ├── FlowSharp.sln ├── FlowSharpClient ├── FlowSharpClient.csproj ├── Properties │ └── AssemblyInfo.cs └── WebSocketHelpers.cs ├── FlowSharpLib ├── BaseController.cs ├── Canvas.cs ├── CanvasController.cs ├── CanvasProperties.cs ├── Connection.cs ├── ConnectionPoint.cs ├── Connectors │ ├── Connector.cs │ ├── DiagonalConnector.cs │ ├── DynamicConnector.cs │ ├── DynamicConnectorLD.cs │ ├── DynamicConnectorLR.cs │ ├── DynamicConnectorProperties.cs │ └── DynamicConnectorUD.cs ├── ElementCache.cs ├── ElementProperties.cs ├── ExtensionMethods.cs ├── FlowSharpLib.csproj ├── GraphicElement.cs ├── Interfaces.cs ├── Lib │ └── Newtonsoft.Json.dll ├── LineProperties.cs ├── Persist.cs ├── Properties │ └── AssemblyInfo.cs ├── ShapeAnchor.cs ├── ShapeProperties.cs ├── Shapes │ ├── Box.cs │ ├── Diamond.cs │ ├── DownTriangle.cs │ ├── Ellipse.cs │ ├── GroupBox.cs │ ├── Hexagon.cs │ ├── HorizontalLine.cs │ ├── LeftTriangle.cs │ ├── Line.cs │ ├── RightTriangle.cs │ ├── TextShape.cs │ ├── UpTriangle.cs │ └── VerticalLine.cs ├── SnapController.cs ├── ToolboxShapeAttribute.cs ├── ToolboxText.cs └── UndoRedo.cs ├── Libs ├── Clifton.Core.dll ├── Clifton.DockingFormService.dll ├── Clifton.SemanticProcessorService.dll ├── Clifton.WinForm.ServiceInterfaces.dll ├── HtmlAgilityPack.dll ├── ICSharpCode │ ├── ICSharpCode.AvalonEdit.dll │ ├── ICSharpCode.CodeCompletion.dll │ ├── ICSharpCode.Core.Presentation.dll │ ├── ICSharpCode.Core.dll │ ├── ICSharpCode.NRefactory.CSharp.dll │ ├── ICSharpCode.NRefactory.Cecil.dll │ ├── ICSharpCode.NRefactory.Xml.dll │ ├── ICSharpCode.NRefactory.dll │ ├── ICSharpCode.SharpDevelop.Widgets.dll │ ├── ICSharpCode.SharpDevelop.dll │ ├── ICSharpCode.TreeView.dll │ └── Mono.Cecil.dll ├── Newtonsoft.Json.dll ├── Renci.SshNet.dll ├── ScintillaNET.dll ├── WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll ├── WeifenLuo.WinFormsUI.Docking.dll └── websocket-sharp.dll ├── Plugins ├── FlowSharpWindowsControlShapes │ ├── ButtonShape.cs │ ├── CheckboxShape.cs │ ├── ComboBoxShape.cs │ ├── ComboboxShapeProperties.cs │ ├── ControlShape.cs │ ├── ControlShapeProperties.cs │ ├── Enums.cs │ ├── FlowSharpWindowsControlShapes.csproj │ ├── ListboxShape.cs │ ├── ListboxShapeProperties.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TextboxShape.cs │ ├── TextboxShapeProperties.cs │ ├── TrackbarShape.cs │ └── TrackbarShapeProperties.cs └── PluginExample │ ├── GridBox.cs │ ├── ImageShape.cs │ ├── ImageShapeProperties.cs │ ├── NavTo.cs │ ├── NavToProperties.cs │ ├── PluginExample.csproj │ ├── Properties │ └── AssemblyInfo.cs │ ├── Resource1.Designer.cs │ ├── Resource1.resx │ └── Resources │ └── DefaultImage.png ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── README.md ├── Resources └── FlowSharp.ico ├── Services ├── FlowSharpCanvasService │ ├── FlowSharpCanvasService.cs │ ├── FlowSharpCanvasService.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpCodeServices │ ├── FlowSharpCodeCompilerService │ │ ├── FlowSharpCodeCompilerService.cs │ │ ├── FlowSharpCodeCompilerService.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodeDrakonShapes │ │ ├── AngleBracketBox.cs │ │ ├── BeginForLoopBox.cs │ │ ├── EndForLoopBox.cs │ │ ├── FlowSharpCodeDrakonShapes.csproj │ │ ├── InputBox.cs │ │ ├── OutputBox.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodeICSharpDevelopService │ │ ├── CodeEditorService.cs │ │ ├── FlowSharpCodeICSharpDevelopService.csproj │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── ScriptProvider.cs │ ├── FlowSharpCodeOutputWindowService │ │ ├── FlowSharpCodeOutputWindowService.cs │ │ ├── FlowSharpCodeOutputWindowService.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodePythonCompilerService │ │ ├── FlowSharpCodePythonCompilerService.cs │ │ ├── FlowSharpCodePythonCompilerService.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodeScintillaEditorService │ │ ├── CodeEditorService.cs │ │ ├── FlowSharpCodeScintillaEditorService.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodeService │ │ ├── FlowSharpCodeService.cs │ │ ├── FlowSharpCodeService.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── FlowSharpCodeServiceInterfaces │ │ ├── Constants.cs │ │ ├── DrakonInstruction.cs │ │ ├── FlowSharpCodeServiceInterfaces.csproj │ │ ├── Membranes.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Services.cs │ ├── FlowSharpCodeShapeInterfaces │ │ ├── FlowSharpCodeShapeInterfaces.csproj │ │ ├── Interfaces.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ └── FlowSharpCodeShapes │ │ ├── AssemblyBox.cs │ │ ├── AssemblyReferenceBox.cs │ │ ├── CSharpClassBox.cs │ │ ├── FileBox.cs │ │ ├── FlowSharpCodeShapes.csproj │ │ ├── HtmlFileBox.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── PythonFileBox.cs │ │ ├── ST_Instance.cs │ │ └── WorkflowBox.cs ├── FlowSharpDebugWindowService │ ├── DlgDebugWindow.Designer.cs │ ├── DlgDebugWindow.cs │ ├── DlgDebugWindow.resx │ ├── DlgPlugins.Designer.cs │ ├── DlgPlugins.cs │ ├── DlgPlugins.resx │ ├── FlowSharpDebugWindowService.cs │ ├── FlowSharpDebugWindowService.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── TraceListener.cs ├── FlowSharpEditService │ ├── FlowSharpEditService.cs │ ├── FlowSharpEditService.csproj │ ├── InterceptKeys.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpMenuService │ ├── FlowSharpMenuService.cs │ ├── FlowSharpMenuService.csproj │ ├── Menu.cs │ ├── MenuController.cs │ ├── NavigateDlg.Designer.cs │ ├── NavigateDlg.cs │ ├── NavigateDlg.resx │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpMouseControllerService │ ├── FlowSharpMouseControllerService.cs │ ├── FlowSharpMouseControllerService.csproj │ ├── MouseController.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpPropertyGridService │ ├── FlowSharpPropertyGridService.cs │ ├── FlowSharpPropertyGridService.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── PropertyGridController.cs ├── FlowSharpRestService │ ├── CommandProcessor.cs │ ├── FlowSharpRestService.cs │ ├── FlowSharpRestService.csproj │ ├── HttpGet.cs │ ├── HttpSender.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Routes.cs │ └── WebServer.cs ├── FlowSharpService │ ├── FlowSharpService.cs │ ├── FlowSharpService.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpServiceInterfaces │ ├── ApiCommands.cs │ ├── Constants.cs │ ├── Enums.cs │ ├── EventArgs.cs │ ├── FlowSharpServiceInterfaces.csproj │ ├── Interfaces.cs │ ├── Membranes.cs │ ├── Notifiers.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── FlowSharpToolboxService │ ├── FlowSharpToolboxService.cs │ ├── FlowSharpToolboxService.csproj │ ├── PluginManager.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ToolboxCanvas.cs │ └── ToolboxController.cs └── FlowSharpWebSocketService │ ├── FlowSharpWebSocketService.cs │ ├── FlowSharpWebSocketService.csproj │ ├── Properties │ └── AssemblyInfo.cs │ └── WebSocketSender.cs ├── bin └── Debug │ ├── FlowSharpCodeModules.xml │ ├── WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll │ ├── WeifenLuo.WinFormsUI.Docking.dll │ ├── appmodules.xml │ ├── defaultLayout.xml │ ├── htwmodules.xml │ ├── modules.xml │ ├── personOfInterest.py │ ├── plugins.txt │ ├── soundPlayerModules.xml │ ├── st_text_speak-layout.xml │ └── two apps demo-layout.xml └── todo.txt /App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Article/555-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/555-2.png -------------------------------------------------------------------------------- /Article/555.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/555.gif -------------------------------------------------------------------------------- /Article/555.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/555.png -------------------------------------------------------------------------------- /Article/7476.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/7476.gif -------------------------------------------------------------------------------- /Article/7476.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/7476.png -------------------------------------------------------------------------------- /Article/IoT/FizzBuzzSimple-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/FizzBuzzSimple-layout.xml -------------------------------------------------------------------------------- /Article/IoT/WebSocketClientDemo-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/WebSocketClientDemo-layout.xml -------------------------------------------------------------------------------- /Article/IoT/arch2-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/arch2-layout.xml -------------------------------------------------------------------------------- /Article/IoT/arch3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/arch3.png -------------------------------------------------------------------------------- /Article/IoT/arch4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/arch4.png -------------------------------------------------------------------------------- /Article/IoT/arch5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/arch5.png -------------------------------------------------------------------------------- /Article/IoT/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/architecture.png -------------------------------------------------------------------------------- /Article/IoT/article-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/article-layout.xml -------------------------------------------------------------------------------- /Article/IoT/cswsc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc1.png -------------------------------------------------------------------------------- /Article/IoT/cswsc10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc10.png -------------------------------------------------------------------------------- /Article/IoT/cswsc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc2.png -------------------------------------------------------------------------------- /Article/IoT/cswsc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc3.png -------------------------------------------------------------------------------- /Article/IoT/cswsc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc4.png -------------------------------------------------------------------------------- /Article/IoT/cswsc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc5.png -------------------------------------------------------------------------------- /Article/IoT/cswsc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc6.png -------------------------------------------------------------------------------- /Article/IoT/cswsc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc7.png -------------------------------------------------------------------------------- /Article/IoT/cswsc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc8.png -------------------------------------------------------------------------------- /Article/IoT/cswsc9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/cswsc9.png -------------------------------------------------------------------------------- /Article/IoT/devscenario1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/devscenario1.png -------------------------------------------------------------------------------- /Article/IoT/devscenario2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/devscenario2.png -------------------------------------------------------------------------------- /Article/IoT/drakon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/drakon1.png -------------------------------------------------------------------------------- /Article/IoT/drakon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/drakon2.png -------------------------------------------------------------------------------- /Article/IoT/fb1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fb1.png -------------------------------------------------------------------------------- /Article/IoT/fb2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fb2.png -------------------------------------------------------------------------------- /Article/IoT/fb3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fb3.png -------------------------------------------------------------------------------- /Article/IoT/fb4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fb4.png -------------------------------------------------------------------------------- /Article/IoT/fizzbuz-no-arrows-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fizzbuz-no-arrows-layout.xml -------------------------------------------------------------------------------- /Article/IoT/fizzbuzz-code-behind-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fizzbuzz-code-behind-layout.xml -------------------------------------------------------------------------------- /Article/IoT/fizzbuzz-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/fizzbuzz-layout.xml -------------------------------------------------------------------------------- /Article/IoT/iot2-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/iot2-layout.xml -------------------------------------------------------------------------------- /Article/IoT/pylint1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/pylint1.png -------------------------------------------------------------------------------- /Article/IoT/sftp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp1.png -------------------------------------------------------------------------------- /Article/IoT/sftp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp2.png -------------------------------------------------------------------------------- /Article/IoT/sftp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp3.png -------------------------------------------------------------------------------- /Article/IoT/sftp4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp4.png -------------------------------------------------------------------------------- /Article/IoT/sftp5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp5.png -------------------------------------------------------------------------------- /Article/IoT/sftp6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp6.png -------------------------------------------------------------------------------- /Article/IoT/sftp7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp7.png -------------------------------------------------------------------------------- /Article/IoT/sftp8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sftp8.png -------------------------------------------------------------------------------- /Article/IoT/sofar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/sofar.png -------------------------------------------------------------------------------- /Article/IoT/wsc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc1.png -------------------------------------------------------------------------------- /Article/IoT/wsc10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc10.png -------------------------------------------------------------------------------- /Article/IoT/wsc11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc11.png -------------------------------------------------------------------------------- /Article/IoT/wsc12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc12.png -------------------------------------------------------------------------------- /Article/IoT/wsc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc2.png -------------------------------------------------------------------------------- /Article/IoT/wsc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc3.png -------------------------------------------------------------------------------- /Article/IoT/wsc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc4.png -------------------------------------------------------------------------------- /Article/IoT/wsc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc5.png -------------------------------------------------------------------------------- /Article/IoT/wsc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc6.png -------------------------------------------------------------------------------- /Article/IoT/wsc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc7.png -------------------------------------------------------------------------------- /Article/IoT/wsc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc8.png -------------------------------------------------------------------------------- /Article/IoT/wsc9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wsc9.png -------------------------------------------------------------------------------- /Article/IoT/wss1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss1.png -------------------------------------------------------------------------------- /Article/IoT/wss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss2.png -------------------------------------------------------------------------------- /Article/IoT/wss3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss3.png -------------------------------------------------------------------------------- /Article/IoT/wss4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss4.png -------------------------------------------------------------------------------- /Article/IoT/wss5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss5.png -------------------------------------------------------------------------------- /Article/IoT/wss6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss6.png -------------------------------------------------------------------------------- /Article/IoT/wss7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/IoT/wss7.png -------------------------------------------------------------------------------- /Article/app1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app1.png -------------------------------------------------------------------------------- /Article/app2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app2.png -------------------------------------------------------------------------------- /Article/app3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app3.png -------------------------------------------------------------------------------- /Article/app4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app4.png -------------------------------------------------------------------------------- /Article/app5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app5.png -------------------------------------------------------------------------------- /Article/app6-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app6-small.png -------------------------------------------------------------------------------- /Article/app6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/app6.png -------------------------------------------------------------------------------- /Article/architecture overview-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/architecture overview-layout.xml -------------------------------------------------------------------------------- /Article/architecture-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/architecture-layout.xml -------------------------------------------------------------------------------- /Article/architecture-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/architecture-small.png -------------------------------------------------------------------------------- /Article/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/architecture.png -------------------------------------------------------------------------------- /Article/bookmark1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/bookmark1.png -------------------------------------------------------------------------------- /Article/bookmark2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/bookmark2.png -------------------------------------------------------------------------------- /Article/bpel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/bpel.png -------------------------------------------------------------------------------- /Article/db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/db.png -------------------------------------------------------------------------------- /Article/flowaharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/flowaharp.png -------------------------------------------------------------------------------- /Article/flowsharp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/flowsharp2.png -------------------------------------------------------------------------------- /Article/flowsharpcode1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/flowsharpcode1.png -------------------------------------------------------------------------------- /Article/flowsharpcode2.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/flowsharpcode2.htm -------------------------------------------------------------------------------- /Article/fsc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc1.png -------------------------------------------------------------------------------- /Article/fsc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc2.png -------------------------------------------------------------------------------- /Article/fsc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc3.png -------------------------------------------------------------------------------- /Article/fsc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc4.png -------------------------------------------------------------------------------- /Article/fsc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc5.png -------------------------------------------------------------------------------- /Article/fsc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc6.png -------------------------------------------------------------------------------- /Article/fsc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/fsc7.png -------------------------------------------------------------------------------- /Article/grabbag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/grabbag.jpg -------------------------------------------------------------------------------- /Article/helloWorldDemo-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/helloWorldDemo-layout.xml -------------------------------------------------------------------------------- /Article/helloWorldDemo.fsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 24 7 | 90 8 | 9 | 10 | 128 11 | 30 12 | 13 | 24 14 | 90 15 | 128 16 | 30 17 | 18 | 19 | 0 20 | 0 21 | 22 | 23 | 0 24 | 0 25 | 26 | 1 27 | None 28 | None 29 | 00000000-0000-0000-0000-000000000000 30 | 00000000-0000-0000-0000-000000000000 31 | Microsoft Sans Serif 32 | 10 33 | false 34 | false 35 | false 36 | {"Code":"using System;\r\n\r\nnamespace App\r\n{\r\n\tpublic static class Program\r\n\t{\r\n\t\tpublic static void Main()\r\n\t\t{\r\n\t\t\tConsole.WriteLine(\"Hello World!\");\r\n\t\t\tConsole.ReadLine();\r\n\t\t}\r\n\t}\r\n}"} 37 | 38 | 39 | MiddleCenter 40 | -16777216 41 | -16777216 42 | -1 43 | 44 | -------------------------------------------------------------------------------- /Article/httpserver1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver1.png -------------------------------------------------------------------------------- /Article/httpserver2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver2.png -------------------------------------------------------------------------------- /Article/httpserver3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver3.png -------------------------------------------------------------------------------- /Article/httpserver4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver4.png -------------------------------------------------------------------------------- /Article/httpserver5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver5.png -------------------------------------------------------------------------------- /Article/httpserver6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver6.png -------------------------------------------------------------------------------- /Article/httpserver7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver7.png -------------------------------------------------------------------------------- /Article/httpserver8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver8.png -------------------------------------------------------------------------------- /Article/httpserver9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/httpserver9.png -------------------------------------------------------------------------------- /Article/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img1.png -------------------------------------------------------------------------------- /Article/img10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img10.png -------------------------------------------------------------------------------- /Article/img11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img11.png -------------------------------------------------------------------------------- /Article/img12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img12.png -------------------------------------------------------------------------------- /Article/img13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img13.png -------------------------------------------------------------------------------- /Article/img14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img14.png -------------------------------------------------------------------------------- /Article/img15-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img15-1.png -------------------------------------------------------------------------------- /Article/img15-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img15-2.png -------------------------------------------------------------------------------- /Article/img15-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img15-3.png -------------------------------------------------------------------------------- /Article/img15-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img15-4.png -------------------------------------------------------------------------------- /Article/img16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img16.png -------------------------------------------------------------------------------- /Article/img17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img17.png -------------------------------------------------------------------------------- /Article/img18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img18.png -------------------------------------------------------------------------------- /Article/img19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img19.png -------------------------------------------------------------------------------- /Article/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img2.png -------------------------------------------------------------------------------- /Article/img20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img20.png -------------------------------------------------------------------------------- /Article/img21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img21.png -------------------------------------------------------------------------------- /Article/img22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img22.png -------------------------------------------------------------------------------- /Article/img23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img23.png -------------------------------------------------------------------------------- /Article/img24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img24.png -------------------------------------------------------------------------------- /Article/img25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img25.png -------------------------------------------------------------------------------- /Article/img26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img26.png -------------------------------------------------------------------------------- /Article/img27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img27.png -------------------------------------------------------------------------------- /Article/img28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img28.png -------------------------------------------------------------------------------- /Article/img29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img29.png -------------------------------------------------------------------------------- /Article/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img3.png -------------------------------------------------------------------------------- /Article/img30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img30.png -------------------------------------------------------------------------------- /Article/img31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img31.png -------------------------------------------------------------------------------- /Article/img32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img32.png -------------------------------------------------------------------------------- /Article/img33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img33.png -------------------------------------------------------------------------------- /Article/img34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img34.png -------------------------------------------------------------------------------- /Article/img35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img35.png -------------------------------------------------------------------------------- /Article/img36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img36.png -------------------------------------------------------------------------------- /Article/img37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img37.png -------------------------------------------------------------------------------- /Article/img38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img38.png -------------------------------------------------------------------------------- /Article/img39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img39.png -------------------------------------------------------------------------------- /Article/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img4.png -------------------------------------------------------------------------------- /Article/img40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img40.png -------------------------------------------------------------------------------- /Article/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img5.png -------------------------------------------------------------------------------- /Article/img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img6.png -------------------------------------------------------------------------------- /Article/img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img7.png -------------------------------------------------------------------------------- /Article/img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img8.png -------------------------------------------------------------------------------- /Article/img9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/img9.png -------------------------------------------------------------------------------- /Article/intercomms-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/intercomms-layout.xml -------------------------------------------------------------------------------- /Article/intercomms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/intercomms.png -------------------------------------------------------------------------------- /Article/js2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/js2.png -------------------------------------------------------------------------------- /Article/negwidth1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/negwidth1.png -------------------------------------------------------------------------------- /Article/negwidth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/negwidth2.png -------------------------------------------------------------------------------- /Article/negwidth3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/negwidth3.png -------------------------------------------------------------------------------- /Article/negwidth4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/negwidth4.png -------------------------------------------------------------------------------- /Article/objectModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/objectModel.png -------------------------------------------------------------------------------- /Article/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/outline.png -------------------------------------------------------------------------------- /Article/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/overview.png -------------------------------------------------------------------------------- /Article/scratch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/scratch.png -------------------------------------------------------------------------------- /Article/sem1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem1.png -------------------------------------------------------------------------------- /Article/sem2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem2.png -------------------------------------------------------------------------------- /Article/sem3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem3.png -------------------------------------------------------------------------------- /Article/sem4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem4.png -------------------------------------------------------------------------------- /Article/sem5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem5.png -------------------------------------------------------------------------------- /Article/sem6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem6.png -------------------------------------------------------------------------------- /Article/sem7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem7.png -------------------------------------------------------------------------------- /Article/sem8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/sem8.png -------------------------------------------------------------------------------- /Article/snapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/snapping.png -------------------------------------------------------------------------------- /Article/soundPlayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/soundPlayer.png -------------------------------------------------------------------------------- /Article/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/speaker.png -------------------------------------------------------------------------------- /Article/ui1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/ui1.png -------------------------------------------------------------------------------- /Article/ui2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/ui2.png -------------------------------------------------------------------------------- /Article/ui3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/ui3.png -------------------------------------------------------------------------------- /Article/uiObjectModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/uiObjectModel.png -------------------------------------------------------------------------------- /Article/umlactor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/umlactor.png -------------------------------------------------------------------------------- /Article/undo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/undo1.png -------------------------------------------------------------------------------- /Article/undo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/undo2.png -------------------------------------------------------------------------------- /Article/undo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/undo3.jpg -------------------------------------------------------------------------------- /Article/v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/v1.png -------------------------------------------------------------------------------- /Article/vsinfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/vsinfo.png -------------------------------------------------------------------------------- /Article/websocketserver1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver1.png -------------------------------------------------------------------------------- /Article/websocketserver10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver10.png -------------------------------------------------------------------------------- /Article/websocketserver11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver11.png -------------------------------------------------------------------------------- /Article/websocketserver2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver2.png -------------------------------------------------------------------------------- /Article/websocketserver3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver3.png -------------------------------------------------------------------------------- /Article/websocketserver4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver4.png -------------------------------------------------------------------------------- /Article/websocketserver5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver5.png -------------------------------------------------------------------------------- /Article/websocketserver6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver6.png -------------------------------------------------------------------------------- /Article/websocketserver7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver7.png -------------------------------------------------------------------------------- /Article/websocketserver8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver8.png -------------------------------------------------------------------------------- /Article/websocketserver9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/websocketserver9.png -------------------------------------------------------------------------------- /Article/welcome2-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/welcome2-layout.xml -------------------------------------------------------------------------------- /Article/welcome2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/welcome2.png -------------------------------------------------------------------------------- /Article/welcome3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/welcome3.png -------------------------------------------------------------------------------- /Article/whatsthebuzz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/whatsthebuzz.png -------------------------------------------------------------------------------- /Article/winform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/winform.png -------------------------------------------------------------------------------- /Article/z1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/z1.png -------------------------------------------------------------------------------- /Article/z2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/z2.png -------------------------------------------------------------------------------- /Article/z3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Article/z3.png -------------------------------------------------------------------------------- /CPOL.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/CPOL.htm -------------------------------------------------------------------------------- /Demos/Hello FlowSharpCode-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hello FlowSharpCode-layout.xml -------------------------------------------------------------------------------- /Demos/Hello FlowSharpCode.fsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 25 7 | 34 8 | 9 | 10 | 256 11 | 60 12 | 13 | 25 14 | 34 15 | 256 16 | 60 17 | 18 | 19 | 0 20 | 0 21 | 22 | 23 | 0 24 | 0 25 | 26 | 1 27 | None 28 | None 29 | 00000000-0000-0000-0000-000000000000 30 | 00000000-0000-0000-0000-000000000000 31 | Microsoft Sans Serif 32 | 10 33 | false 34 | false 35 | false 36 | {"Code":"using System;\r\n\r\nnamespace App\r\n{\r\n\tpublic static class Program\r\n\t{\r\n\t\tpublic static void Main()\r\n\t\t{\r\n\t\t\tConsole.WriteLine(\"Hello FlowSharpCode!\");\r\n\t\t\tConsole.ReadLine();\r\n\t\t}\r\n\t}\r\n}"} 37 | 38 | 39 | MiddleCenter 40 | -16777216 41 | -16777216 42 | -1 43 | 44 | -------------------------------------------------------------------------------- /Demos/Hope/FFDemo-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hope/FFDemo-layout.xml -------------------------------------------------------------------------------- /Demos/Hope/FFDemo2-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hope/FFDemo2-layout.xml -------------------------------------------------------------------------------- /Demos/Hope/HelloWorld-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hope/HelloWorld-layout.xml -------------------------------------------------------------------------------- /Demos/Hope/InsDemo-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hope/InsDemo-layout.xml -------------------------------------------------------------------------------- /Demos/Hope/StandAlone-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Hope/StandAlone-layout.xml -------------------------------------------------------------------------------- /Demos/HuntTheWumpus-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/HuntTheWumpus-layout.xml -------------------------------------------------------------------------------- /Demos/Python/HelloWorld-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/Python/HelloWorld-layout.xml -------------------------------------------------------------------------------- /Demos/Python/HelloWorld.fsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 180 7 | 134 8 | 9 | 10 | 248 11 | 59 12 | 13 | 180 14 | 134 15 | 248 16 | 59 17 | 18 | 19 | 0 20 | 0 21 | 22 | 23 | 0 24 | 0 25 | 26 | 0 27 | 0 28 | 1 29 | None 30 | None 31 | 00000000-0000-0000-0000-000000000000 32 | 00000000-0000-0000-0000-000000000000 33 | Microsoft Sans Serif 34 | 10 35 | false 36 | false 37 | false 38 | false 39 | HelloWorld.py 40 | {"python":"#pylint: disable=C0111, C0301, C0303, W0311, W0614, W0401, W0232, W0702, W0703, W0201\nprint(\"Hello World\")\r\n","GenerateClass":"True","TextChanged":"True"} 41 | 42 | 43 | TopLeft 44 | false 45 | -16777216 46 | -16777216 47 | -1 48 | 49 | -------------------------------------------------------------------------------- /Demos/btntest-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/btntest-layout.xml -------------------------------------------------------------------------------- /Demos/http vs websocket-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/http vs websocket-layout.xml -------------------------------------------------------------------------------- /Demos/soundPlayer-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/soundPlayer-layout.xml -------------------------------------------------------------------------------- /Demos/websockettest-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/websockettest-layout.xml -------------------------------------------------------------------------------- /Demos/websockettest.fsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 20 7 | 20 8 | 9 | 10 | 155 11 | 60 12 | 13 | 20 14 | 20 15 | 155 16 | 60 17 | 18 | 19 | 0 20 | 0 21 | 22 | 23 | 0 24 | 0 25 | 26 | 1 27 | None 28 | None 29 | 00000000-0000-0000-0000-000000000000 30 | 00000000-0000-0000-0000-000000000000 31 | Microsoft Sans Serif 32 | 10 33 | false 34 | false 35 | false 36 | {"Code":"using System;\r\nusing WebSocketSharp;\r\n\r\nnamespace App\r\n{\r\n\tpublic class MyListener { }\t\r\n\r\n\tpublic static class Program\r\n\t{\r\n\t\tpublic static void Main()\r\n\t\t{\r\n\t\t\tWebSocket ws = new WebSocket(\"ws://127.0.0.1:1100/flowsharp\", new MyListener());\t\r\n\t\t\tws.Connect();\r\n\t\t\tws.Send(\"cmd=CmdUpdateProperty&Name=box&PropertyName=Text&Value=Hello World\");\r\n\t\t\tConsole.WriteLine(\"Press a key to exit.\");\r\n\t\t\tConsole.ReadLine();\r\n\t\t}\r\n\t}\r\n}"} 37 | 38 | 39 | MiddleCenter 40 | -16777216 41 | -16777216 42 | -1 43 | 44 | -------------------------------------------------------------------------------- /Demos/winctrl-test-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Demos/winctrl-test-layout.xml -------------------------------------------------------------------------------- /Drakon/drakonpart1eng-130606152516-phpapp02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Drakon/drakonpart1eng-130606152516-phpapp02.pdf -------------------------------------------------------------------------------- /Drakon/drakonpart2eng-130610124216-phpapp01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Drakon/drakonpart2eng-130610124216-phpapp01.pdf -------------------------------------------------------------------------------- /Drakon/drakonpart3eng-130612234848-phpapp02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Drakon/drakonpart3eng-130612234848-phpapp02.pdf -------------------------------------------------------------------------------- /FS-HOPE/CodeTester/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /FS-HOPE/CodeTester/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CodeTester")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("CodeTester")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0aed1c57-15f0-49f9-a375-b56e8ce1f8a8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeCommon/BaseRouteHandlers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Net; 4 | 5 | namespace FlowSharpHopeCommon 6 | { 7 | public abstract class BaseRouteHandlers 8 | { 9 | public Dictionary> Routes { get { return routes; } } 10 | protected Dictionary> routes; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeCommon/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpHopeCommon")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FlowSharpHopeCommon")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("7b0e168e-8b6b-4dbf-9763-46b6232a2da7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeCommon/PropertyContainer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FlowSharpHopeCommon 4 | { 5 | public class PropertyContainer 6 | { 7 | public List Types { get; set; } 8 | 9 | public PropertyContainer() 10 | { 11 | Types = new List(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeCommon/PropertyData.cs: -------------------------------------------------------------------------------- 1 | namespace FlowSharpHopeCommon 2 | { 3 | public class PropertyData 4 | { 5 | public string Category { get; set; } 6 | public string Description { get; set; } 7 | public string Name { get; set; } 8 | public string TypeName { get; set; } 9 | public string Value { get; set; } 10 | public PropertyContainer ChildType { get; set; } 11 | 12 | public PropertyData() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeCommon/ReceptorDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FlowSharpHopeCommon 4 | { 5 | public class ReceptorDescription 6 | { 7 | /// 8 | /// The type name of the receptor class that receives the ReceptorSemanticType and optionally publishes other types. 9 | /// 10 | public string ReceptorTypeName { get; set; } 11 | 12 | /// 13 | /// The semantic type that the receptor Process method receives. 14 | /// 15 | public string ReceivingSemanticType { get; set; } 16 | 17 | /// 18 | /// The types that the receptor Process method publishes. 19 | /// 20 | public List Publishes { get; set; } 21 | 22 | public ReceptorDescription() 23 | { 24 | Publishes = new List(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeService/IRunner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | using FlowSharpHopeCommon; 5 | 6 | namespace FlowSharpHopeService 7 | { 8 | public interface IRunner 9 | { 10 | bool Loaded { get; } 11 | event EventHandler Processing; 12 | 13 | /// 14 | /// DLL or EXE name 15 | /// 16 | void Load(string fullName); 17 | 18 | void Unload(); 19 | List DescribeReceptor(string name); 20 | void InstantiateReceptor(string name); 21 | void EnableDisableReceptor(string typeName, bool state); 22 | PropertyContainer DescribeSemanticType(string typeName); 23 | void Publish(string typeName, object st); 24 | void Publish(string typeName, string json); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpHopeService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpHopeService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("85be4c98-f377-4e78-b3ef-01c675a25db8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeService/RouteHandlers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Net; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | using Newtonsoft.Json; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | using FlowSharpHopeCommon; 12 | 13 | namespace FlowSharpHopeService 14 | { 15 | public class RouteHandlers : BaseRouteHandlers 16 | { 17 | protected const string PROCESSING = "processing"; 18 | protected StandAloneRunner runner; 19 | 20 | public RouteHandlers(StandAloneRunner runner) 21 | { 22 | this.runner = runner; 23 | 24 | routes = new Dictionary>() 25 | { 26 | {PROCESSING, Processing}, 27 | }; 28 | } 29 | 30 | protected (string text, string mime) Processing(HttpListenerContext context, string data) 31 | { 32 | var stMsg = JsonConvert.DeserializeObject(data.RightOf('=')); 33 | runner.ProcessMessage(stMsg); 34 | 35 | return ("OK", "text/text"); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeServiceInterfaces/Interfaces.cs: -------------------------------------------------------------------------------- 1 | using Clifton.Core.ServiceManagement; 2 | 3 | using FlowSharpHopeCommon; 4 | 5 | namespace FlowSharpHopeServiceInterfaces 6 | { 7 | public interface IHigherOrderProgrammingService : IService 8 | { 9 | bool RunnerLoaded { get; } 10 | void LoadHopeAssembly(); 11 | void UnloadHopeAssembly(); 12 | void InstantiateReceptors(); 13 | void EnableDisableReceptor(string typeName, bool state); 14 | PropertyContainer DescribeSemanticType(string typeName); 15 | void Publish(string typeName, object st); 16 | void Publish(string typeName, string json); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeServiceInterfaces/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpHopeServiceInterfaces")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpHopeServiceInterfaces")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5484797e-7b0e-40ac-962b-185073672e7c")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeShapeInterfaces/FlowSharpHopeShapeInterfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {087E600F-F5A4-430F-97A9-94E5F52673F8} 8 | Library 9 | Properties 10 | FlowSharpHopeShapeInterfaces 11 | FlowSharpHopeShapeInterfaces 12 | v4.5.2 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | pdbonly 26 | true 27 | bin\Release\ 28 | TRACE 29 | prompt 30 | 4 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeShapeInterfaces/Interfaces.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | 3 | namespace FlowSharpHopeShapeInterfaces 4 | { 5 | public interface IAgent { } 6 | 7 | public interface IAgentReceptor 8 | { 9 | string AgentName { get;} 10 | string Text { get; } 11 | bool Enabled { get; } 12 | Color EnabledColor { get; } 13 | } 14 | 15 | public interface ISemanticTypeShape { } 16 | } 17 | -------------------------------------------------------------------------------- /FS-HOPE/FlowSharpHopeShapeInterfaces/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpHopeShapeInterfaces")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpHopeShapeInterfaces")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("087e600f-f5a4-430f-97a9-94e5f52673f8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/FsHopeLib/Agent.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Text; 11 | using System.Threading.Tasks; 12 | 13 | using Clifton.Core.ExtensionMethods; 14 | using Clifton.Core.ModuleManagement; 15 | using Clifton.Core.Semantics; 16 | using Clifton.Core.ServiceManagement; 17 | 18 | namespace FsHopeLib 19 | { 20 | public abstract class Agent : IReceptor 21 | { 22 | // ServiceManager.Get().Register(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /FS-HOPE/FsHopeLib/FsHopeMembrane.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using Clifton.Core.Semantics; 8 | 9 | namespace FsHopeLib 10 | { 11 | public class FsHopeMembrane : Membrane { } 12 | } 13 | -------------------------------------------------------------------------------- /FS-HOPE/FsHopeLib/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FsHopeLib")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FsHopeLib")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("032b8e55-9233-47b6-bd67-4a4ece158039")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/HopeRunner/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HopeRunner")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("HopeRunner")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("6c543371-0da1-4e8a-ac3e-52f17613ff22")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/HopeRunner/Runner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Reflection; 4 | 5 | using Clifton.Core.Semantics; 6 | 7 | using Clifton.Core.Services.SemanticProcessorService; 8 | using HopeRunnerAppDomainInterface; 9 | 10 | namespace HopeRunner 11 | { 12 | public class HopeMembrane : Membrane { } 13 | 14 | [Serializable] 15 | public class Runner : MarshalByRefObject, IHopeRunner 16 | { 17 | protected SemanticProcessor sp; 18 | protected HopeMembrane membrane; 19 | 20 | public Runner() 21 | { 22 | sp = new SemanticProcessor(); 23 | membrane = new HopeMembrane(); 24 | sp.RegisterMembrane(); 25 | } 26 | 27 | public void InstantiateReceptor(string typeName) 28 | { 29 | var agent = Assembly.GetExecutingAssembly().GetTypes().SingleOrDefault(at => at.IsClass && at.IsPublic && at.Name == typeName); 30 | IReceptor receptor = (IReceptor)Activator.CreateInstance(agent); 31 | sp.Register(receptor); 32 | } 33 | 34 | public ISemanticType InstantiateSemanticType(string typeName) 35 | { 36 | Type st = Assembly.GetExecutingAssembly().GetTypes().SingleOrDefault(t => t.IsClass && t.IsPublic && t.GetInterfaces().Any(i => i.Name == nameof(ISemanticType))); 37 | ISemanticType inst = (ISemanticType)Activator.CreateInstance(st); 38 | 39 | return inst; 40 | } 41 | 42 | public void Publish(ISemanticType st) 43 | { 44 | sp.ProcessInstance(st); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /FS-HOPE/HopeRunnerAppDomainInterface/HopeRunnerInterface.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Clifton.Core.Semantics; 4 | 5 | namespace HopeRunnerAppDomainInterface 6 | { 7 | [Serializable] 8 | public class ProcessEventArgs : EventArgs 9 | { 10 | public string FromMembraneTypeName { get; set; } 11 | public string FromReceptorTypeName { get; set; } 12 | public string ToMembraneTypeName { get; set; } 13 | public string ToReceptorTypeName { get; set; } 14 | public string SemanticTypeTypeName { get; set; } 15 | 16 | public ProcessEventArgs() { } 17 | 18 | public ProcessEventArgs(string fromMembraneTypeName, string fromReceptorTypeName, string toMembraneTypeName, string toReceptorTypeName, string stTypeName) 19 | { 20 | FromMembraneTypeName = fromMembraneTypeName; 21 | FromReceptorTypeName = fromReceptorTypeName; 22 | ToMembraneTypeName = toMembraneTypeName; 23 | ToReceptorTypeName = toReceptorTypeName; 24 | SemanticTypeTypeName = stTypeName; 25 | } 26 | } 27 | 28 | public interface IHopeRunner 29 | { 30 | event EventHandler Processing; 31 | void InstantiateReceptor(string typeName); 32 | void EnableDisableReceptor(string typeName, bool state); 33 | ISemanticType InstantiateSemanticType(string typeName); 34 | void Publish(ISemanticType st); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /FS-HOPE/HopeRunnerAppDomainInterface/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HopeRunnerAppDomainInterface")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("HopeRunnerAppDomainInterface")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("eb69e349-53a1-45ca-8982-988b9bc557a3")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/HopeShapes/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HopeShapes")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("HopeShapes")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d2031348-e8a6-4895-a4b8-a7f6093be054")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/HopeShapes/PropertyGridHelpers/CustomProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace HopeShapes.PropertyGridHelpers 4 | { 5 | // From: https://www.codeproject.com/Articles/9280/Add-Remove-Items-to-from-PropertyGrid-at-Runtime 6 | public class CustomProperty 7 | { 8 | public string Root { get; set; } 9 | public string Name { get; set; } 10 | public bool ReadOnly { get; set; } 11 | public bool Visible { get; set; } 12 | public object Value { get; set; } 13 | public string Description { get; set; } 14 | public string Category { get; set; } 15 | public Type PropertyType { get; set; } 16 | 17 | public CustomProperty(string root, string name, object value, string description, string category, Type propertyType, bool readOnly = false, bool visible = true) 18 | { 19 | Root = root; 20 | Name = name; 21 | Value = value; 22 | ReadOnly = readOnly; 23 | Visible = visible; 24 | Description = description; 25 | Category = category; 26 | PropertyType = propertyType; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /FS-HOPE/HopeShapes/PropertyGridHelpers/CustomPropertyDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | 4 | namespace HopeShapes.PropertyGridHelpers 5 | { 6 | // From: https://www.codeproject.com/Articles/9280/Add-Remove-Items-to-from-PropertyGrid-at-Runtime 7 | public class CustomPropertyDescriptor : PropertyDescriptor 8 | { 9 | CustomProperty m_Property; 10 | 11 | public CustomPropertyDescriptor(ref CustomProperty myProperty, Attribute[] attrs) : base(myProperty.Name, attrs) 12 | { 13 | m_Property = myProperty; 14 | } 15 | 16 | public override bool CanResetValue(object component) 17 | { 18 | return false; 19 | } 20 | 21 | public override Type ComponentType 22 | { 23 | get 24 | { 25 | return null; 26 | } 27 | } 28 | 29 | public override object GetValue(object component) 30 | { 31 | return m_Property.Value; 32 | } 33 | 34 | public override string Description 35 | { 36 | get 37 | { 38 | return m_Property.Description; 39 | } 40 | } 41 | 42 | public override string Category 43 | { 44 | get 45 | { 46 | return m_Property.Category; 47 | } 48 | } 49 | 50 | public override string DisplayName 51 | { 52 | get 53 | { 54 | return m_Property.Name; 55 | } 56 | 57 | } 58 | 59 | public override bool IsReadOnly 60 | { 61 | get 62 | { 63 | return m_Property.ReadOnly; 64 | } 65 | } 66 | 67 | public override void ResetValue(object component) 68 | { 69 | //Have to implement 70 | } 71 | 72 | public override bool ShouldSerializeValue(object component) 73 | { 74 | return false; 75 | } 76 | 77 | public override void SetValue(object component, object value) 78 | { 79 | m_Property.Value = value; 80 | } 81 | 82 | public override Type PropertyType 83 | { 84 | get { return m_Property.PropertyType; } 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /FS-HOPE/IFlowSharpHopeServiceInterface/IFlowSharpHopeServiceInterface.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {39F34133-6FBC-40D0-B9BE-2FED5A7DB8C6} 8 | Library 9 | Properties 10 | IFlowSharpHopeServiceInterface 11 | IFlowSharpHopeServiceInterface 12 | v4.5.2 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | pdbonly 26 | true 27 | bin\Release\ 28 | TRACE 29 | prompt 30 | 4 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /FS-HOPE/IFlowSharpHopeServiceInterface/Interfaces.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | using Clifton.Core.Assertions; 8 | using Clifton.Core.ExtensionMethods; 9 | using Clifton.Core.ModuleManagement; 10 | using Clifton.Core.ServiceManagement; 11 | 12 | namespace FlowSharpHopeServiceInterface 13 | { 14 | public interface IHigherOrderProgrammingService : IService 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /FS-HOPE/IFlowSharpHopeServiceInterface/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("IFlowSharpHopeServiceInterface")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("IFlowSharpHopeServiceInterface")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("39f34133-6fbc-40d0-b9be-2fed5a7db8c6")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FS-HOPE/StandAloneRunner/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /FS-HOPE/StandAloneRunner/HttpGet.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Net; 8 | using System.IO; 9 | 10 | namespace FlowSharpRestService 11 | { 12 | public static class Http 13 | { 14 | public static string Get(string uri) 15 | { 16 | WebClient client = new WebClient(); 17 | 18 | // Add a user agent header in case the 19 | // requested URI contains a query. 20 | 21 | client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 22 | 23 | Stream data = client.OpenRead(uri); 24 | StreamReader reader = new StreamReader(data); 25 | string s = reader.ReadToEnd(); 26 | data.Close(); 27 | reader.Close(); 28 | 29 | return s; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /FS-HOPE/StandAloneRunner/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | using Newtonsoft.Json; 6 | 7 | using Clifton.Core.Semantics; 8 | using Clifton.Core.Services.SemanticProcessorService; 9 | 10 | using FlowSharpHopeCommon; 11 | using FlowSharpRestService; 12 | 13 | namespace StandAloneRunner 14 | { 15 | /// 16 | /// For testing the FlowSharpHopeService.StandAloneRunner. 17 | /// Note that this project references a DLL built by FlowSharpHopeService. 18 | /// 19 | class Program 20 | { 21 | public static TextBox tbLog; 22 | public static Form form; 23 | public static SemanticProcessor sp; 24 | 25 | private static string url = "http://localhost:5002/"; 26 | protected const string PROCESSING = "processing"; 27 | 28 | [STAThread] 29 | static void Main(string[] args) 30 | { 31 | Application.EnableVisualStyles(); 32 | Application.SetCompatibleTextRenderingDefault(false); 33 | 34 | sp = new SemanticProcessor(); 35 | sp.Processing += Processing; 36 | 37 | RouteHandlers routeHandlers = new RouteHandlers(sp); 38 | 39 | WebServer webServer = new WebServer(routeHandlers); 40 | webServer.Start("localhost", new int[] { 5001 }); 41 | 42 | form = new Form(); 43 | form.Location = new Point(100, 100); 44 | form.Size = new Size(500, 200); 45 | form.Text = "Stand Alone Runner"; 46 | 47 | tbLog = new TextBox(); 48 | tbLog.Multiline = true; 49 | tbLog.Dock = DockStyle.Fill; 50 | form.Controls.Add(tbLog); 51 | 52 | Application.Run(form); 53 | } 54 | 55 | private static void Processing(object sender, ProcessEventArgs args) 56 | { 57 | string json = JsonConvert.SerializeObject(new 58 | { 59 | FromMembraneTypeName = args.FromMembrane?.GetType()?.FullName, 60 | FromReceptorTypeName = args.FromReceptor?.GetType()?.FullName, 61 | ToMembraneTypeName = args.ToMembrane.GetType().FullName, 62 | ToReceptorTypeName = args.ToReceptor.GetType().FullName, 63 | SemanticTypeTypeName = args.SemanticType.GetType().FullName, 64 | }); 65 | 66 | Http.Get(url + PROCESSING + "?proc=" + json); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /FS-HOPE/StandAloneRunner/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("StandAloneRunner")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("StandAloneRunner")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("eab1be73-9426-42f1-8113-4c8511a6bbeb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FlowSharp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/FlowSharp.ico -------------------------------------------------------------------------------- /FlowSharpClient/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpClient")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FlowSharpClient")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("31890a66-32ad-4d5f-a5a3-f9976996111c")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FlowSharpLib/CanvasProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | namespace FlowSharpLib 12 | { 13 | public class CanvasProperties : IPropertyObject 14 | { 15 | [Category("Canvas")] 16 | public string Name { get; set; } 17 | [Category("Canvas")] 18 | public string Filename { get; set; } 19 | 20 | protected Canvas canvas; 21 | 22 | public CanvasProperties(Canvas canvas) 23 | { 24 | this.canvas = canvas; 25 | Name = canvas.Controller.CanvasName; 26 | Filename= canvas.Controller.Filename; 27 | } 28 | 29 | public void Update(string label) 30 | { 31 | (label == nameof(Name)).If(() => canvas.Controller.CanvasName = Name); 32 | (label == nameof(Filename)).If(() => canvas.Controller.Filename = Filename); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /FlowSharpLib/Connection.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | 11 | namespace FlowSharpLib 12 | { 13 | // !!! If this class ends up being subclassed for any reason, the serializer must be updated to account for subclasses !!! 14 | /// 15 | /// Used for shapes connecting to lines. 16 | /// 17 | public class Connection 18 | { 19 | public GraphicElement ToElement { get; set; } 20 | public ConnectionPoint ToConnectionPoint { get; set; } 21 | public ConnectionPoint ElementConnectionPoint { get; set; } 22 | 23 | public void Serialize(ElementPropertyBag epb, IEnumerable elementsBeingSerialized) 24 | { 25 | // If partial serialization (like copying a subset of shapes, don't include unselected connectors.) 26 | if (elementsBeingSerialized.Contains(ToElement)) 27 | { 28 | ConnectionPropertyBag cpb = new ConnectionPropertyBag(); 29 | cpb.ToElementId = ToElement.Id; 30 | cpb.ToConnectionPoint = ToConnectionPoint; 31 | cpb.ElementConnectionPoint = ElementConnectionPoint; 32 | epb.Connections.Add(cpb); 33 | } 34 | } 35 | 36 | public void Deserialize(List elements, ConnectionPropertyBag cpb, Dictionary oldNewGuidMap) 37 | { 38 | ToElement = elements.Single(e => e.Id == oldNewGuidMap[cpb.ToElementId]); 39 | ToConnectionPoint = cpb.ToConnectionPoint; 40 | ElementConnectionPoint = cpb.ElementConnectionPoint; 41 | } 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /FlowSharpLib/Connectors/DynamicConnectorProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | namespace FlowSharpLib 12 | { 13 | public class DynamicConnectorProperties : ElementProperties 14 | { 15 | [Category("Endcaps")] 16 | public AvailableLineCap StartCap { get; set; } 17 | [Category("Endcaps")] 18 | public AvailableLineCap EndCap { get; set; } 19 | 20 | public DynamicConnectorProperties(DynamicConnector el) : base(el) 21 | { 22 | StartCap = el.StartCap; 23 | EndCap = el.EndCap; 24 | } 25 | 26 | public override void Update(GraphicElement el, string label) 27 | { 28 | // X1 29 | //(label == nameof(StartCap)).If(()=> this.ChangePropertyWithUndoRedo(el, nameof(StartCap), nameof(StartCap))); 30 | //(label == nameof(StartCap)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(EndCap), nameof(EndCap))); 31 | (label == nameof(StartCap)).If(() => ((Connector)el).StartCap = StartCap); 32 | (label == nameof(EndCap)).If(() => ((Connector)el).EndCap = EndCap); 33 | base.Update(el, label); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /FlowSharpLib/ElementCache.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | // ElementCache is no longer necessary as the element won't be disposed, since it's part of the undo/redo action. 8 | 9 | /* 10 | using System.Collections.Generic; 11 | 12 | namespace FlowSharpLib 13 | { 14 | public class ElementCache 15 | { 16 | /// 17 | /// Used for caching deleting elements as part of undo/redo, so the element's pens, brushes, etc., are not disposed. 18 | /// 19 | protected List cachedElements = new List(); 20 | protected static ElementCache instance; 21 | 22 | protected ElementCache() 23 | { 24 | } 25 | 26 | public static ElementCache Instance 27 | { 28 | get 29 | { 30 | if (instance == null) 31 | { 32 | instance = new ElementCache(); 33 | } 34 | 35 | return instance; 36 | } 37 | } 38 | 39 | public void Add(GraphicElement el) 40 | { 41 | if (!cachedElements.Contains(el)) 42 | { 43 | // Cache the element being deleted so we can do a proper dispose of deleted elements at some point. 44 | // TODO: When is that "point"? 45 | cachedElements.Add(el); 46 | } 47 | } 48 | 49 | public void Remove(GraphicElement el) 50 | { 51 | if (cachedElements.Contains(el)) 52 | { 53 | cachedElements.Remove(el); 54 | } 55 | } 56 | 57 | public void ClearCache() 58 | { 59 | cachedElements.ForEach(el => el.Dispose()); 60 | cachedElements.Clear(); 61 | } 62 | } 63 | } 64 | */ -------------------------------------------------------------------------------- /FlowSharpLib/Interfaces.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | namespace FlowSharpLib 8 | { 9 | public interface IPropertyObject 10 | { 11 | // void Update(GraphicElement el, string label); 12 | void Update(string label); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /FlowSharpLib/Lib/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/FlowSharpLib/Lib/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /FlowSharpLib/LineProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | namespace FlowSharpLib 12 | { 13 | public class LineProperties : ElementProperties 14 | { 15 | [Category("Endcaps")] 16 | public AvailableLineCap StartCap { get; set; } 17 | [Category("Endcaps")] 18 | public AvailableLineCap EndCap { get; set; } 19 | 20 | public LineProperties(Line el) : base(el) 21 | { 22 | StartCap = el.StartCap; 23 | EndCap = el.EndCap; 24 | } 25 | 26 | public override void Update(GraphicElement el, string label) 27 | { 28 | // X1 29 | //(label == nameof(StartCap)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(StartCap), nameof(StartCap))); 30 | //(label == nameof(EndCap)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(EndCap), nameof(EndCap))); 31 | (label == nameof(StartCap)).If(() => ((Connector)el).StartCap = StartCap); 32 | (label == nameof(EndCap)).If(() => ((Connector)el).EndCap = EndCap); 33 | base.Update(el, label); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /FlowSharpLib/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpLib")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Marc Clifton")] 12 | [assembly: AssemblyProduct("FlowSharpLib")] 13 | [assembly: AssemblyCopyright("Copyright © Marc Clifton 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("07f65ca7-b8d3-4716-bfbf-812ef4da68be")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /FlowSharpLib/ShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | using System.Drawing; 9 | 10 | using Clifton.Core.ExtensionMethods; 11 | 12 | namespace FlowSharpLib 13 | { 14 | public class ShapeProperties : ElementProperties 15 | { 16 | [Category("Text")] 17 | public string Text { get; set; } 18 | [Category("Text")] 19 | public Font Font { get; set; } 20 | [Category("Text")] 21 | public Color TextColor { get; set; } 22 | [Category("Text")] 23 | public ContentAlignment TextAlign { get; set; } 24 | [Category("Text")] 25 | public bool Multiline { get; set; } 26 | 27 | public ShapeProperties(GraphicElement el) : base(el) 28 | { 29 | Text = el.Text; 30 | Font = el.TextFont; 31 | TextColor = el.TextColor; 32 | TextAlign = el.TextAlign; 33 | Multiline = el.Multiline; 34 | } 35 | 36 | public override void Update(GraphicElement el, string label) 37 | { 38 | // X1 39 | //(label == nameof(Text)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(el.Text), nameof(Text))); 40 | //(label == nameof(Font)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(el.TextFont), nameof(Font))); 41 | //(label == nameof(TextColor)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(el.TextColor), nameof(TextColor))); 42 | //(label == nameof(TextAlign)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(el.TextAlign), nameof(TextAlign))); 43 | (label == nameof(Text)).If(() => el.Text = Text); 44 | (label == nameof(Font)).If(() => el.TextFont = Font); 45 | (label == nameof(TextColor)).If(() => el.TextColor = TextColor); 46 | (label == nameof(TextAlign)).If(() => el.TextAlign = TextAlign); 47 | (label == nameof(Multiline)).If(() => el.Multiline = Multiline); 48 | base.Update(el, label); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /FlowSharpLib/Shapes/Box.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing; 8 | 9 | namespace FlowSharpLib 10 | { 11 | [ToolboxOrder(1)] 12 | public class Box : GraphicElement 13 | { 14 | public Box(Canvas canvas) : base(canvas) 15 | { 16 | } 17 | 18 | public override void Draw(Graphics gr, bool showSelection = true) 19 | { 20 | Rectangle zdr = ZoomRectangle; 21 | gr.FillRectangle(FillBrush, zdr); 22 | gr.DrawRectangle(BorderPen, zdr); 23 | base.Draw(gr, showSelection); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /FlowSharpLib/Shapes/Ellipse.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing; 8 | 9 | namespace FlowSharpLib 10 | { 11 | [ToolboxOrder(2)] 12 | public class Ellipse : GraphicElement 13 | { 14 | public Ellipse(Canvas canvas) : base(canvas) 15 | { 16 | HasCornerConnections = false; 17 | } 18 | 19 | public override void Draw(Graphics gr, bool showSelection = true) 20 | { 21 | gr.FillEllipse(FillBrush, ZoomRectangle); 22 | gr.DrawEllipse(BorderPen, ZoomRectangle); 23 | base.Draw(gr, showSelection); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /FlowSharpLib/Shapes/Hexagon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace FlowSharpLib.Shapes 8 | { 9 | public class Hexagon 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /FlowSharpLib/Shapes/Line.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing.Drawing2D; 8 | 9 | namespace FlowSharpLib 10 | { 11 | public abstract class Line : Connector 12 | { 13 | public Line(Canvas canvas) : base(canvas) 14 | { 15 | } 16 | 17 | public override ElementProperties CreateProperties() 18 | { 19 | return new LineProperties(this); 20 | } 21 | 22 | public override void UpdateProperties() 23 | { 24 | if (StartCap == AvailableLineCap.None) 25 | { 26 | BorderPen.StartCap = LineCap.NoAnchor; 27 | } 28 | else 29 | { 30 | BorderPen.CustomStartCap = StartCap == AvailableLineCap.Arrow ? adjCapArrow : adjCapDiamond; 31 | } 32 | 33 | if (EndCap == AvailableLineCap.None) 34 | { 35 | BorderPen.EndCap = LineCap.NoAnchor; 36 | } 37 | else 38 | { 39 | BorderPen.CustomEndCap = EndCap == AvailableLineCap.Arrow ? adjCapArrow : adjCapDiamond; 40 | } 41 | 42 | base.UpdateProperties(); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /FlowSharpLib/ToolboxShapeAttribute.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System; 8 | 9 | namespace FlowSharpLib 10 | { 11 | [AttributeUsage(AttributeTargets.Class, Inherited = false)] 12 | public class ExcludeFromToolboxAttribute : Attribute { } 13 | 14 | [AttributeUsage(AttributeTargets.Class)] 15 | public class ToolboxShapeAttribute : Attribute { } 16 | 17 | [AttributeUsage(AttributeTargets.Class)] 18 | public class ToolboxOrderAttribute : Attribute 19 | { 20 | public int Order { get; protected set; } 21 | 22 | public ToolboxOrderAttribute(int order) 23 | { 24 | Order = order; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /FlowSharpLib/ToolboxText.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing; 8 | 9 | namespace FlowSharpLib 10 | { 11 | /// 12 | /// Special rendering for this element in the toolbox only. 13 | /// 14 | public class ToolboxText : GraphicElement 15 | { 16 | public const string TOOLBOX_TEXT = "A"; 17 | 18 | protected Brush brush = new SolidBrush(Color.Black); 19 | 20 | public ToolboxText(Canvas canvas) : base(canvas) 21 | { 22 | TextFont.Dispose(); 23 | TextFont = new Font(FontFamily.GenericSansSerif, 20); 24 | } 25 | 26 | public override GraphicElement CloneDefault(Canvas canvas) 27 | { 28 | return CloneDefault(canvas, Point.Empty); 29 | } 30 | 31 | public override GraphicElement CloneDefault(Canvas canvas, Point offset) 32 | { 33 | TextShape shape = new TextShape(canvas); 34 | shape.DisplayRectangle = shape.DefaultRectangle().Move(offset); 35 | shape.UpdateProperties(); 36 | shape.UpdatePath(); 37 | 38 | return shape; 39 | } 40 | 41 | public override void Draw(Graphics gr) 42 | { 43 | SizeF size = gr.MeasureString(TOOLBOX_TEXT, TextFont); 44 | Point textpos = DisplayRectangle.Center().Move((int)(-size.Width / 2), (int)(-size.Height / 2)); 45 | gr.DrawString(TOOLBOX_TEXT, TextFont, brush, textpos); 46 | base.Draw(gr); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Libs/Clifton.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Clifton.Core.dll -------------------------------------------------------------------------------- /Libs/Clifton.DockingFormService.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Clifton.DockingFormService.dll -------------------------------------------------------------------------------- /Libs/Clifton.SemanticProcessorService.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Clifton.SemanticProcessorService.dll -------------------------------------------------------------------------------- /Libs/Clifton.WinForm.ServiceInterfaces.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Clifton.WinForm.ServiceInterfaces.dll -------------------------------------------------------------------------------- /Libs/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.AvalonEdit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.AvalonEdit.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.CodeCompletion.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.CodeCompletion.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.Core.Presentation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.Core.Presentation.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.Core.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.NRefactory.CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.NRefactory.CSharp.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.NRefactory.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.NRefactory.Cecil.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.NRefactory.Xml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.NRefactory.Xml.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.NRefactory.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.NRefactory.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.SharpDevelop.Widgets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.SharpDevelop.Widgets.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.SharpDevelop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.SharpDevelop.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/ICSharpCode.TreeView.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/ICSharpCode.TreeView.dll -------------------------------------------------------------------------------- /Libs/ICSharpCode/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ICSharpCode/Mono.Cecil.dll -------------------------------------------------------------------------------- /Libs/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Libs/Renci.SshNet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/Renci.SshNet.dll -------------------------------------------------------------------------------- /Libs/ScintillaNET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/ScintillaNET.dll -------------------------------------------------------------------------------- /Libs/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll -------------------------------------------------------------------------------- /Libs/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /Libs/websocket-sharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Libs/websocket-sharp.dll -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/CheckboxShape.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing; 8 | using System.Windows.Forms; 9 | 10 | using FlowSharpLib; 11 | 12 | namespace FlowSharpWindowsControlShapes 13 | { 14 | [ExcludeFromToolbox] 15 | public class CheckboxShape : ControlShape 16 | { 17 | public CheckboxShape(Canvas canvas) : base(canvas) 18 | { 19 | control = new CheckBox(); 20 | canvas.Controls.Add(control); 21 | } 22 | 23 | public override void Draw(Graphics gr, bool showSelection = true) 24 | { 25 | base.Draw(gr, showSelection); 26 | Rectangle r = ZoomRectangle.Grow(-4); 27 | control.Location = r.Location; 28 | control.Size = r.Size; 29 | control.Text = Text; 30 | control.Enabled = Enabled; 31 | control.Visible = Visible; 32 | } 33 | } 34 | 35 | [ToolboxShape] 36 | public class ToolboxCheckboxShape : GraphicElement 37 | { 38 | public const string TOOLBOX_TEXT = "ckbox"; 39 | 40 | protected Brush brush = new SolidBrush(Color.Black); 41 | 42 | public ToolboxCheckboxShape(Canvas canvas) : base(canvas) 43 | { 44 | TextFont.Dispose(); 45 | TextFont = new Font(FontFamily.GenericSansSerif, 8); 46 | } 47 | 48 | public override GraphicElement CloneDefault(Canvas canvas) 49 | { 50 | return CloneDefault(canvas, Point.Empty); 51 | } 52 | 53 | public override GraphicElement CloneDefault(Canvas canvas, Point offset) 54 | { 55 | CheckboxShape shape = new CheckboxShape(canvas); 56 | shape.DisplayRectangle = shape.DefaultRectangle().Move(offset); 57 | shape.UpdateProperties(); 58 | shape.UpdatePath(); 59 | 60 | return shape; 61 | } 62 | 63 | public override void Draw(Graphics gr, bool showSelection = true) 64 | { 65 | SizeF size = gr.MeasureString(TOOLBOX_TEXT, TextFont); 66 | Point textpos = DisplayRectangle.Center().Move((int)(-size.Width / 2), (int)(-size.Height / 2)); 67 | gr.DrawString(TOOLBOX_TEXT, TextFont, brush, textpos); 68 | base.Draw(gr, showSelection); 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/ComboboxShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using FlowSharpLib; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | namespace FlowSharpWindowsControlShapes 14 | { 15 | public class ComboboxShapeProperties : ControlShapeProperties 16 | { 17 | [Category("Fields")] 18 | public string IdFieldName { get; set; } 19 | [Category("Fields")] 20 | public string DisplayFieldName { get; set; } 21 | 22 | public ComboboxShapeProperties(GraphicElement el) : base(el) 23 | { 24 | IdFieldName = ((ComboboxShape)el).IdFieldName; 25 | DisplayFieldName = ((ComboboxShape)el).DisplayFieldName; 26 | } 27 | 28 | public override void Update(GraphicElement el, string label) 29 | { 30 | base.Update(el, label); 31 | (label == nameof(IdFieldName)).If(() => ((ComboboxShape)el).IdFieldName = IdFieldName); 32 | (label == nameof(DisplayFieldName)).If(() => ((ComboboxShape)el).DisplayFieldName = DisplayFieldName); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/ControlShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using FlowSharpLib; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | namespace FlowSharpWindowsControlShapes 14 | { 15 | public class ControlShapeProperties : ShapeProperties 16 | { 17 | [Category("Click")] 18 | public string ClickEventName { get; set; } 19 | [Category("Click")] 20 | public string ClickEventData { get; set; } 21 | [Category("Click")] 22 | public SendProtocol SendProtocol { get; set; } 23 | 24 | [Category("Visual")] 25 | public bool Enabled { get; set; } 26 | [Category("Visual")] 27 | public bool Visible { get; set; } 28 | 29 | public ControlShapeProperties(GraphicElement el) : base(el) 30 | { 31 | ClickEventName = ((ControlShape)el).ClickEventName; 32 | ClickEventData = ((ControlShape)el).ClickEventData; 33 | Enabled = ((ControlShape)el).Enabled; 34 | Visible = ((ControlShape)el).Visible; 35 | SendProtocol = ((ControlShape)el).SendProtocol; 36 | } 37 | 38 | public override void Update(GraphicElement el, string label) 39 | { 40 | base.Update(el, label); 41 | (label == nameof(ClickEventName)).If(() => ((ControlShape)el).ClickEventName = ClickEventName); 42 | (label == nameof(ClickEventData)).If(() => ((ControlShape)el).ClickEventData = ClickEventData); 43 | (label == nameof(Enabled)).If(() => ((ControlShape)el).Enabled = Enabled); 44 | (label == nameof(Visible)).If(() => ((ControlShape)el).Visible = Visible); 45 | (label == nameof(SendProtocol)).If(() => ((ControlShape)el).SendProtocol = SendProtocol); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/Enums.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | namespace FlowSharpWindowsControlShapes 8 | { 9 | public enum SendProtocol 10 | { 11 | Http, 12 | WebSocket, 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/ListboxShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using FlowSharpLib; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | namespace FlowSharpWindowsControlShapes 14 | { 15 | public class ListBoxShapeProperties : ControlShapeProperties 16 | { 17 | [Category("Fields")] 18 | public string IdFieldName { get; set; } 19 | [Category("Fields")] 20 | public string DisplayFieldName { get; set; } 21 | 22 | public ListBoxShapeProperties(GraphicElement el) : base(el) 23 | { 24 | IdFieldName = ((ListBoxShape)el).IdFieldName; 25 | DisplayFieldName = ((ListBoxShape)el).DisplayFieldName; 26 | } 27 | 28 | public override void Update(GraphicElement el, string label) 29 | { 30 | base.Update(el, label); 31 | (label == nameof(IdFieldName)).If(() => ((ListBoxShape)el).IdFieldName = IdFieldName); 32 | (label == nameof(DisplayFieldName)).If(() => ((ListBoxShape)el).DisplayFieldName = DisplayFieldName); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpWindowsControlShapes")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpWindowsControlShapes")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f41cb0c7-b2a0-48a7-85ee-874913598a6a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/TextboxShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using FlowSharpLib; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | namespace FlowSharpWindowsControlShapes 14 | { 15 | public class TextboxShapeProperties : ControlShapeProperties 16 | { 17 | [Category("Options")] 18 | public bool ReadOnly { get; set; } 19 | 20 | public TextboxShapeProperties(GraphicElement el) : base(el) 21 | { 22 | Multiline = ((TextboxShape)el).Multiline; 23 | ReadOnly = ((TextboxShape)el).ReadOnly; 24 | } 25 | 26 | public override void Update(GraphicElement el, string label) 27 | { 28 | base.Update(el, label); 29 | (label == nameof(Multiline)).If(() => ((TextboxShape)el).Multiline = Multiline); 30 | (label == nameof(ReadOnly)).If(() => ((TextboxShape)el).ReadOnly = ReadOnly); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Plugins/FlowSharpWindowsControlShapes/TrackbarShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using FlowSharpLib; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | namespace FlowSharpWindowsControlShapes 14 | { 15 | public class TrackbarShapeProperties : ControlShapeProperties 16 | { 17 | [Category("Range")] 18 | public int Minimum { get; set; } 19 | [Category("Range")] 20 | public int Maximum { get; set; } 21 | [Category("Events")] 22 | public string ValueChangedName { get; set; } 23 | 24 | public TrackbarShapeProperties(GraphicElement el) : base(el) 25 | { 26 | Minimum = ((TrackbarShape)el).Minimum; 27 | Maximum = ((TrackbarShape)el).Maximum; 28 | ValueChangedName = ((TrackbarShape)el).ValueChangedName; 29 | } 30 | 31 | public override void Update(GraphicElement el, string label) 32 | { 33 | base.Update(el, label); 34 | (label == nameof(Minimum)).If(() => ((TrackbarShape)el).Minimum = Minimum); 35 | (label == nameof(Maximum)).If(() => ((TrackbarShape)el).Maximum = Maximum); 36 | (label == nameof(ValueChangedName)).If(() => ((TrackbarShape)el).ValueChangedName = ValueChangedName); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Plugins/PluginExample/ImageShapeProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | using FlowSharpLib; 12 | 13 | namespace PluginExample 14 | { 15 | public class ImageShapeProperties : ElementProperties 16 | { 17 | [Category("Image")] 18 | public string Filename { get; set; } 19 | 20 | public ImageShapeProperties(ImageShape el) : base(el) 21 | { 22 | Filename = el.Filename; 23 | } 24 | 25 | public override void Update(GraphicElement el, string label) 26 | { 27 | // ((ImageShape)el).Filename = Filename; 28 | // X1 29 | //(label == nameof(Filename)).If(() => this.ChangePropertyWithUndoRedo(el, nameof(Filename), nameof(Filename))); 30 | (label == nameof(Filename)).If(() => ((ImageShape)el).Filename = Filename); 31 | base.Update(el, label); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Plugins/PluginExample/NavToProperties.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.ComponentModel; 8 | 9 | using Clifton.Core.ExtensionMethods; 10 | 11 | using FlowSharpLib; 12 | 13 | namespace PluginExample 14 | { 15 | public class NavToProperties : ElementProperties 16 | { 17 | [Category("Navigate")] 18 | [Description("Navigate to the shape with the specified 'Name' (not the ShapeName)")] 19 | public string To { get; set; } 20 | 21 | public NavToProperties(NavTo el) : base(el) 22 | { 23 | To = el.NavigateTo; 24 | } 25 | 26 | public override void Update(GraphicElement el, string label) 27 | { 28 | (label == nameof(To)).If(() => ((NavTo)el).NavigateTo = To); 29 | base.Update(el, label); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Plugins/PluginExample/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpLibPlugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Marc Clifton")] 12 | [assembly: AssemblyProduct("FlowSharpLibPlugin")] 13 | [assembly: AssemblyCopyright("Copyright © Marc Clifton 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("df4bc6e3-e126-4a81-a1f1-79c4f6c6e784")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Plugins/PluginExample/Resources/DefaultImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Plugins/PluginExample/Resources/DefaultImage.png -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Drawing; 10 | using System.Windows.Forms; 11 | 12 | using FlowSharpServiceInterfaces; 13 | 14 | namespace FlowSharp 15 | { 16 | static partial class Program 17 | { 18 | [STAThread] 19 | static void Main(string[] args) 20 | { 21 | string modules = "modules.xml"; 22 | 23 | if (args.Length == 1) 24 | { 25 | modules = args[0]; 26 | } 27 | 28 | Application.EnableVisualStyles(); 29 | Application.SetCompatibleTextRenderingDefault(false); 30 | Bootstrap(modules); 31 | Icon icon = Properties.Resources.FlowSharp; 32 | Form form = ServiceManager.Get().CreateDockingForm(icon); 33 | Application.Run(form); 34 | } 35 | 36 | private static void ShowAnyExceptions(List exceptions) 37 | { 38 | foreach (var ex in exceptions) 39 | { 40 | MessageBox.Show(ex.Message, "Module Finalizer Exception", MessageBoxButtons.OK, MessageBoxIcon.Information); 41 | } 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Marc Clifton")] 12 | [assembly: AssemblyProduct("FlowSharp")] 13 | [assembly: AssemblyCopyright("Copyright © Marc Clifton 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("98e63d19-3d7a-4cb1-8ea9-31173d4be05f")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace FlowSharp.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/FlowSharp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/Resources/FlowSharp.ico -------------------------------------------------------------------------------- /Services/FlowSharpCanvasService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCanvasService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCanvasService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8072dc59-f5de-46c3-98a2-e483484b253c")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeCompilerService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeCompilerService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeCompilerService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("91fcf1d4-91e0-41fa-a675-c3174f131104")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeDrakonShapes/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeDrakonShapes")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeDrakonShapes")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("82de83b7-6a8e-4bcb-8b12-5e80e30ddbad")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeICSharpDevelopService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeICSharpDevelopService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeICSharpDevelopService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0f9d2405-725f-4859-ab13-75dfafa6ba35")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeICSharpDevelopService/ScriptProvider.cs: -------------------------------------------------------------------------------- 1 | using ICSharpCode.CodeCompletion; 2 | 3 | namespace FlowSharpCodeICSharpDevelopService 4 | { 5 | /// 6 | /// This is a simple script provider that adds a few using statements to the C# scripts (.csx files) 7 | /// 8 | class ScriptProvider : ICSharpScriptProvider 9 | { 10 | public string GetUsing() 11 | { 12 | return "" + 13 | "using System; " + 14 | "using System.Collections.Generic; " + 15 | "using System.Linq; " + 16 | "using System.Text; "; 17 | } 18 | 19 | 20 | public string GetVars() 21 | { 22 | return "int age = 25;"; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeOutputWindowService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeOutputWindowService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeOutputWindowService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5fa0c1a5-bde5-41fb-b031-eb8285fc549b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodePythonCompilerService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodePythonCompilerService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodePythonCompilerService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("526a7092-2ee6-49a6-beee-2c22f1e7cdce")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeScintillaEditorService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeScintillaEditorService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeScintillaEditorService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3452537d-7fa0-4916-baa9-b4985f11581e")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d11163a6-8f20-4b74-9627-02831d1df1b2")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeServiceInterfaces/Constants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace FlowSharpCodeServiceInterfaces 8 | { 9 | public static class Constants 10 | { 11 | public const string META_CSHARP_EDITOR = "Editor"; 12 | public const string META_SCINTILLA_EDITOR = "ScintillaEditor"; 13 | //public const string META_JAVASCRIPT_EDITOR = "JavascriptEditor"; 14 | //public const string META_HTML_EDITOR = "HtmlEditor"; 15 | //public const string META_CSS_EDITOR = "CssEditor"; 16 | public const string META_OUTPUT = "Output"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeServiceInterfaces/Membranes.cs: -------------------------------------------------------------------------------- 1 | using Clifton.Core.Semantics; 2 | 3 | namespace FlowSharpCodeServiceInterfaces 4 | { 5 | public class FlowSharpCodeMembrane : Membrane { } 6 | } 7 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeServiceInterfaces/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeServiceInterfaces")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeServiceInterfaces")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f8d75cfd-fb07-4a09-97d6-0ac3871aa35a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeShapeInterfaces/Interfaces.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | namespace FlowSharpCodeShapeInterfaces 8 | { 9 | public enum TruePath 10 | { 11 | Down, 12 | LeftOrRight 13 | } 14 | 15 | public interface IFileBox 16 | { 17 | string Filename { get; } 18 | } 19 | 20 | public interface IAssemblyBox : IFileBox 21 | { 22 | } 23 | 24 | public interface IAssemblyReferenceBox : IFileBox 25 | { 26 | } 27 | 28 | public interface IPythonClass : IFileBox 29 | { 30 | bool GenerateClass { get; set; } 31 | } 32 | 33 | public interface ICSharpClass : IFileBox 34 | { 35 | string NamespaceName { get; set; } 36 | string ClassName { get; set; } 37 | string MethodName { get; set; } 38 | } 39 | 40 | public interface IWorkflowBox 41 | { 42 | } 43 | 44 | // Interfaces are required and must be separate from FlowSharpCodeDrakonShapes because the shapes are dynamically loaded, 45 | // as a result, statements like "el is IDrakonShape" returns false if the interface is defined in FlowSharpCodeDrakonShapes. 46 | // Crazily, the debugger returns true in this situation. 47 | public interface IDrakonShape { } 48 | 49 | // We don't name these "Drakon" so that we could associate other kinds of flowcharting shapes with these statements. 50 | public interface IIfBox 51 | { 52 | TruePath TruePath { get; set; } 53 | } 54 | 55 | public interface IBeginForLoopBox { } 56 | public interface IEndForLoopBox { } 57 | public interface IOutputBox { } 58 | public interface IInputBox { } 59 | } 60 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeShapeInterfaces/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeShapeInterfaces")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeShapeInterfaces")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8c7d37d1-f9d9-4633-b863-eac44b9dd999")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeShapes/AssemblyBox.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Collections.Generic; 8 | using System.ComponentModel; 9 | using System.Drawing; 10 | 11 | using Clifton.Core.ExtensionMethods; 12 | 13 | using FlowSharpLib; 14 | using FlowSharpCodeShapeInterfaces; 15 | 16 | namespace FlowSharpCodeShapes 17 | { 18 | public class AssemblyBox : Box, IAssemblyBox 19 | { 20 | public string Filename { get; set; } 21 | 22 | public AssemblyBox(Canvas canvas) : base(canvas) 23 | { 24 | Text = "Assy"; 25 | TextFont.Dispose(); 26 | TextFont= new Font(FontFamily.GenericSansSerif, 6); 27 | TextAlign = ContentAlignment.TopCenter; 28 | } 29 | 30 | public override ElementProperties CreateProperties() 31 | { 32 | return new AssemblyBoxProperties(this); 33 | } 34 | 35 | public override void Serialize(ElementPropertyBag epb, IEnumerable elementsBeingSerialized) 36 | { 37 | // TODO: Use JSON dictionary instead. 38 | epb.ExtraData = Filename; 39 | base.Serialize(epb, elementsBeingSerialized); 40 | } 41 | 42 | public override void Deserialize(ElementPropertyBag epb) 43 | { 44 | // TODO: Use JSON dictionary instead. 45 | Filename = epb.ExtraData; 46 | base.Deserialize(epb); 47 | } 48 | } 49 | 50 | public class AssemblyBoxProperties : ElementProperties 51 | { 52 | [Category("Assembly")] 53 | public string Filename { get; set; } 54 | 55 | public AssemblyBoxProperties(AssemblyBox el) : base(el) 56 | { 57 | Filename = el.Filename; 58 | } 59 | 60 | public override void Update(GraphicElement el, string label) 61 | { 62 | AssemblyBox box = (AssemblyBox)el; 63 | 64 | (label == "Filename").If(() => 65 | { 66 | box.Filename = Filename; 67 | box.Text = string.IsNullOrEmpty(Filename) ? "Assy" : ("Assy: " + Filename); 68 | }); 69 | 70 | base.Update(el, label); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeShapes/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpCodeShapes")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpCodeShapes")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("ef1bb007-e326-4305-94f0-c4a589fdb08a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpCodeServices/FlowSharpCodeShapes/WorkflowBox.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Collections.Generic; 8 | using System.ComponentModel; 9 | using System.Drawing; 10 | using System.IO; 11 | 12 | using FlowSharpLib; 13 | using FlowSharpCodeShapeInterfaces; 14 | 15 | namespace FlowSharpCodeShapes 16 | { 17 | public class WorkflowBox : Box, IWorkflowBox 18 | { 19 | public WorkflowBox(Canvas canvas) : base(canvas) 20 | { 21 | Text = "WF"; 22 | TextFont.Dispose(); 23 | TextFont = new Font(FontFamily.GenericSansSerif, 6); 24 | TextAlign = ContentAlignment.TopCenter; 25 | FillBrush.Color = Color.LightBlue; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Services/FlowSharpDebugWindowService/DlgPlugins.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Windows.Forms; 4 | 5 | using FlowSharpServiceInterfaces; 6 | 7 | namespace FlowSharpDebugWindowService 8 | { 9 | public partial class DlgPlugins : Form 10 | { 11 | public DlgPlugins() 12 | { 13 | InitializeComponent(); 14 | string plugins = File.ReadAllText(Constants.PLUGIN_FILE_LIST); 15 | tbPlugins.Text = plugins; 16 | } 17 | 18 | private void btnUpdate_Click(object sender, EventArgs e) 19 | { 20 | File.WriteAllText(Constants.PLUGIN_FILE_LIST, tbPlugins.Text); 21 | Close(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Services/FlowSharpDebugWindowService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpDebugWindowService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpDebugWindowService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("ef3a8598-238b-4b29-9d77-79cd805cd0e7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpDebugWindowService/TraceListener.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | 3 | namespace FlowSharpDebugWindowService 4 | { 5 | public class TraceListener : ConsoleTraceListener 6 | { 7 | public DlgDebugWindow DebugWindow { get; set; } 8 | 9 | public override void WriteLine(string msg) 10 | { 11 | if (DebugWindow != null) 12 | { 13 | DebugWindow.Trace(msg + "\r\n"); 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Services/FlowSharpEditService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpEditService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpEditService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0d8ce8a3-cd6c-4905-a9bd-b7ae36a7b053")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpMenuService/NavigateDlg.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Collections.Generic; 8 | using System.Drawing; 9 | using System.Linq; 10 | using System.Windows.Forms; 11 | 12 | using Clifton.Core.ServiceManagement; 13 | 14 | using FlowSharpLib; 15 | using FlowSharpServiceInterfaces; 16 | 17 | namespace FlowSharpMenuService 18 | { 19 | public partial class NavigateDlg : Form 20 | { 21 | protected IServiceManager serviceManager; 22 | protected BaseController canvasController; 23 | 24 | public NavigateDlg(IServiceManager serviceManager, List navNames) 25 | { 26 | this.serviceManager = serviceManager; 27 | InitializeComponent(); 28 | lbShapes.Items.AddRange(navNames.ToArray()); 29 | } 30 | 31 | private void lbShapes_KeyPress(object sender, KeyPressEventArgs e) 32 | { 33 | switch (e.KeyChar) 34 | { 35 | case (char)Keys.Escape: 36 | e.Handled = true; 37 | Close(); 38 | break; 39 | 40 | case (char)Keys.Enter: 41 | e.Handled = true; 42 | Close(); 43 | GraphicElement shape = ((NavigateToShape)lbShapes.SelectedItem).Shape; 44 | serviceManager.Get().FocusOnShape(shape); 45 | break; 46 | } 47 | } 48 | 49 | private void lbShapes_MouseClick(object sender, MouseEventArgs e) 50 | { 51 | Close(); 52 | GraphicElement shape = ((NavigateToShape)lbShapes.SelectedItem).Shape; 53 | serviceManager.Get().FocusOnShape(shape); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Services/FlowSharpMenuService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpMenuService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpMenuService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("4143c634-39f8-4143-98ba-5f20e533d7af")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpMouseControllerService/FlowSharpMouseControllerService.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using Clifton.Core.ModuleManagement; 8 | using Clifton.Core.Semantics; 9 | using Clifton.Core.ServiceManagement; 10 | 11 | using FlowSharpLib; 12 | using FlowSharpServiceInterfaces; 13 | 14 | namespace FlowSharpMouseControllerService 15 | { 16 | public class FlowSharpMouseControllerModule : IModule 17 | { 18 | public void InitializeServices(IServiceManager serviceManager) 19 | { 20 | serviceManager.RegisterSingleton(); 21 | } 22 | } 23 | 24 | public class FlowSharpMouseControllerService : ServiceBase, IFlowSharpMouseControllerService 25 | { 26 | protected MouseController mouseController; 27 | 28 | public override void FinishedInitialization() 29 | { 30 | base.FinishedInitialization(); 31 | ServiceManager.Get().Register(); 32 | mouseController = new MouseController(ServiceManager); 33 | mouseController.InitializeBehavior(); 34 | } 35 | 36 | public void Initialize(BaseController controller) 37 | { 38 | mouseController.HookMouseEvents(controller); 39 | } 40 | 41 | public void ClearState() 42 | { 43 | mouseController.ClearState(); 44 | } 45 | 46 | public void ShapeDeleted(GraphicElement el) 47 | { 48 | mouseController.ShapeDeleted(el); 49 | } 50 | } 51 | 52 | public class FlowSharpMouseControllerReceptor : IReceptor 53 | { 54 | 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /Services/FlowSharpMouseControllerService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpMouseControllerService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpMouseControllerService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("51bae79c-a873-4885-a39e-70d66155f78d")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpPropertyGridService/FlowSharpPropertyGridService.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Windows.Forms; 8 | 9 | using Clifton.Core.ModuleManagement; 10 | using Clifton.Core.Semantics; 11 | using Clifton.Core.ServiceManagement; 12 | 13 | using FlowSharpLib; 14 | using FlowSharpServiceInterfaces; 15 | 16 | namespace FlowSharpPropertyGridService 17 | { 18 | public class FlowSharpPropertyGridModule : IModule 19 | { 20 | public void InitializeServices(IServiceManager serviceManager) 21 | { 22 | serviceManager.RegisterSingleton(); 23 | } 24 | } 25 | 26 | public class FlowSharpPropertyGridService : ServiceBase, IFlowSharpPropertyGridService 27 | { 28 | protected PropertyGridController pgController; 29 | 30 | public override void Initialize(IServiceManager svcMgr) 31 | { 32 | base.Initialize(svcMgr); 33 | } 34 | 35 | public override void FinishedInitialization() 36 | { 37 | base.FinishedInitialization(); 38 | } 39 | 40 | public void Initialize(PropertyGrid propertyGrid) 41 | { 42 | pgController = new PropertyGridController(ServiceManager, propertyGrid); 43 | } 44 | 45 | public void Initialize(BaseController controller) 46 | { 47 | pgController?.HookEvents(controller); 48 | } 49 | 50 | public void Terminate(BaseController controller) 51 | { 52 | pgController?.UnhookEvents(controller); 53 | } 54 | 55 | public void ShowProperties(IPropertyObject propObject) 56 | { 57 | pgController?.Show(propObject); 58 | } 59 | } 60 | 61 | public class FlowSharpPropertyGridReceptor : IReceptor 62 | { 63 | 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Services/FlowSharpPropertyGridService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpPropertyGridService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpPropertyGridService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("ad2b1b25-b4f5-4eae-867e-636c58af0f57")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpRestService/FlowSharpRestService.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | 10 | using Clifton.Core.ExtensionMethods; 11 | using Clifton.Core.ModuleManagement; 12 | using Clifton.Core.Semantics; 13 | using Clifton.Core.ServiceManagement; 14 | 15 | using FlowSharpServiceInterfaces; 16 | 17 | namespace FlowSharpRestService 18 | { 19 | public class FlowSharpRestModule : IModule 20 | { 21 | public void InitializeServices(IServiceManager serviceManager) 22 | { 23 | serviceManager.RegisterSingleton(); 24 | } 25 | } 26 | 27 | public class FlowSharpRestService : ServiceBase, IFlowSharpRestService 28 | { 29 | protected WebServer server; 30 | 31 | public override void FinishedInitialization() 32 | { 33 | base.FinishedInitialization(); 34 | InitializeListener(); 35 | ServiceManager.Get().Register(); 36 | ServiceManager.Get().Register(); 37 | } 38 | 39 | public string HttpGet(string url, string data) 40 | { 41 | string ret = Http.Get(url + "?" + data); 42 | 43 | return ret; 44 | } 45 | 46 | public string HttpGet(string url, Dictionary data) 47 | { 48 | string asParams = string.Join("&", data.Select(kvp => kvp.Key + "=" + kvp.Value)); 49 | string ret = Http.Get(url + "?" + asParams); 50 | 51 | return ret; 52 | } 53 | 54 | protected void InitializeListener() 55 | { 56 | server = new WebServer(ServiceManager); 57 | server.Start("localhost", new int[] { 8001 }); // TODO: Get IP, ports, etc., from config file. 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /Services/FlowSharpRestService/HttpGet.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Net; 8 | using System.IO; 9 | 10 | namespace FlowSharpRestService 11 | { 12 | public static class Http 13 | { 14 | public static string Get(string uri) 15 | { 16 | WebClient client = new WebClient(); 17 | 18 | // Add a user agent header in case the 19 | // requested URI contains a query. 20 | 21 | client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 22 | 23 | Stream data = client.OpenRead(uri); 24 | StreamReader reader = new StreamReader(data); 25 | string s = reader.ReadToEnd(); 26 | data.Close(); 27 | reader.Close(); 28 | 29 | return s; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Services/FlowSharpRestService/HttpSender.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using Clifton.Core.Semantics; 8 | 9 | using FlowSharpServiceInterfaces; 10 | 11 | namespace FlowSharpRestService 12 | { 13 | public class HttpSender : IReceptor 14 | { 15 | // Ex: localhost:8001:flowsharp?cmd=CmdUpdateProperty&Name=btnTest&PropertyName=Text&Value=Foobar 16 | public void Process(ISemanticProcessor proc, IMembrane membrane, HttpSend cmd) 17 | { 18 | Http.Get(cmd.Url + "?" + cmd.Data); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Services/FlowSharpRestService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpRestService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpRestService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("51d2b194-cffc-4905-8f06-90f1a0000df2")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d6dfd9f7-45ff-45d9-8d45-ee5259441fbf")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/Constants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | namespace FlowSharpServiceInterfaces 8 | { 9 | public static class Constants 10 | { 11 | public const string PLUGIN_FILE_LIST = "plugins.txt"; 12 | 13 | public const string META_CANVAS = "Canvas"; 14 | public const string META_TOOLBOX = "Toolbox"; 15 | public const string META_PROPERTYGRID = "PropertyGrid"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/Enums.cs: -------------------------------------------------------------------------------- 1 | namespace FlowSharpServiceInterfaces 2 | { 3 | public enum ClosingState 4 | { 5 | NoChanges, 6 | SaveChanges, 7 | ExitWithoutSaving, 8 | CancelClose, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/EventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using FlowSharpLib; 4 | 5 | namespace FlowSharpServiceInterfaces 6 | { 7 | public class FileEventArgs : EventArgs 8 | { 9 | public string Filename { get; set; } 10 | } 11 | 12 | public class NewCanvasEventArgs : EventArgs 13 | { 14 | public BaseController Controller { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/Membranes.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using Clifton.Core.Semantics; 8 | 9 | namespace FlowSharpServiceInterfaces 10 | { 11 | public class FlowSharpMembrane : Membrane { } 12 | } 13 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/Notifiers.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using Clifton.Core.Semantics; 8 | 9 | namespace FlowSharpServiceInterfaces 10 | { 11 | public class HttpSend : ISemanticType 12 | { 13 | public string Url { get; set; } 14 | public string Data { get; set; } 15 | } 16 | 17 | public class WebSocketSend : ISemanticType 18 | { 19 | public string Data { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Services/FlowSharpServiceInterfaces/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpServiceInterfaces")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpServiceInterfaces")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("caa4fd23-1392-4dee-907a-cb3dc7315a98")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpToolboxService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpToolboxService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpToolboxService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("aae37a5e-07fe-4cdb-b4d4-a176213fce2b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpToolboxService/ToolboxCanvas.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using System.Drawing; 8 | 9 | using FlowSharpLib; 10 | 11 | namespace FlowSharpToolboxService 12 | { 13 | public class ToolboxCanvas : Canvas 14 | { 15 | protected override void DrawBackground(Graphics gr) 16 | { 17 | gr.Clear(Color.LightGray); 18 | } 19 | 20 | protected override void DrawGrid(Graphics gr) 21 | { 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Services/FlowSharpWebSocketService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FlowSharpWebSocketService")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("FlowSharpWebSocketService")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3548af21-b8cb-4c45-88b6-80fad43eb561")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Services/FlowSharpWebSocketService/WebSocketSender.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Marc Clifton 3 | * The Code Project Open License (CPOL) 1.02 4 | * http://www.codeproject.com/info/cpol10.aspx 5 | */ 6 | 7 | using WebSocketSharp; 8 | 9 | using Clifton.Core.Semantics; 10 | 11 | using FlowSharpServiceInterfaces; 12 | 13 | namespace FlowSharpWebSocketService 14 | { 15 | public class MyListener { } 16 | 17 | public class WebSocketSender : IReceptor 18 | { 19 | public static WebSocket ws = null; 20 | 21 | public void Process(ISemanticProcessor proc, IMembrane membrane, WebSocketSend cmd) 22 | { 23 | EstablishConnection(); 24 | ws.Send(cmd.Data); 25 | } 26 | 27 | protected void EstablishConnection() 28 | { 29 | // TODO: Right now, we're assuming one web socket client. 30 | if (ws == null || !ws.IsAlive) 31 | { 32 | ws = new WebSocket("ws://127.0.0.1:1101/flowsharpapp", new MyListener()); 33 | ws.Connect(); 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /bin/Debug/FlowSharpCodeModules.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /bin/Debug/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/bin/Debug/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll -------------------------------------------------------------------------------- /bin/Debug/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/bin/Debug/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /bin/Debug/appmodules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /bin/Debug/defaultLayout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/bin/Debug/defaultLayout.xml -------------------------------------------------------------------------------- /bin/Debug/htwmodules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bin/Debug/modules.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /bin/Debug/personOfInterest.py: -------------------------------------------------------------------------------- 1 | #pylint: disable=C0111, C0301, C0303, W0311, W0614, W0401, W0232, W0702, W0703, W0201 2 | # Make sure pip and setup tools are up to date: 3 | # python -m pip install -U pip 4 | # pip install -U setuptools 5 | # pip install requests 6 | # pip install lxml 7 | # pip install cssselect 8 | import requests 9 | import sys 10 | from lxml import html 11 | from lxml.cssselect import CSSSelector 12 | from lxml import etree 13 | 14 | url = "http://www.onthisday.com/birthdays/" + sys.argv[1] + "/" + sys.argv[2] 15 | # print("URL: " + url) 16 | page = requests.get(url) 17 | tree = html.fromstring(page.content) 18 | sel = CSSSelector('.section--person-of-interest') 19 | pois = sel(tree) 20 | 21 | for poi in pois: 22 | print(poi.xpath("div/div/div[1]/p")[0].text_content().encode('cp437', errors='replace')) 23 | 24 | -------------------------------------------------------------------------------- /bin/Debug/plugins.txt: -------------------------------------------------------------------------------- 1 | ..\..\Plugins\PluginExample\bin\Debug\PluginExample.dll 2 | ..\..\Plugins\FlowSharpWindowsControlShapes\bin\Debug\FlowSharpWindowsControlShapes.dll 3 | ..\..\Services\FlowSharpCodeServices\FlowSharpCodeShapes\bin\Debug\FlowSharpCodeShapes.dll 4 | ..\..\Services\FlowSharpCodeServices\FlowSharpCodeDrakonShapes\bin\Debug\FlowSharpCodeDrakonShapes.dll 5 | ..\..\FS-HOPE\HopeShapes\bin\Debug\HopeShapes.dll 6 | 7 | 8 | -------------------------------------------------------------------------------- /bin/Debug/soundPlayerModules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bin/Debug/st_text_speak-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/bin/Debug/st_text_speak-layout.xml -------------------------------------------------------------------------------- /bin/Debug/two apps demo-layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cliftonm/FlowSharp/5d42ef58878471c616e825cfa65f45b3b8d3a86d/bin/Debug/two apps demo-layout.xml -------------------------------------------------------------------------------- /todo.txt: -------------------------------------------------------------------------------- 1 | Bugs: 2 | 3 | 1. Connector added to shapes within a group box double-moves when the entire groupbox is moved. 4 | Also, anything dropped into a groupbox should probably be automatically grouped. 5 | 2. For text shape, text align bottom/top seems to be reversed 6 | 3. Ability to select several shapes worked, then stopped working. Not sure why 7 | 4. In a multiple canvas drawing, saving when 2nd canvas doesn't have a filename threw an exception. 8 | 5. Saving multiple canvases lost my work in one of the canvases, perhaps related to #4 9 | 6. Copy of a grouped shape and paste results in a shape that can't be moved/selected. 10 | 7. Notice connector from ModuleManagement to DockPanelSuiteServices double moves when moving the 11 | DockPanelSuiteServices GroupBox, because it appears to have been wired up at least twice. 12 | 13 | TODO: 14 | 15 | 1. Be able to select alternate shape when there is more than one option at the click point 16 | 2. Custom anchor points 17 | 3. Try intersection depth limit of 1 deep 18 | 4. "Regroup", so shapes can be manipulated and then regrouped. 19 | 5. Connector text 20 | 6. Add panels back in that have been removed: Toolbox, property grid, code editor 21 | 7. Saving drawing should update MRU if new filename 22 | 8. Close document (canvas) needs to prompt to save any changes. 23 | 9. Auto-anchor 24 | 10. Force V/H (removes diagonal) 25 | 11. Align selected shapes left/top/right/bottom to leftmost/topmost/rightmost/bottommost 26 | 12. Changing property (like end caps) forces a full page redraw 27 | 13. Need 3 line connector middle-line repositioning 28 | --------------------------------------------------------------------------------