public void Hide(TableVisual obj) { ZOrder.Remove(obj); if (obj is TableVisual) { Tables.Remove((obj as TableVisual).Table); } }
public void Add(Table table, int incr = 0) { var tv = new TableVisual(this, table); tv.X = OffsetX + incr; tv.Y = OffsetY + incr; Tables.Add(table, tv); ZOrder.Add(tv); }
public void AddRange(IEnumerable <Table> tables) { var i = 0; foreach (var t in tables) { var tv = new TableVisual(this, t, i); Tables.Add(t, tv); ZOrder.Add(tv); i++; } }
public void AddRelated(TableVisual obj) { var tablesToAdd = new List <Table>(); TableVisual tv; foreach (var r in obj.Table.UsedInRelationships) { var tgt = r.FromTable == obj.Table ? r.ToTable : r.FromTable; if (Tables.TryGetValue(tgt, out tv)) { tv.Selected = true; ZOrder.Remove(tv); ZOrder.Insert(0, tv); } else if (!tablesToAdd.Contains(tgt)) { tablesToAdd.Add(tgt); } } for (int i = 0; i < tablesToAdd.Count; i++) { tv = new TableVisual(this, tablesToAdd[i]); var angle = Math.PI * 2 * i / tablesToAdd.Count; var cos = Math.Cos(angle) * (obj.W) * 1.8; var sin = Math.Sin(angle) * (obj.H) * 1.8; tv.X = obj.X + (obj.W / 2) + (int)cos - (tv.W / 2); tv.Y = obj.Y + (obj.H / 2) + (int)sin - (tv.H / 2); tv.Selected = true; Tables.Add(tablesToAdd[i], tv); ZOrder.Insert(0, tv); } obj.Selected = false; }