Exemple #1
0
        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
Exemple #2
0
        } // 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()