public ColumnConstraints GenerateDiferences(ColumnConstraints CamposOrigen, ColumnConstraints CamposDestino) { foreach (ColumnConstraint node in CamposDestino) { if (!CamposOrigen.Find(node.Name)) { node.Status = StatusEnum.ObjectStatusType.CreateStatus; CamposOrigen.Parent.Status = StatusEnum.ObjectStatusType.OriginalStatus; CamposOrigen.Parent.Parent.Status = StatusEnum.ObjectStatusType.AlterStatus; CamposOrigen.Add(node); } else { if (!ColumnConstraint.Compare(CamposOrigen[node.Name], node)) { node.Status = StatusEnum.ObjectStatusType.AlterStatus; //Indico que hay un ALTER TABLE, pero sobre la columna, no seteo ningun estado. CamposOrigen[node.Name].Parent.Parent.Status = StatusEnum.ObjectStatusType.AlterStatus; CamposOrigen[node.Name] = node.Clone((Column)CamposOrigen[node.Name].Parent); } } } foreach (ColumnConstraint node in CamposOrigen) { if (!CamposDestino.Find(node.Name)) { node.Status = StatusEnum.ObjectStatusType.DropStatus; CamposOrigen.Parent.Status = StatusEnum.ObjectStatusType.OriginalStatus; CamposOrigen.Parent.Parent.Status = StatusEnum.ObjectStatusType.AlterStatus; } } return(CamposOrigen); }
protected override void OnChildAdded(IWidget child, int index, Point constraint) { List <IWidget> widgets; if (widgetsPerPosition.TryGetValue(constraint, out widgets)) { widgets.Add(child); } else { widgets = new List <IWidget>(1); widgets.Add(child); widgetsPerPosition[constraint] = widgets; } var row = constraint.Y; var column = constraint.X; if (row >= RowCount) { rows = null; } if (column >= ColumnCount) { columns = null; } while (RowConstraints.Count <= row) { RowConstraints.Add(LengthConstraint.Auto); } while (ColumnConstraints.Count <= column) { ColumnConstraints.Add(LengthConstraint.Auto); } }