/// <summary> /// /// </summary> /// <param name="fileTypes"></param> public void Edit(List<AddressTypes> supportedFileTypes) { IDataElement dataElement = Object as IDataElement; IPolicyObjectCollection<IDataItem> dataItemCollection = dataElement.Data as IPolicyObjectCollection<IDataItem>; //current values display name List<string> currentStrings = new List<string>(); foreach (IDataItem dataItem in dataItemCollection) { AddressTypes contextType = (AddressTypes)Enum.Parse(typeof(AddressTypes), dataItem.Value.ToString(), true); currentStrings.Add(contextType.ToString()); } //all values List<string> enumStrings = new List<string>(); foreach (object val in Enum.GetValues(typeof(AddressTypes))) { enumStrings.Add(val.ToString()); } SelectMultiEnumForm form = new SelectMultiEnumForm(currentStrings.ToArray()); form.AllItems = enumStrings.ToArray(); form.Text = Properties.Resources.EMAILADDRESS_FILE; form.SelectedEnumLabel = Properties.Resources.EMAILADDRESS_LOOK; if (DialogResult.OK == form.ShowDialog()) { //data dataItemCollection.Clear(); ICollection selectedCategories = form.SelectedItems; foreach (object item in selectedCategories) { AddressTypes addressType = (AddressTypes) Enum.Parse(typeof(AddressTypes), item.ToString()); dataItemCollection.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(AddressTypes), addressType))); } //display name if (dataItemCollection.Count == enumStrings.Count) { dataElement.DisplayName.Value = Properties.Resources.IDS_EXPRESSION_ADDRESSTYPE_ANY; } else { dataElement.DisplayName.Value = GetDisplayNameFromDataItems(); } Text = dataElement.DisplayName.Value; } }
/// <summary> /// Invokes a dialog to allow the user to edit the data in a file type parameter, /// and commits changes to the data. The list of file types available is restricted to /// those file types in availableFileTypes /// </summary> public void Edit(List<Workshare.Policy.FileType> availableFileTypes) { try { IDataElement dataElement = this.Object as IDataElement; IPolicyObjectCollection<IDataItem> dataItemCollection = dataElement.Data as IPolicyObjectCollection<IDataItem>; //current values display name List<string> currentStrings = new List<string>(); foreach (IDataItem dataItem in dataItemCollection) { Workshare.Policy.FileType fileType = (Workshare.Policy.FileType) Enum.Parse(typeof(Workshare.Policy.FileType), dataItem.Value.ToString(), true); if (fileType == Workshare.Policy.FileType.Selection) continue; if (ConditionDisplayHelper.ShouldDisplayFileType(fileType, this.PolicyType)) currentStrings.Add(ConditionDisplayHelper.ConvertFileType(fileType)); } //all allowed values Array enumTypes = Enum.GetValues(typeof(Workshare.Policy.FileType)); List<string> enumTypesText = new List<string>(); foreach (Workshare.Policy.FileType type in enumTypes) { if (type == Workshare.Policy.FileType.Selection) continue; if ((availableFileTypes != null)) { if (availableFileTypes.Contains(type)) { if (ConditionDisplayHelper.ShouldDisplayFileType(type, this.PolicyType)) enumTypesText.Add(ConditionDisplayHelper.ConvertFileType(type)); } } else { if (ConditionDisplayHelper.ShouldDisplayFileType(type, this.PolicyType)) enumTypesText.Add(ConditionDisplayHelper.ConvertFileType(type)); } } SelectMultiEnumForm form = new SelectMultiEnumForm(currentStrings.ToArray()); form.AllItems = enumTypesText.ToArray(); form.Text = Properties.Resources.FILETYPE_FILE; form.SelectedEnumLabel = Properties.Resources.FILETYPE_LOOK; if (DialogResult.OK == form.ShowDialog()) { //data dataItemCollection.Clear(); ICollection selectedCategories = form.SelectedItems; foreach (object item in selectedCategories) { Workshare.Policy.FileType fileType = ConditionDisplayHelper.ConvertFileType(item.ToString()); dataItemCollection.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), fileType))); Workshare.Policy.FileType[] fileTypesX = ConditionDisplayHelper.GetAdditionalFileType(fileType); foreach (Workshare.Policy.FileType filetypex in fileTypesX) { if (filetypex != Workshare.Policy.FileType.Unknown) { dataItemCollection.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), filetypex))); } } } } } catch (Exception ex) { throw new PolicyDesignerException("Edit failed", ex); } }
/// <summary> /// /// </summary> /// <param name="fileTypes"></param> public void Edit(List<Workshare.Policy.FileType> supportedFileTypes) { IDataElement dataElement = Object as IDataElement; IPolicyObjectCollection<IDataItem> dataItemCollection = dataElement.Data as IPolicyObjectCollection<IDataItem>; //current values display name List<string> currentStrings = new List<string>(); foreach (IDataItem dataItem in dataItemCollection) { ConditionUnitFactory.FileHiddenDataType hiddenDataType = (ConditionUnitFactory.FileHiddenDataType) Enum.Parse(typeof(ConditionUnitFactory.FileHiddenDataType), dataItem.Value.ToString(), true); currentStrings.Add(ConditionDisplayHelper.ConvertHiddenDataType(hiddenDataType)); } //get supported file types if (supportedFileTypes == null) { supportedFileTypes = new List<Workshare.Policy.FileType>(); Array allFileTypes = Enum.GetValues(typeof(Workshare.Policy.FileType)); foreach (Workshare.Policy.FileType type in allFileTypes) { supportedFileTypes.Add(type); } } //available values display names List<ConditionUnitFactory.FileHiddenDataType> enumTypes = FileTypeToHiddenDataMapper.GetHiddenDataForFileType(supportedFileTypes); List<string> enumTypesText = new List<string>(); foreach (ConditionUnitFactory.FileHiddenDataType type in enumTypes) { enumTypesText.Add(ConditionDisplayHelper.ConvertHiddenDataType(type)); } SelectMultiEnumForm form = new SelectMultiEnumForm(currentStrings.ToArray()); form.AllItems = enumTypesText.ToArray(); form.Text = Properties.Resources.HIDDEN_FILE; form.SelectedEnumLabel = Properties.Resources.HIDDEN_LOOK; if (DialogResult.OK == form.ShowDialog()) { //data dataItemCollection.Clear(); ICollection selectedCategories = form.SelectedItems; foreach (object item in selectedCategories) { ConditionUnitFactory.FileHiddenDataType hiddenDataType = ConditionDisplayHelper.ConvertHiddenDataType(item.ToString()); dataItemCollection.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(ConditionUnitFactory.FileHiddenDataType), hiddenDataType))); } //display name if (enumTypesText.Count == dataItemCollection.Count) { dataElement.DisplayName.Value = Properties.Resources.IDS_EXPRESSION_PARAM_HIDDENDATA_ANY; } else { dataElement.DisplayName.Value = GetDisplayNameFromDataItems(); } Text = dataElement.DisplayName.Value; } }