public ColumnTextTool(IDrawingEditor editor, AbstractColumnFigure fig, ITool dt)
     : base(editor, fig, dt)
 {
     _entry = new Gtk.Entry ();
     _entry.HasFrame = false;
     _entry.Alignment = 0.5f;
     _entry.Changed += new System.EventHandler (ChangedHandler);
     _entry.ModifyFont (fig.PangoLayout.FontDescription.Copy ());
 }
        public void removeColumn(AbstractColumnFigure column)
        {
            Model.removeColumn(column);
            this.Remove(column);
            bool tableLevel=false;
            PrimaryKeyConstraintSchema pkConsColumns = null;
            //Lookup for pk at table level at reference table
            foreach (ConstraintSchema cs in Model.TableSchema.Constraints) {
                if (cs is PrimaryKeyConstraintSchema) {
                    foreach(ColumnSchema col in cs.Columns){
                        if(col.Name==column.ColumnModel.Name){
                            pkConsColumns = cs as PrimaryKeyConstraintSchema;
                            tableLevel=true;
                        }
                    }
                    break;
                }
            }
            //Lookup for pk at column level at reference table
            if (pkConsColumns == null) {
                    pkConsColumns = column.ColumnModel.Constraints.GetConstraint (ConstraintType.PrimaryKey) as PrimaryKeyConstraintSchema;
                }

            //synchronize fk,pk metadata
            if(pkConsColumns!=null){
                //notify tables using this column pk as fk about that change
                if (NotifyChanged != null) {
                NotifyChanged (true, false, this, kindOptionality.mandatory, false, null);
                }
                //remove constraint
                pkConsColumns.Columns.Remove(column.ColumnModel);
                if(pkConsColumns.Columns.Count==0){
                    if(tableLevel){
                        Model.TableSchema.Constraints.Remove(pkConsColumns);
                    }else{
                        column.ColumnModel.Constraints.Remove(pkConsColumns);
                    }
                }
            }

            OnFigureChanged (new FigureEventArgs (this, DisplayBox));
        }
 public void removeColumn(AbstractColumnFigure column)
 {
     //TODO: remove all related stuff to column like Fk, Pk constraint, etc.
     TableSchema.Columns.Remove(column.ColumnModel);
     columns.Remove(column);
 }