public override void RemoveChild(ModelComponent child)
 {
     if (child is Building)
     {
         Building building = child as Building;
         base.RemoveChild(child);
         if (BuildingRemovedEventHandlers != null)
         {
             BuildingAddedEventArgs e = new BuildingAddedEventArgs();
             e.Building = building;
             BuildingRemovedEventHandlers(this, e);
         }
     }
 }
 /// <summary>
 /// Trigger funciton in the event of a new building being added
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void onBuildingAdded(Object sender, BuildingAddedEventArgs e)
 {
     ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance;
     BuildingUI buildingUI = factory.BuildBuildingUI(e.Building);
     buildingUI.DrawBox = new Rectangle((int)e.Building.PointLocation.X * cellDimension, (int)e.Building.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height);
     AddChild(buildingUI);
 }
 private void BuildingRemoved(Object sender, BuildingAddedEventArgs args)
 {
     Control c = (Control)realizedComponents[args.Building];
     c.Dispose();
     realizedComponents.Remove(args.Building);
 }
 private void BuildingAdded(Object sender, BuildingAddedEventArgs args)
 {
     BuildingUI b = new BuildingUI(controller, args.Building);
     b.Location = new Point((int) args.Building.PointLocation.X * PIXELS_PER_COORDINATE, (int)args.Building.PointLocation.Y * PIXELS_PER_COORDINATE);
     b.Size = new Size(args.Building.Width * PIXELS_PER_COORDINATE, args.Building.Height * PIXELS_PER_COORDINATE);
     realizedComponents.Add(args.Building, b);
     mapPanel.Controls.Add(b);
     b.BringToFront();
 }