public void SetGuiCoords() { GUICoordsEntity coords = this.tableEntity.GetCoords(); coords.SetPosX(this.Bounds.X); coords.SetPosY(this.Bounds.Y); coords.SetWidth(this.Width); coords.SetHeight(this.Height); }
public void SetChildTable(TableControl te) { childTable = te; join.SetChildTable(te.GetTableEntity()); lastChildX = te.Bounds.X + te.Width / 2; lastChildY = te.Bounds.Y + te.Height / 2; GUICoordsEntity coords = join.GetCoords(); coords.SetPosX(this.Bounds.X); coords.SetPosY(this.Bounds.Y); coords.SetWidth(this.Width); coords.SetHeight(this.Height); }
protected override void OnPaint(PaintEventArgs e) { GUICoordsEntity coords = join.GetCoords(); coords.SetPosX(this.Bounds.X); coords.SetPosY(this.Bounds.Y); coords.SetWidth(this.Width); coords.SetHeight(this.Height); Graphics g = e.Graphics; Rectangle bounds = new Rectangle(0, 0, this.Width - 1, this.Height - 1); if (mainTable != null && childTable != null && IsObjectMoved(mainTable, childTable, thresholdX, thresholdY)) { Parent.Invalidate(this.Bounds, true); g.FillRectangle(new SolidBrush(Color.FromArgb(255, this.BackColor)), bounds); } else { Pen pen; switch (joinType) { case Enums.JoinType.Left: { pen = new Pen(Color.LightBlue, 2); pen.DashStyle = DashStyle.Dash; break; } case Enums.JoinType.Right: { pen = new Pen(Color.LightGreen, 2); pen.DashStyle = DashStyle.Dash; break; } case Enums.JoinType.Inner: { pen = new Pen(Color.Red, 2); pen.DashStyle = DashStyle.Dot; break; } case Enums.JoinType.Full: { pen = new Pen(Color.Black, 2); pen.DashStyle = DashStyle.Solid; break; } default: { pen = new Pen(Color.Black, 2); break; } } AdjustableArrowCap bigArrow = new AdjustableArrowCap(7, 7); pen.CustomEndCap = bigArrow; int startX, startY, finalX, finalY, halfX, halfY; if (mainTable.Bounds == null || childTable.Bounds == null) { mainTable.Bounds = bounds; childTable.Bounds = bounds; } startX = mainTable.Bounds.X + mainTable.Width / 2; startY = mainTable.Bounds.Y + mainTable.Height / 2; finalX = childTable.Bounds.X + childTable.Width / 2; finalY = childTable.Bounds.Y + childTable.Height / 2; halfX = (finalX + startX) / 2; halfY = (finalY + startY) / 2; g.DrawLine(pen, startX, startY, halfX, halfY); bigArrow = new AdjustableArrowCap(1, 1); pen.CustomEndCap = bigArrow; g.DrawLine(pen, halfX, halfY, finalX, finalY); pen.Dispose(); } g.Dispose(); base.OnPaint(e); }