コード例 #1
0
        private void SaveCustomPropertyTypes()
        {
            IResourceStore store = Core.ResourceStore;

            foreach (int propID in _deletedPropIDs)
            {
                Core.DisplayColumnManager.RemoveAvailableColumn(null, store.PropTypes [propID].Name);
                DeleteCustomPropCondition(propID);
                store.PropTypes.Delete(propID);
            }
            foreach (ListViewItem lvItem in _lvTypes.Items)
            {
                PropTypeTag tag = (PropTypeTag)lvItem.Tag;
                if (tag.PropID == -1)
                {
                    string propName = "Custom." + lvItem.Text;
                    int    propID   = store.PropTypes.Register(propName, tag.DataType);
                    store.PropTypes.RegisterDisplayName(propID, lvItem.Text);
                    IResource res = store.FindUniqueResource("PropType", Core.Props.Name, propName);
                    res.SetProp("Custom", 1);

                    Core.DisplayColumnManager.RegisterAvailableColumn(null,
                                                                      new ColumnDescriptor(propName, 100));

                    RegisterCustomPropCondition(propID);
                }
            }
        }
コード例 #2
0
 private void _btnDelete_Click(object sender, EventArgs e)
 {
     if (_lvTypes.SelectedItems.Count > 0)
     {
         ListViewItem lvItem = _lvTypes.SelectedItems [0];
         PropTypeTag  tag    = (PropTypeTag)lvItem.Tag;
         if (tag != null)
         {
             if (tag.PropID >= 0)
             {
                 string        warnText   = ". Are you sure you wish to delete it?";
                 IResourceList resList    = Core.ResourceStore.FindResourcesWithProp(null, tag.PropID);
                 IResourceList conditions = Core.ResourceStore.FindResources(SelectionType.Normal,
                                                                             FilterManagerProps.ConditionResName,
                                                                             "ApplicableToProp", "Custom." + lvItem.Text);
                 DialogResult dr = DialogResult.Yes;
                 if (resList.Count > 0)
                 {
                     if (conditions.Count > 0)
                     {
                         warnText = resList.Count + " resources have the property " + lvItem.Text +
                                    " and " + conditions.Count + " views use it" + warnText;
                     }
                     else
                     {
                         warnText = resList.Count + " resources have the property " + lvItem.Text + warnText;
                     }
                     dr = MessageBox.Show(Core.MainWindow, warnText,
                                          "Delete Custom Property Type", MessageBoxButtons.YesNo);
                 }
                 if (dr == DialogResult.Yes)
                 {
                     _deletedPropIDs.Add(tag.PropID);
                     _lvTypes.Items.Remove(lvItem);
                 }
             }
             else
             {
                 _lvTypes.Items.Remove(lvItem);
             }
         }
     }
 }