/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IObjectClass table = utilities.OpenTable(value); if (table != null) { // Populate the subtype parameter with the subtypes from the table and ensure the it's editable. IGPParameterEdit3 subtypeParameter = (IGPParameterEdit3)parameters["in_subtype"]; subtypeParameter.Domain = this.GetSubtypes(table); // Populate the auto updater values for the object class for the specific subtype. IGPValue subtype = utilities.UnpackGPValue(subtypeParameter); if (!subtype.IsEmpty()) { var subtypeCode = subtype.Cast(-1); IMMConfigTopLevel configTopLevel = ConfigTopLevel.Instance; configTopLevel.Workspace = utilities.GetWorkspace(value); var values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureCreate); IGPParameterEdit3 parameter = (IGPParameterEdit3)parameters["in_create"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureUpdate); parameter = (IGPParameterEdit3)parameters["in_update"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureDelete); parameter = (IGPParameterEdit3)parameters["in_delete"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventBeforeFeatureSplit); parameter = (IGPParameterEdit3)parameters["in_before"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureSplit); parameter = (IGPParameterEdit3)parameters["in_split"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventAfterFeatureSplit); parameter = (IGPParameterEdit3)parameters["in_after"]; parameter.Domain = base.CreateDomain <IMMSpecialAUStrategyEx>(values[subtypeCode]); } } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IObjectClass table = utilities.OpenTable(value); if (table != null) { IGPParameterEdit3 parameter = (IGPParameterEdit3)parameters["in_field"]; parameter.Domain = base.GetFields(table); string fieldName = utilities.UnpackGPValue(parameter).GetAsText(); parameter = (IGPParameterEdit3)parameters["in_subtype"]; parameter.Domain = base.GetSubtypes(table); IGPValue subtype = utilities.UnpackGPValue(parameter); if (!subtype.IsEmpty()) { if (!string.IsNullOrEmpty(fieldName)) { var subtypeCode = subtype.Cast(-1); IMMConfigTopLevel configTopLevel = ConfigTopLevel.Instance; configTopLevel.Workspace = utilities.GetWorkspace(value); var values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureCreate, fieldName); parameter = (IGPParameterEdit3)parameters["in_create"]; parameter.Domain = base.CreateDomain <IMMAttrAUStrategy>(values[subtypeCode][fieldName]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureUpdate, fieldName); parameter = (IGPParameterEdit3)parameters["in_update"]; parameter.Domain = base.CreateDomain <IMMAttrAUStrategy>(values[subtypeCode][fieldName]); values = configTopLevel.GetAutoValues(table, mmEditEvent.mmEventFeatureDelete, fieldName); parameter = (IGPParameterEdit3)parameters["in_delete"]; parameter.Domain = base.CreateDomain <IMMAttrAUStrategy>(values[subtypeCode][fieldName]); } } } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { // Retrieve the input parameter value. IGPValue table = utilities.UnpackGPValue(parameters["in_table"]); if (!table.IsEmpty()) { // Create the domain based on the fields on the table. IObjectClass oclass = utilities.OpenTable(table); if (oclass != null) { IFields fields = oclass.Fields; if (fields != null) { IGPCodedValueDomain codedValueDomain = new GPCodedValueDomainClass(); foreach (var o in fields.AsEnumerable()) { codedValueDomain.AddStringCode(o.Name, o.Name); } IGPParameterEdit3 derivedFields = (IGPParameterEdit3)parameters["in_field"]; derivedFields.Domain = (IGPDomain)codedValueDomain; } IGPValue field = utilities.UnpackGPValue(parameters["in_field"]); if (!field.IsEmpty()) { int index = oclass.FindField(field.GetAsText()); IGPCodedValueDomain codedValueDomain = new GPCodedValueDomainClass(); foreach (var o in oclass.GetFieldModelNames(oclass.Fields.Field[index])) { codedValueDomain.AddStringCode(o, o); } IGPParameterEdit3 derivedParameter = (IGPParameterEdit3)parameters["in_field_model_names"]; derivedParameter.Domain = (IGPDomain)codedValueDomain; } } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IObjectClass table = utilities.OpenTable(value); if (table != null) { IGPParameterEdit3 parameter = (IGPParameterEdit3)parameters["in_field"]; parameter.Domain = base.GetFields(table); parameter = (IGPParameterEdit3)parameters["in_subtype"]; parameter.Domain = base.GetSubtypes(table); } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IRelationshipClass relClass = utilities.OpenRelationshipClass(value); if (relClass != null) { var components = this.LoadComponents <IMMRelationshipAUStrategy>(RelationshipAutoupdateStrategy.CatID); IGPParameterEdit3 parameter = (IGPParameterEdit3)parameters["in_create"]; parameter.Domain = base.CreateDomain(components, o => o.Enabled[relClass, mmEditEvent.mmEventRelationshipCreated]); parameter = (IGPParameterEdit3)parameters["in_delete"]; parameter.Domain = base.CreateDomain(components, o => o.Enabled[relClass, mmEditEvent.mmEventRelationshipDeleted]); } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IRelationshipClass relClass = utilities.OpenRelationshipClass(value); if (relClass != null) { IMMConfigTopLevel configTopLevel = ConfigTopLevel.Instance; configTopLevel.Workspace = utilities.GetWorkspace(value); var values = configTopLevel.GetAutoValues(relClass, mmEditEvent.mmEventRelationshipCreated); IGPParameterEdit3 parameter = (IGPParameterEdit3)parameters["in_create"]; parameter.Domain = base.CreateDomain <IMMRelationshipAUStrategy>(values); values = configTopLevel.GetAutoValues(relClass, mmEditEvent.mmEventRelationshipDeleted); parameter = (IGPParameterEdit3)parameters["in_delete"]; parameter.Domain = base.CreateDomain <IMMRelationshipAUStrategy>(values); } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { IObjectClass table = utilities.OpenTable(value); if (table != null) { IGPParameterEdit3 subtypeParameter = (IGPParameterEdit3)parameters["in_subtype"]; subtypeParameter.Domain = this.GetSubtypes(table); var components = this.LoadComponents <IMMSpecialAUStrategyEx>(SpecialAutoUpdateStrategy.CatID); IGPParameterEdit3 prameter = (IGPParameterEdit3)parameters["in_create"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventFeatureCreate]); // Load the "OnUpdate" components for table. prameter = (IGPParameterEdit3)parameters["in_update"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventFeatureUpdate]); // Load the "OnDelete" components for table. prameter = (IGPParameterEdit3)parameters["in_delete"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventFeatureDelete]); // Load the "OnBeforeSplit" components for table. prameter = (IGPParameterEdit3)parameters["in_before"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventBeforeFeatureSplit]); // Load the "OnSplit" components for table. prameter = (IGPParameterEdit3)parameters["in_split"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventFeatureSplit]); // Load the "OnAfterSplit" components for table. prameter = (IGPParameterEdit3)parameters["in_after"]; prameter.Domain = base.CreateDomain(components, o => o.Enabled[table, mmEditEvent.mmEventAfterFeatureSplit]); } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary <string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { // Retrieve the input parameter value. IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { // Create the domain based on the fields on the table. IObjectClass table = utilities.OpenTable(value); if (table != null) { IGPCodedValueDomain codedValueDomain = new GPCodedValueDomainClass(); foreach (var modelName in table.GetClassModelNames()) { codedValueDomain.AddStringCode(modelName, modelName); } IGPParameterEdit3 derivedFields = (IGPParameterEdit3)parameters["in_class_model_names"]; derivedFields.Domain = (IGPDomain)codedValueDomain; } } }
/// <summary> /// Pre validates the given set of values. /// </summary> /// <param name="parameters">The parameters.</param> /// <param name="environmentManager">Provides access to all the current environments and settings of the current client.</param> /// <param name="utilities"> /// The utilities object that provides access to the properties and methods of a geoprocessing /// objects. /// </param> protected override void UpdateParameters(Dictionary<string, IGPParameter> parameters, IGPEnvironmentManager environmentManager, IGPUtilities2 utilities) { // Retrieve the input parameter value. IGPValue value = utilities.UnpackGPValue(parameters["in_table"]); if (!value.IsEmpty()) { // Create the domain based on the fields on the table. IDETable table = value as IDETable; if (table != null) { IFields fields = table.Fields; if (fields != null) { IGPCodedValueDomain codedValueDomain = new GPCodedValueDomainClass(); foreach (var field in fields.AsEnumerable()) codedValueDomain.AddStringCode(field.Name, field.Name); IGPParameterEdit3 derivedFields = (IGPParameterEdit3) parameters["in_fields"]; derivedFields.Domain = (IGPDomain) codedValueDomain; } } } }