public void addNewTable(string name, DatabaseConnectionContext context, ISchemaProvider schemaProvider) { //TODO: improve way of assing last parameter TableModel tableModel = new TableModel (name,context,schemaProvider,true); TableFigure tableFigure = new TableFigure (tableModel,canvas,diagram); tableModel.FigureOwner = tableFigure; view.Drawing.Add (tableFigure); System.Console.WriteLine("added table"); foreach ( IFigure fig in view.Drawing.FiguresEnumerator){ System.Console.WriteLine("figura"+fig.ToString()); } diagram.AddTable(tableFigure); }
public void UpdateOptionalityFk(TableModel sourceTable, kindOptionality optionality) { Model.UpdateOptionalityFk (sourceTable, optionality); }
public TableFigure(TableModel metadata, ModelerCanvas ownerCanvas, DatabaseModel databaseModel) { Model = metadata; canvas = ownerCanvas; dbModel = databaseModel; _width = 100; _height = 100; _showingTriggers = false; _showingIndexes = false; selectionColumnMode = false; populateTable (); syncFigureMetrics (); iconsWidth = IconFactory.GetIcon ("Resources.primarykey.png").Width * 2; //TODO: iconfactory should select largest icon and then add not just add first DisplayBox = new RectangleD (0.0, 0.0, _width, _height); OnFigureChanged (new FigureEventArgs (this, DisplayBox)); }
private void UpdateOptionalityFk(TableModel sourceTable, kindOptionality optionality) { if(figEnd!=null){ figEnd.UpdateOptionalityFk(sourceTable, optionality); } }
public void UpdateOptionalityFk(TableModel sourceTable, kindOptionality optionality) { foreach(ConstraintSchema cs in TableSchema.Constraints){ if(cs is ForeignKeyConstraintSchema && (cs as ForeignKeyConstraintSchema).ReferenceTableName==sourceTable.Name){ ForeignKeyConstraintSchema fkc = (cs as ForeignKeyConstraintSchema); foreach(ColumnSchema fkCol in fkc.Columns){ if(optionality==kindOptionality.optional) fkCol.IsNullable=false; else fkCol.IsNullable=true; } } } }
//TODO: change for IEnumerable? public List<ColumnFkFigure> addFkConstraint(TableModel source, kindOptionality optionality) { List<ColumnFkFigure> items = new List<ColumnFkFigure> (); ForeignKeyConstraintSchema fkc = new ForeignKeyConstraintSchema (source.TableSchema.SchemaProvider); fkc.ReferenceTableName = source.Name; fkc.ReferenceTable = source.TableSchema; fkc.Name = source.Name + "_" + TableSchema.Name + "_fk"; foreach (ColumnFigure col in source.columns) { if (col.PrimaryKey) { ColumnSchema fkCol = new ColumnSchema (col.ColumnModel); //Remove column level pk if any ConstraintSchema tmp=null; foreach(ConstraintSchema cs in fkCol.Constraints) if(cs is PrimaryKeyConstraintSchema) tmp=cs; if(tmp!=null) fkCol.Constraints.Remove(tmp); //TODO: create a function that just get three letters from table name using a standard fkCol.Name = fkCol.Name + "_" + (col.ColumnModel.Parent as TableSchema).Name + "_fk"; //TODO: should be checked that this name doesn't exists at table yet fkCol.Parent = TableSchema; if(optionality==kindOptionality.optional) fkCol.IsNullable=false; else fkCol.IsNullable=true; fkc.Columns.Add (fkCol); TableSchema.Columns.Add (fkCol); fkc.ReferenceColumns.Add (col.ColumnModel); Console.WriteLine("NO JODA 555 666 CREE Fk figure con:" + " Tabla: "+(col.ColumnModel.Parent as TableSchema).Name +"." +col.ColumnModel.Name); ColumnFkFigure fk = new ColumnFkFigure (fkCol, FigureOwner, col.ColumnModel.Name , (col.ColumnModel.Parent as TableSchema).Name); this.columns.Add (fk); items.Add (fk); } } if(fkc.Columns.Count > 0){ TableSchema.Constraints.Add (fkc); return items; }else return null; }
public void addTable(string name, DatabaseConnectionContext context, ISchemaProvider schemaProvider, bool create) { TableModel tableModel = new TableModel(name,context,schemaProvider,false); TableFigure tableFigure = new TableFigure (tableModel,canvas,diagram); tableModel.FigureOwner=tableFigure; view.Drawing.Add (tableFigure); System.Console.WriteLine("added table22222"); foreach ( IFigure fig in view.Drawing.FiguresEnumerator){ System.Console.WriteLine("figura"+fig.ToString()); } diagram.AddTable(tableFigure); }