public void removeItemDrawing(ItemDrawing itemDrawing)
 {
     itemDrawings.Remove(itemDrawing);
     //List<ConnectionDrawing> associatedConnectionDrawings = getConnectionDrawings(itemDrawing);
     panelCanvas.Controls.Remove(itemDrawing.PictureBox);
     removeConnectionDrawings(connectionDrawings);
 }
        public Canvas(Panel panelCanvas, MainForm mainForm)
        {
            this.panelCanvas = panelCanvas;
            this.itemDrawings = new List<ItemDrawing>();
            this.connectionDrawings = new List<ConnectionDrawing>();
            this.mainForm = mainForm;
            this.viewport = mainForm.circuitManager.circuit.Viewport;
            this.panelCanvas.MouseUp += new MouseEventHandler(mouseUp);
            this.panelCanvas.MouseWheel += new MouseEventHandler(mouseWheel);
            this.panelCanvas.Resize += new EventHandler(resize);
            this.panelCanvas.MouseMove += new MouseEventHandler(mouseMove);
            this.panelCanvas.Paint += new PaintEventHandler(paint);
            this.panelCanvas.DragOver += dragOver;
            changeSize(panelCanvas.Width, panelCanvas.Height);

            foreach (Item item in mainForm.circuitManager.circuit.Items)
            {
                ItemDrawing itemDrawing = new ItemDrawing(item, viewport, mainForm);
                itemDrawings.Add(itemDrawing);
            }

            this.lastMousePoint = Point.Empty;

            this.itemPreviewRectangle = new Rectangle(0, 0, viewport.getPixelLength(100), viewport.getPixelLength(100));
        }
 public List<ConnectionDrawing> getConnectionDrawings(ItemDrawing itemDrawing)
 {
     return connectionDrawings;
 }
 private void addItemDrawing(ItemDrawing itemDrawing)
 {
     itemDrawings.Add(itemDrawing);
 }
        private void refreshItems()
        {
            List<Item> itemsThatShouldBeDrawn = viewport.getVisibleItems();
            List<ItemDrawing> itemDrawingsThatShouldBeRemoved = new List<ItemDrawing>();

            foreach (Item itemThatShouldBeDrawn in itemsThatShouldBeDrawn)
            {

                ItemDrawing itemDrawing = getItemDrawing(itemThatShouldBeDrawn);
                if (itemDrawing == null)
                {
                    itemDrawing = new ItemDrawing(itemThatShouldBeDrawn, viewport, mainForm);
                    itemDrawings.Add(itemDrawing);
                }

                if (itemDrawing.IsDrawn)
                {
                    itemDrawing.refresh();
                }
                else
                {
                    panelCanvas.Controls.Add(itemDrawing.PictureBox);
                    panelCanvas.BringToFront();
                    itemDrawing.IsDrawn = true;
                }
            }

            foreach (ItemDrawing itemDrawing in itemDrawings)
            {
                if (itemDrawing.IsDrawn && !itemsThatShouldBeDrawn.Contains(itemDrawing.Item))
                {
                    panelCanvas.Controls.Remove(itemDrawing.PictureBox);
                    itemDrawing.IsDrawn = false;
                }
            }
        }
 private void removeItemDrawing(ItemDrawing itemDrawing)
 {
     itemDrawings.Remove(itemDrawing);
     canvas.Controls.Remove(itemDrawing.PictureBox);
 }
 private void addItemDrawing(ItemDrawing itemDrawing)
 {
     itemDrawings.Add(itemDrawing);
     canvas.Controls.Add(itemDrawing.PictureBox);
 }