Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void ProcessMessage(HopeRunnerAppDomainInterface.ProcessEventArgs stMsg)
 {
     Processing.Fire(this, stMsg);
 }
Exemplo n.º 4
0
        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);
                    }
                });
            }
        }