private void ProcessingSemanticType(object sender, ProcessEventArgs args) { var stMsg = new HopeRunnerAppDomainInterface.ProcessEventArgs() { FromMembraneTypeName = args.FromMembrane?.GetType()?.FullName, FromReceptorTypeName = args.FromReceptor?.GetType()?.FullName, ToMembraneTypeName = args.ToMembrane.GetType().FullName, ToReceptorTypeName = args.ToReceptor.GetType().FullName, SemanticTypeTypeName = args.SemanticType.GetType().FullName, }; Processing.Fire(this, stMsg); }
protected (string name, FromShapeType shapeType) GetSourceShapeName(HopeRunnerAppDomainInterface.ProcessEventArgs args) { string sourceShapeName; FromShapeType shapeType; if (String.IsNullOrEmpty(args.FromReceptorTypeName)) { sourceShapeName = args.SemanticTypeTypeName; shapeType = FromShapeType.SemanticType; } else { sourceShapeName = args.FromReceptorTypeName; shapeType = FromShapeType.Receptor; } return(sourceShapeName, shapeType); }
public void ProcessMessage(HopeRunnerAppDomainInterface.ProcessEventArgs stMsg) { Processing.Fire(this, stMsg); }
public void Animate(object sender, HopeRunnerAppDomainInterface.ProcessEventArgs args) { IFlowSharpCanvasService canvasService = serviceManager.Get <IFlowSharpCanvasService>(); BaseController canvasController = canvasService.ActiveController; var(sourceShapeName, shapeType) = GetSourceShapeName(args); GraphicElement elSrc = null; GraphicElement elDest = null; lock (this) { elSrc = GetElement(canvasController, sourceShapeName.RightOf('.'), shapeType); elDest = GetElement(canvasController, args.ToReceptorTypeName.RightOf('.'), FromShapeType.Receptor); } if (ShowAnimation) { CarrierShape carrier = new CarrierShape(canvasController.Canvas); carrier.DisplayRectangle = new Rectangle(elSrc.DisplayRectangle.Center().X, elSrc.DisplayRectangle.Center().Y, 10, 10); canvasController.Canvas.FindForm().BeginInvoke(() => { lock (this) { carriers.Add(carrier); canvasController.Insert(carrier); } }); double dx = elDest.DisplayRectangle.Center().X - elSrc.DisplayRectangle.Center().X; double dy = elDest.DisplayRectangle.Center().Y - elSrc.DisplayRectangle.Center().Y; double steps = 20; double subx = dx / steps; double suby = dy / steps; double px = elSrc.DisplayRectangle.Center().X; double py = elSrc.DisplayRectangle.Center().Y; for (int i = 0; i < steps; i++) { Application.DoEvents(); System.Threading.Thread.Sleep(25); px += subx; py += suby; canvasController.Canvas.FindForm().BeginInvoke(() => { lock (this) { Assert.SilentTry(() => canvasController.MoveElementTo(carrier, new Point((int)px, (int)py))); } }); } lock (this) { carriers.Remove(carrier); Assert.SilentTry(() => canvasController.DeleteElement(carrier)); } } if (ShowActivation) { canvasController.Canvas.FindForm().BeginInvoke(() => { lock (this) { elDest.FillBrush.Color = Color.Blue; canvasController.Redraw(elDest); Application.DoEvents(); System.Threading.Thread.Sleep(25); elDest.FillBrush.Color = ((IAgentReceptor)elDest).EnabledColor; canvasController.Redraw(elDest); Application.DoEvents(); System.Threading.Thread.Sleep(25); } }); } }