コード例 #1
0
        protected virtual void AddClicked(object sender, System.EventArgs e)
        {
            PrimaryKeyConstraintSchema pk =
                schemaProvider.CreatePrimaryKeyConstraintSchema(
                    string.Concat(
                        table.Name,
                        "_",
                        AddinCatalog.GetString("pk_new")));
            int index = 1;

            while (constraints.Contains(pk.Name))
            {
                pk.Name = string.Concat(table.Name, "_", AddinCatalog.GetString("pk_new"), (index++).ToString());
            }
            constraints.Add(pk);
            AddConstraint(pk);
            EmitContentChanged();
        }
コード例 #2
0
        private void PkToggled(object sender, ToggledArgs args)
        {
            TreeIter iter;

            if (storeColumns.GetIterFromString(out iter, args.Path))
            {
                bool val = (bool)storeColumns.GetValue(iter, colPKIndex);
                storeColumns.SetValue(iter, colPKIndex, !val);
                if (val)
                {
                    // Remove Constraint
                    ColumnSchema     column        = storeColumns.GetValue(iter, colObjIndex) as ColumnSchema;
                    ConstraintSchema delConstraint = null;
                    foreach (ConstraintSchema c in constraints)
                    {
                        if (c is PrimaryKeyConstraintSchema)
                        {
                            foreach (ColumnSchema col in c.Columns)
                            {
                                if (col.Name == column.Name)
                                {
                                    c.Columns.Remove(col);
                                    delConstraint = c;
                                    break;
                                }
                            }
                        }
                    }
                    // If PK doesn't have any columns, delete it.
                    if (delConstraint != null)
                    {
                        if (delConstraint.Columns.Count < 1)
                        {
                            constraints.Remove(delConstraint);
                        }
                    }
                }
                else
                {
                    // Add Constraint
                    ColumnSchema column = storeColumns.GetValue(iter, colObjIndex) as ColumnSchema;
                    // Add the column for an existing PK
                    foreach (ConstraintSchema c in constraints)
                    {
                        if (c is PrimaryKeyConstraintSchema)
                        {
                            c.Columns.Add(column);
                            // Fire the Primary Key Changed Event to tell the other widget that "Primary Key Constraint"
                            // are changed in the Column Editor.
                            OnPrimaryKeyChanged(this, new EventArgs());
                            EmitContentChanged();
                            return;
                        }
                    }
                    PrimaryKeyConstraintSchema pk =
                        schemaProvider.CreatePrimaryKeyConstraintSchema(string.Concat(
                                                                            table.Name, "_",
                                                                            AddinCatalog.GetString("pk_new")
                                                                            ));
                    pk.Columns.Add(column);
                    constraints.Add(pk);
                }
                OnPrimaryKeyChanged(this, new EventArgs());
                EmitContentChanged();
            }
        }