예제 #1
0
        private ClassDefinitionCtrl(ClassDefinitionDecorator cls, SchemaDesignContext context, NodeUpdateHandler updater, NodeUpdateHandler idUpdater)
            : this()
        {
            _cls     = cls;
            _context = context;
            txtName.DataBindings.Add("Text", cls, "Name");
            txtDescription.DataBindings.Add("Text", cls, "Description");

            txtType.Text = cls.ClassType.ToString();

            BindIdentityProperties(cls, idUpdater);

            //cmbBaseClass.DisplayMember = "Name";
            //cmbBaseClass.DataSource = _context.GetClassesExceptFor(cls.ParentName, cls.Name);
            //cmbBaseClass.DataBindings.Add("SelectedItem", cls, "BaseClass");

            chkAbstract.DataBindings.Add("Checked", cls, "IsAbstract");
            chkComputed.DataBindings.Add("Checked", cls, "IsComputed");

            cls.PropertyChanged += (s, evt) =>
            {
                if (evt.PropertyName == "Name")
                {
                    updater();
                }
            };

            lstUniqueConstraints.DataSource = cls.GetUniqueConstraints();

            lnkEditUniqueConstraints.Enabled = _context.CanHaveUniqueConstraints;
        }
예제 #2
0
        private void lnkEditUniqueConstraints_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var dlg       = new UniqueConstraintDialog();
            var dataProps = new List <string>();

            foreach (PropertyDefinition p in _cls.Properties)
            {
                if (p.PropertyType == PropertyType.PropertyType_DataProperty)
                {
                    dataProps.Add(p.Name);
                }
            }
            dlg.PropertyNames = dataProps;
            dlg.Constraints   = _cls.GetUniqueConstraints();
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //Rebuild unique constraint collection
                _cls.SetUniqueConstraints(dlg.Constraints);
                lstUniqueConstraints.DataSource = dlg.Constraints;
            }
        }