private void _ObjectClassProperty_Change(CswNbtNodeProp Prop, bool Creating) { CswEnumNbtObjectClass OriginalOC = ObjectClassProperty.GetOriginalPropRowValue(CswNbtFieldTypeRuleList.SubFieldName.Text); if (false == string.IsNullOrEmpty(OriginalOC) && OriginalOC != CswNbtResources.UnknownEnum && ObjectClassPropertyValue.ObjectClass != CswEnumNbtObjectClass.GenericClass && ObjectClassPropertyValue.ObjectClass != OriginalOC) { if (OriginalOC == CswEnumNbtObjectClass.GenericClass) { // Convert NodeType //NodeType = CheckVersioning( RelationalNodeType ); IconFileName.Value.FromString(ObjectClassPropertyValue.IconFileName); // Sync properties with new object class // see case 31678 _requiresSync = true; ObjectClassProperty.ServerManaged = true; } else if (_overrideNodeConversionCheck) { _requiresSync = true; } else { throw new CswDniException(CswEnumErrorType.Warning, "Cannot convert this NodeType", "Nodetype " + RelationalNodeType.NodeTypeName + " (" + RelationalNodeType.NodeTypeId + ") cannot be converted because it is not Generic"); } } } // _ObjectClassProperty_Change
} // afterDeleteNode() protected override void afterPopulateProps() { NodeTypeName.SetOnPropChange(_NodeTypeName_Change); NameTemplateAdd.SetOnPropChange(_NameTemplateAdd_Change); ObjectClassProperty.SetOnPropChange(_ObjectClassProperty_Change); // Prevent renaming "Design" nodetypes if (null != RelationalNodeType && null != RelationalNodeType.getObjectClass() && (RelationalNodeType.getObjectClass().ObjectClass == CswEnumNbtObjectClass.DesignNodeTypeClass || RelationalNodeType.getObjectClass().ObjectClass == CswEnumNbtObjectClass.DesignNodeTypeTabClass || RelationalNodeType.getObjectClass().ObjectClass == CswEnumNbtObjectClass.DesignNodeTypePropClass || RelationalNodeType.getObjectClass().ObjectClass == CswEnumNbtObjectClass.DesignSequenceClass)) { NodeTypeName.setReadOnly(true, true); } // Options for 'Object Class' property SortedList <string, CswNbtNodeTypePropListOption> ObjectClassOptions = new SortedList <string, CswNbtNodeTypePropListOption>(); Dictionary <Int32, CswEnumNbtObjectClass> ObjectClassIds = _CswNbtResources.MetaData.getObjectClassIds(); foreach (Int32 ObjectClassId in ObjectClassIds.Keys) { string thisObjectClassName = ObjectClassIds[ObjectClassId]; ObjectClassOptions.Add(thisObjectClassName, new CswNbtNodeTypePropListOption(thisObjectClassName, ObjectClassId.ToString())); } Collection <CswNbtNodeTypePropListOption> SortedOptions = new Collection <CswNbtNodeTypePropListOption>(ObjectClassOptions.Values.ToList()); ObjectClassProperty.Options.Override(SortedOptions); // Only allowed to edit Object Class on Add, or convert Generics if (_CswNbtResources.EditMode != CswEnumNbtNodeEditMode.Add && CswEnumNbtObjectClass.GenericClass != ObjectClassProperty.Value) { ObjectClassProperty.ServerManaged = true; } else { ObjectClassProperty.ServerManaged = false; } // Options for 'Icon File Name' property Dictionary <string, string> IconOptions = new Dictionary <string, string>(); if (null != HttpContext.Current) { DirectoryInfo d = new DirectoryInfo(HttpContext.Current.Request.PhysicalApplicationPath + CswNbtMetaDataObjectClass.IconPrefix16); FileInfo[] IconFiles = d.GetFiles(); foreach (FileInfo IconFile in IconFiles) { IconOptions.Add(IconFile.Name, IconFile.Name); } IconFileName.ImagePrefix = CswNbtMetaDataObjectClass.IconPrefix16; IconFileName.Options = IconOptions; } // Options for 'DeferSearchTo' - all my Relationships or Locations CswNbtMetaDataObjectClass NodeTypePropOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.DesignNodeTypePropClass); CswNbtMetaDataObjectClassProp NTPNodeTypeOCP = NodeTypePropOC.getObjectClassProp(CswNbtObjClassDesignNodeTypeProp.PropertyName.NodeTypeValue); CswNbtMetaDataObjectClassProp NTPFieldTypeOCP = NodeTypePropOC.getObjectClassProp(CswNbtObjClassDesignNodeTypeProp.PropertyName.FieldType); CswNbtView DeferView = new CswNbtView(_CswNbtResources); DeferView.ViewName = "Defer Search To Options"; // my nodetype (me) CswNbtViewRelationship DeferViewRel1 = DeferView.AddViewRelationship(this.ObjectClass, false); DeferViewRel1.NodeIdsToFilterIn.Add(this.NodeId); // and all my properties CswNbtViewRelationship DeferViewRel2 = DeferView.AddViewRelationship(DeferViewRel1, CswEnumNbtViewPropOwnerType.Second, NTPNodeTypeOCP, false); // ... that are relationships DeferView.AddViewPropertyAndFilter(DeferViewRel2, NTPFieldTypeOCP, Conjunction: CswEnumNbtFilterConjunction.And, SubFieldName: CswNbtFieldTypeRuleList.SubFieldName.Value, FilterMode: CswEnumNbtFilterMode.Equals, Value: _CswNbtResources.MetaData.getFieldType(CswEnumNbtFieldType.Relationship).FieldTypeId.ToString()); // ... or locations DeferView.AddViewPropertyAndFilter(DeferViewRel2, NTPFieldTypeOCP, Conjunction: CswEnumNbtFilterConjunction.Or, FilterMode: CswEnumNbtFilterMode.Equals, SubFieldName: CswNbtFieldTypeRuleList.SubFieldName.Value, Value: _CswNbtResources.MetaData.getFieldType(CswEnumNbtFieldType.Location).FieldTypeId.ToString()); DeferSearchTo.OverrideView(DeferView); } //afterPopulateProps()