コード例 #1
0
        } // end of CreateQueue

        #endregion

        #region CreateServer

        /// <summary>
        /// Create server drawing object as a rectangle with caption
        /// </summary>
        /// <param name="entity">Server entity</param>
        /// <returns>DrawingRectangleObject visualization object</returns>
        public DrawingObject CreateServer(Entity entity)
        {
            DrawDynamicHoldingEntity newServer = new DrawDynamicHoldingEntity(entity, new Point(300, 0), new Size(40, 40), 30, Colors.LightGray);

            newServer.SetCaption(string.Format("Server: {0}", entity.Identifier), CustomStringAlignment.Left);
            return(newServer);
        } // end of CreateServer
コード例 #2
0
        } // end of CreateClient

        #endregion

        #region CreateQueue

        /// <summary>
        /// Create queue drawing object as a rectangle with caption
        /// </summary>
        /// <param name="entity">Queue entity</param>
        /// <returns>DrawingRectangleObject visualization object</returns>
        public DrawingObject CreateQueue(Entity entity)
        {
            DrawDynamicHoldingEntity queue = new DrawDynamicHoldingEntity(entity, new Point(20, 0), new Size(200, 40), 30, Colors.LightGray);

            queue.SetCaption(string.Format("Queue: {0}", entity.Identifier), CustomStringAlignment.Left);
            return(queue);
        } // end of CreateQueue
        } // end of CreatePatient

        #endregion

        #region CreateMultiplePatientTreatmentFacility

        /// <summary>
        /// Creates a multiple patient treatment facility drawing object
        /// </summary>
        /// <param name="entity">Treatment facility entity</param>
        /// <returns>A drawing object visualizing a multiple patient treatment facility</returns>
        public DrawingObject CreateMultiplePatientTreatmentFacility(Entity entity)
        {
            EntityTreatmentFacility  treatFac     = (EntityTreatmentFacility)entity;
            DrawDynamicHoldingEntity drawTreatFac = new DrawDynamicHoldingEntity(treatFac, treatFac.Position, treatFac.Size, PersonSize, Colors.Gray);

            drawTreatFac.CaptionSize = 24;
            drawTreatFac.SetCaption(treatFac.ToString(), CustomStringAlignment.Left);

            return(drawTreatFac);
        } // end of CreatePatient
コード例 #4
0
        } // end of GetServedStart

        #endregion

        #region DrawHoldingEntity

        /// <summary>
        /// Visualized a dynamic holding entity (in this example a queue) by adding clients in the rectangle,
        /// no overflow handling (will draw infinitely)
        /// </summary>
        /// <param name="holdingEntity"></param>
        public void DrawHoldingEntity(IDynamicHoldingEntity holdingEntity)
        {
            DrawDynamicHoldingEntity drawFoHold = (DrawDynamicHoldingEntity)DrawingObjectPerEntity((Entity)holdingEntity);

            if (drawFoHold.MaxNumberPerson < holdingEntity.HoldedEntities.Count)
            {
                drawFoHold.DrawPersonCount.StringToDraw = holdingEntity.HoldedEntities.Count.ToString();

                if (!DrawingSystem.DrawingObjects.Contains(drawFoHold.DrawPersonCount))
                {
                    DrawingSystem.AddObject(drawFoHold.DrawPersonCount);
                }

                foreach (DrawingObject drawObject in holdingEntity.HoldedEntities.Select(p => DrawingObjectPerEntity(p)))
                {
                    drawObject.SetPosition(drawFoHold.DrawPersonCount.CurrentPosition - new Vector(-30, 0));
                } // end foreach
            }
            else
            {
                if (DrawingSystem.DrawingObjects.Contains(drawFoHold.DrawPersonCount))
                {
                    DrawingSystem.RemoveObject(drawFoHold.DrawPersonCount);
                }

                int    entitiesDrawn = 0;
                double entityW       = drawFoHold.SlotWidth;
                double entityH       = drawFoHold.SlotHeight;

                for (int i = 0; i < drawFoHold.NumberPersonVertical; i++)
                {
                    for (int j = 0; j < drawFoHold.NumberPersonHorizontal; j++)
                    {
                        if (entitiesDrawn == holdingEntity.HoldedEntities.Count)
                        {
                            return;
                        }

                        DrawingObject drawEntity = DrawingObjectPerEntity(holdingEntity.HoldedEntities[entitiesDrawn]);

                        drawEntity.SetPosition(drawFoHold.CurrentPosition + new Vector(j * entityW + drawFoHold.SlotWidth / 2, i * entityH));

                        entitiesDrawn++;
                    } // end for
                }     // end for
            }         // end if
        }             // end of DrawHoldingEntity