public override XElement GetWidgetMarkup(ParameterList parameters, string label, HelpDefinition help, string bindingSourceName) { var searchToken = new MediaFileSearchToken(); searchToken.MimeTypes = new string[] { MimeTypeInfo.Gif, MimeTypeInfo.Jpeg, MimeTypeInfo.Png, MimeTypeInfo.Bmp, MimeTypeInfo.Svg }; var folderReference = parameters.GetParameter<DataReference<IMediaFileFolder>>(MediaFileFolderReferenceParameterName); bool selectionRequired = parameters.GetParameter<bool>(RequiredParameterName); if (folderReference != null && folderReference.IsSet) { IMediaFileFolder folder; try { folder = folderReference.Data; if(folder != null) { searchToken.Folder = folder.Path; } } catch (Exception) { string reference = folderReference.Serialize() ?? string.Empty; LoggingService.LogError(LogTitle, "Failed to get media folder by referece: '{0}'".FormatWith(reference)); } } XElement selector = base.BuildBasicWidgetMarkup("DataReferenceTreeSelector", "Selected", label, help, bindingSourceName); selector.Add( new XAttribute("Handle", "Composite.Management.ImageSelectorDialog"), new XAttribute("SearchToken", searchToken.Serialize()), new XAttribute("DataType", TypeManager.SerializeType(typeof(IImageFile))), new XAttribute("NullValueAllowed", (!selectionRequired)) ); return selector; }
public override XElement GetWidgetMarkup(ParameterList parameters, string label, HelpDefinition help, string bindingSourceName) { // TODO: config widget for optional values bool selectionRequired = parameters.GetParameter<bool>(RequiredParameterName); var searchToken = new MediaFileSearchToken(); string extensionStr = parameters.GetParameter<string>("FileExtensionFilter"); if(!extensionStr.IsNullOrEmpty()) { searchToken.Extensions = extensionStr.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } searchToken.Folder = GetFolderPath(parameters.GetParameter<DataReference<IMediaFileFolder>>("MediaFileFolderReference")); searchToken.HideSubfolders = !parameters.GetParameter<bool>("IncludeSubfolders"); XElement selector = base.BuildBasicWidgetMarkup("DataReferenceTreeSelector", "Selected", label, help, bindingSourceName); selector.Add( new XAttribute("Handle", "Composite.Management.EmbeddableMediaSelectorDialog"), new XAttribute("SearchToken", searchToken.Serialize()), new XAttribute("DataType", TypeManager.SerializeType(typeof(IMediaFile))), new XAttribute("NullValueAllowed", (!selectionRequired)) ); return selector; }