/// <summary> /// Generate apropriate icons if source folder is changed. /// </summary> /// <param name="folderName">Name of selected folder</param> /// <param name="defaultValue">Determine default value which should be checked</param> private void HandleChangeFolderAction(string folderName, string defaultValue) { try { DirectoryInfo di = DirectoryInfo.New(DirectoryHelper.CombinePath(FullIconFolderPath, folderName)); string directoryName = di.Name; ArrayList iconList = GetIconsInFolder(di); string defaultIcon = (iconList.Contains(defaultValue)) ? defaultValue : String.Empty; foreach (string fileInfo in iconList) { string path = GetImagePath(IconsFolder + "/" + directoryName + "/" + fileInfo); // Size caption LocalizedLabel lblIcon = new LocalizedLabel { ResourceString = "iconcaption." + fileInfo.Remove(fileInfo.LastIndexOfCSafe('.')), EnableViewState = false }; // Icon image CMSImage imgIcon = new CMSImage { ImageUrl = UIHelper.ResolveImageUrl(path), AlternateText = fileInfo, EnableViewState = false }; // Icon panel CMSPanel pnlIcon = new CMSPanel { CssClass = "iconItem", EnableViewState = false }; pnlIcon.Attributes.Add("onclick", string.Format("SelectItem_{0}(this);SetAction_{0}('select','{1}');RaiseHiddenPostBack_{0}();", ClientID, fileInfo)); pnlIcon.Controls.Add(imgIcon); pnlIcon.Controls.Add(lblIcon); // Check for selected value if ((defaultIcon == String.Empty) || (fileInfo.ToLowerCSafe() == defaultValue.ToLowerCSafe())) { defaultIcon = fileInfo; pnlIcon.AddCssClass("selected"); } // Add controls pnlChild.Controls.Add(pnlIcon); } CurrentIcon = defaultIcon; } catch (Exception ex) { lblError.Text += "[IconSelector.HandleChangeFolderAction]: Error getting icons in selected icon folder. Original exception: " + ex.Message; } CurrentIconFolder = folderName; pnlUpdateIcons.Update(); }
/// <summary> /// Render Folder icon preview HTML. /// </summary> /// <param name="defaultValue">Determine default value which should be checked</param> private void GetFolderIconPreview(string defaultValue) { foreach (string[] folderInfo in GetPredefinedIconFoldersSet()) { string dirName = folderInfo[0]; string iconName = folderInfo[1]; string path = GetImagePath(IconsFolder + "/" + dirName + "/" + iconName); // Icon image CMSImage imgFolder = new CMSImage { ImageUrl = UIHelper.ResolveImageUrl(path), AlternateText = iconName, EnableViewState = false }; // Icon panel CMSPanel pnlFolder = new CMSPanel { EnableViewState = false }; pnlFolder.AddCssClass("iconItem"); pnlFolder.Controls.Add(imgFolder); pnlFolder.Attributes.Add("onclick", string.Format("SelectItem_{0}(this);SetAction_{0}('changefolder','{1}');RaiseHiddenPostBack_{0}();", ClientID, dirName)); // Check for selected value if ((defaultValue == String.Empty) || (dirName.ToLowerCSafe() == defaultValue.ToLowerCSafe())) { defaultValue = dirName; pnlFolder.AddCssClass("selected"); } // Add controls pnlMain.Controls.Add(pnlFolder); } // Actualize value of current icon folder CurrentIconFolder = defaultValue; }