//TODO: context really needed in every table (I think not then remove later)
        // this should be available fro all tables of the same diagram without taking care if new or altered
        /*	public TableModel (string name, DatabaseConnectionContext context, ISchemaProvider schemaProvider)
        {
            /*tableName = name;
            tableContext = context;
            tableSchemaProvider = schemaProvider;
            tableSchema = tableSchemaProvider.CreateTableSchema (name);
            alteredTable=false;
            newTable=false;
            Initialize ();
            //TODO: delete this only for test purpose
            indexes.Add (new Index ("DummyIndex2"));
            triggers.Add (new Trigger ("DummyTrigger1"));
        }
        */
        public TableModel(string name, DatabaseConnectionContext context, ISchemaProvider schemaProvider, bool create)
        {
            //TableSchema newSchema;
            modelTableName = name;
            //TODO: remove this attribute use table model
            newTable = create;
            alteredTable = false;
            tableContext = context;
            tableSchemaProvider = schemaProvider;
            tableSchema = schemaProvider.CreateTableSchema (name);
            Initialize ();
            //Add a first column
            if (create) {
                ColumnSchema columnSchema = new ColumnSchema (tableSchemaProvider, tableSchema, "newColumn");
                if (storeTypes.Count > 0) {
                    columnSchema.DataTypeName = storeTypes.Keys[0];
                    columns.Add (new ColumnFigure (columnSchema, storeTypes, null));
                    tableSchema.Columns.Add (columnSchema);
                } else {
                    throw new NotImplementedException ();
                }
            }
            /*ColumnSchema column = new ColumnSchema (schemaProvider, tableSchema, name);*/
            //TODO: delete this only for test purpose
            indexes.Add (new Index ("NotImplementedYet"));
            triggers.Add (new Trigger ("NotImplementedYet"));

            System.Console.WriteLine ("Tiene Xs: " + tableSchema.Columns.Count);

            System.Console.WriteLine (schemaProvider.GetTableCreateStatement (tableSchema));
        }