/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> /// <returns>Image URL</returns> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; string imgUrl = string.Empty; if (dr != null) { int userId = ValidationHelper.GetInteger(dr["CategoryUserID"], 0); int siteId = ValidationHelper.GetInteger(dr["CategorySiteID"], 0); if (userId > 0) { // Use icon for personal category imgUrl = PersonalCategoryIcon; } else { // Use icon for site category imgUrl = (siteId > 0) ? SiteCategoryIcon : GlobalCategoryIcon; } } else { // Use default icon imgUrl = "Objects/CMS_Category/list.png"; } return(GetImageUrl(imgUrl)); }
/// <summary> /// Gets image handler. /// </summary> /// <param name="node">Tree node</param> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; if (dr != null) { // Get icon path string imgUrl = ValidationHelper.GetString(dr["ElementIconPath"], ""); if (!String.IsNullOrEmpty(imgUrl)) { if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = UIHelper.GetImagePath(this.Page, imgUrl, false, false); // Try to get default icon if requested icon not found if (!FileHelper.FileExists(imgUrl)) { imgUrl = GetImageUrl("CMSModules/list.png"); } } return(imgUrl); } } return(GetImageUrl("CMSModules/list.png")); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> protected string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLowerCSafe(); } // Return image path switch (objectType) { case "widget": return(URLHelper.ResolveUrl(GetImageUrl("Objects/CMS_Widget/list.png"))); case "widgetcategory": return(URLHelper.ResolveUrl(GetImageUrl("Objects/CMS_WidgetCategory/list.png"))); } } return(String.Empty); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> protected string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLowerCSafe(); } // Return image path if (objectType == "pagetemplate") { // Set special icon for ad-hoc page template if (!ValidationHelper.GetBoolean(dr["Parameter"], true)) { return(GetImageUrl("Objects/CMS_PageTemplate/adhoc.png")); } return(GetImageUrl("Objects/CMS_PageTemplate/tree.png")); } else if (objectType == "pagetemplatecategory") { return(GetImageUrl("Objects/CMS_PageTemplateCategory/list.png")); } } return(String.Empty); }
/// <summary> /// Gets image handler. /// </summary> /// <param name="node">Tree node</param> protected string treeElem_OnGetImage(UniTreeNode node) { UIElementInfo uiElement = new UIElementInfo((DataRow)node.ItemData); if (uiElement != null) { // Get icon path string imgUrl = uiElement.ElementIconPath; if (!String.IsNullOrEmpty(imgUrl)) { if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = UIHelper.GetImagePath(Page, imgUrl, false, false); // Try to get default icon if requested icon not found if (!FileHelper.FileExists(imgUrl)) { imgUrl = GetImageUrl("CMSModules/list.png"); } } return(UIHelper.ResolveImageUrl(imgUrl)); } } return(GetImageUrl("CMSModules/list.png")); }
/// <summary> /// Gets tree node icon /// </summary> /// <param name="node">Tree node</param> /// <param name="data">Source data</param> private string GetNodeIconMarkup(UniTreeNode node, DataRow data) { string imagePath = null; string iconClass = null; // Get image path from data if (!string.IsNullOrEmpty(ProviderObject.ImageColumn)) { imagePath = ValidationHelper.GetString(data[ProviderObject.ImageColumn], null); } // Get icon class from data if (!string.IsNullOrEmpty(ProviderObject.IconClassColumn)) { iconClass = ValidationHelper.GetString(data[ProviderObject.IconClassColumn], null); } // Get image or icon from external event if (OnGetImage != null) { // Set node as event argument var args = new UniTreeImageArgs { TreeNode = node }; OnGetImage.StartEvent(args); // Get image or icon class if (string.IsNullOrEmpty(imagePath) && !string.IsNullOrEmpty(args.ImagePath)) { imagePath = args.ImagePath; } else if (string.IsNullOrEmpty(iconClass) && !string.IsNullOrEmpty(args.IconClass)) { iconClass = args.IconClass; } } // If no definition found, use default image path if (string.IsNullOrEmpty(imagePath) && string.IsNullOrEmpty(iconClass)) { // Image path has higher priority if (!string.IsNullOrEmpty(DefaultImagePath)) { imagePath = DefaultImagePath; } else if (!string.IsNullOrEmpty(DefaultIconClass)) { iconClass = DefaultIconClass; } } return(UIHelper.GetAccessibleImageMarkup(Page, iconClass, imagePath, size: FontIconSizeEnum.Standard)); }
/// <summary> /// Reloads data. /// </summary> public override void ReloadData() { if (!StopProcessing && (ProviderObject != null)) { TreeView.Nodes.Clear(); TreeView.EnableViewState = false; // Add custom root node if (CustomRootNode != null) { if (!EnableRootAction) { CustomRootNode.SelectAction = TreeNodeSelectAction.None; } TreeView.Nodes.Add(CustomRootNode); RaiseOnPopulateRootNode(); } else { if (MultipleRoots) { // Load all roots DataSet ds = ProviderObject.LoadData(ProviderObject.ParentIDColumn + " IS NULL"); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { // Add all results as roots UniTreeNode rootNode = new UniTreeNode(ProviderObject, ""); rootNode.ItemData = dr; TreeView.Nodes.Add(CreateNode(rootNode)); } } } else // Add root node from provider if (ProviderObject.RootNode != null) { mRootNode = CreateNode((UniTreeNode)ProviderObject.RootNode); RaiseOnNodeCreated((UniTreeNode)ProviderObject.RootNode, ref mRootNode); mRootNode.Expanded = true; TreeView.Nodes.Add(mRootNode); } } } }
/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> /// <returns>Image URL</returns> protected string treeElem_OnGetImage(UniTreeNode node) { File f = new File(); DataRow dr = node.ItemData as DataRow; string imgUrl = string.Empty; try { if (dr != null) { // Get icon path imgUrl = ValidationHelper.GetString(dr["CategoryIconPath"], ""); if (!String.IsNullOrEmpty(imgUrl)) { if (CMS.IO.Path.IsPathRooted(imgUrl)) { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } else if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = GetImagePath(imgUrl); } else { return(imgUrl); } } else { // If requested icon not found try to get icon as previous version did string categoryName = ValidationHelper.GetString(dr["CategoryName"], ""); imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/" + categoryName.Replace(".", "_") + "/list.png"); } } // Get default icon if requested icon not found if (!f.Exists(Server.MapPath(imgUrl))) { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } } catch { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } return(URLHelper.ResolveUrl(imgUrl)); }
/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> /// <returns>Image URL</returns> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; // Use default icon string imgUrl = ""; if (dr != null) { bool personal = ValidationHelper.GetInteger(dr["CategoryUserID"], 0) > 0; imgUrl = personal ? PersonalCategoriesImageUrl : CategoriesImageUrl; } if (string.IsNullOrEmpty(imgUrl)) { return(null); } return(URLHelper.ResolveUrl(UIHelper.GetImagePath(Page, imgUrl, true, false))); }
/// <summary> /// Returns the set of child nodes for the specified node. /// </summary> /// <param name="nodeValue">Parent node value in the format "NodeID_ObjectType"</param> /// <param name="nodeDepth">Specified level</param> new public List <UniTreeNode> GetChildNodes(string nodeValue) { int nodeId = ValidationHelper.GetInteger(nodeValue, 0); List <UniTreeNode> childNodes = new List <UniTreeNode>(); foreach (Metric metric in Tree.Rows) { if (metric.MetricParent != null && metric.MetricParent.MetricId == nodeId) { UniTreeNode node = new UniTreeNode(this, metric.MetricPath) { ItemData = metric }; childNodes.Add(node); } } return(childNodes); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLower(); } // Return image path if (objectType == "webpart") { return(GetImageUrl("Objects/CMS_WebPart/tree.png")); } else if (objectType == "webpartcategory") { return(GetImageUrl("Objects/CMS_WebPartCategory/list.png")); } } return(String.Empty); }
/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; string imgUrl = string.Empty; if (dr != null) { int userId = ValidationHelper.GetInteger(dr["CategoryUserID"], 0); int siteId = ValidationHelper.GetInteger(dr["CategorySiteID"], 0); if (userId > 0) { // Use icon for personal category imgUrl = PersonalCategoryIcon; } else { if (siteId > 0) { // Use icon for site category imgUrl = SiteCategoryIcon; } else { // Use icon for global category imgUrl = GlobalCategoryIcon; } } } else { // Use default icon imgUrl = "Objects/CMS_Category/list.png"; } return GetImageUrl(imgUrl); }
/// <summary> /// Creates node. /// </summary> /// <param name="uniNode">Node to create</param> protected TreeNode CreateNode(UniTreeNode uniNode) { DataRow dr = (DataRow)uniNode.ItemData; if (dr != null) { TreeNode node = new TreeNode(); // Get data int childNodesCount = 0; if (!string.IsNullOrEmpty(ProviderObject.ChildCountColumn)) { childNodesCount = ValidationHelper.GetInteger(dr[ProviderObject.ChildCountColumn], 0); } // Node ID int nodeID = 0; if (!string.IsNullOrEmpty(ProviderObject.IDColumn)) { nodeID = ValidationHelper.GetInteger(dr[ProviderObject.IDColumn], 0); } // Node value string nodeValue = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ValueColumn)) { nodeValue = nodeID + "_" + ValidationHelper.GetString(dr[ProviderObject.ValueColumn], ""); } string objectType = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ObjectTypeColumn)) { objectType = ValidationHelper.GetString(dr[ProviderObject.ObjectTypeColumn], ""); // Add object type to value nodeValue += "_" + objectType; } // Display name string displayName = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.DisplayNameColumn)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(dr[ProviderObject.DisplayNameColumn], ""))); } // Path string nodePath = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.PathColumn)) { nodePath = HTMLHelper.HTMLEncode(ValidationHelper.GetString(dr[ProviderObject.PathColumn], "")).ToLower(); } // Parent ID int parentID = 0; if (!string.IsNullOrEmpty(ProviderObject.ParentIDColumn)) { parentID = ValidationHelper.GetInteger(dr[ProviderObject.ParentIDColumn], 0); } // Parameter string parameter = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ParameterColumn)) { parameter = HTMLHelper.HTMLEncode(ValidationHelper.GetString(dr[ProviderObject.ParameterColumn], "")).ToLower(); } int nodeLevel = 0; if (!String.IsNullOrEmpty(ProviderObject.LevelColumn)) { nodeLevel = ValidationHelper.GetInteger(dr[ProviderObject.LevelColumn], 0); } node.NavigateUrl = URLRewriter.CurrentURL + "#"; // Set value node.Value = nodeValue; // Get image html tag string imgPath = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ImageColumn)) { imgPath = ResolveUrl(ValidationHelper.GetString(dr[ProviderObject.ImageColumn], "")); } if (string.IsNullOrEmpty(imgPath)) { imgPath = ResolveUrl(DefaultImagePath); } if (OnGetImage != null) { imgPath = ResolveUrl(OnGetImage(uniNode)); } string imgTag = string.Empty; if (!string.IsNullOrEmpty(imgPath)) { imgTag = "<img class=\"TreeItemImage\" alt=\"" + ResHelper.LocalizeString(displayName) + "\" src=\"" + HTMLHelper.HTMLEncode(imgPath) + "\"/>"; } // Set text string text = null; string selectedItem = ValidationHelper.GetString(SelectedItem, ""); string selectPathLowered = SelectPath.ToLower(); if (nodeValue.Equals(selectedItem, StringComparison.InvariantCultureIgnoreCase) || ((selectPathLowered == nodePath) && string.IsNullOrEmpty(selectedItem))) { text = ReplaceMacros(SelectedNodeTemplate, nodeID, childNodesCount, displayName, imgTag, parentID, objectType, parameter); } else { text = ReplaceMacros(NodeTemplate, nodeID, childNodesCount, displayName, imgTag, parentID, objectType, parameter); } if (this.UsePostBack) { text = "<span onclick=\"" + ControlsHelper.GetPostBackEventReference(this, nodeValue + ";" + nodePath) + "\">" + text + "</span>"; } node.Text = text; // Set populate node automatically if (childNodesCount != 0) { node.PopulateOnDemand = true; } // Expand tree if (this.ExpandAll) { node.Expanded = true; } else if (this.CollapseAll) { node.Expanded = false; } else { //// Handle expand path if (nodePath != "/") { nodePath += "/"; } string expandPathLowered = ExpandPath.ToLower(); // SelectPath property if (selectPathLowered.StartsWith(nodePath) && (selectPathLowered != nodePath)) { node.Expanded = true; } // ExpandPath property else if ((expandPathLowered.StartsWith(nodePath))) { node.Expanded = true; } // Path expanded by user else if (selectedPath.StartsWith(nodePath) && (selectedPath != nodePath)) { node.Expanded = true; } else { node.Expanded = false; } } // Expand level if ((this.ExpandLevel != 0) && !this.CollapseAll) { node.Expanded = nodeLevel <= this.ExpandLevel; } return(node); } return(null); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> private string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLowerCSafe(); } // Return image path if (objectType == "report") { return GetImageUrl("Objects/Reporting_Report/object.png"); } else if (objectType == "reportcategory") { return GetImageUrl("Objects/Reporting_ReportCategory/list_tree.png"); } } return String.Empty; }
/// <summary> /// Creates node. /// </summary> /// <param name="uniNode">Node to create</param> protected TreeNode CreateNode(UniTreeNode uniNode) { DataRow dr = (DataRow)uniNode.ItemData; if (dr != null) { TreeNode node = new TreeNode(); // Get data int childNodesCount = 0; if (!string.IsNullOrEmpty(ProviderObject.ChildCountColumn)) { childNodesCount = ValidationHelper.GetInteger(dr[ProviderObject.ChildCountColumn], 0); } // Node ID int nodeID = 0; if (!string.IsNullOrEmpty(ProviderObject.IDColumn)) { nodeID = ValidationHelper.GetInteger(dr[ProviderObject.IDColumn], 0); } // Node value string nodeValue = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ValueColumn)) { nodeValue = nodeID + "_" + ValidationHelper.GetString(dr[ProviderObject.ValueColumn], ""); } string objectType = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ObjectTypeColumn)) { objectType = ValidationHelper.GetString(dr[ProviderObject.ObjectTypeColumn], ""); // Add object type to value nodeValue += "_" + objectType; } // Display name string displayName = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.DisplayNameColumn)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(dr[ProviderObject.DisplayNameColumn], ""))); } // Path string nodePath = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.PathColumn)) { nodePath = HTMLHelper.HTMLEncode(ValidationHelper.GetString(dr[ProviderObject.PathColumn], "")).ToLower(); } // Parent ID int parentID = 0; if (!string.IsNullOrEmpty(ProviderObject.ParentIDColumn)) { parentID = ValidationHelper.GetInteger(dr[ProviderObject.ParentIDColumn], 0); } // Parameter string parameter = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ParameterColumn)) { parameter = HTMLHelper.HTMLEncode(ValidationHelper.GetString(dr[ProviderObject.ParameterColumn], "")).ToLower(); } int nodeLevel = 0; if (!String.IsNullOrEmpty(ProviderObject.LevelColumn)) { nodeLevel = ValidationHelper.GetInteger(dr[ProviderObject.LevelColumn], 0); } node.NavigateUrl = URLRewriter.CurrentURL + "#"; // Set value node.Value = nodeValue; // Get image html tag string imgPath = string.Empty; if (!string.IsNullOrEmpty(ProviderObject.ImageColumn)) { imgPath = ResolveUrl(ValidationHelper.GetString(dr[ProviderObject.ImageColumn], "")); } if (string.IsNullOrEmpty(imgPath)) { imgPath = ResolveUrl(DefaultImagePath); } if (OnGetImage != null) { imgPath = ResolveUrl(OnGetImage(uniNode)); } string imgTag = string.Empty; if (!string.IsNullOrEmpty(imgPath)) { imgTag = "<img class=\"TreeItemImage\" alt=\"" + ResHelper.LocalizeString(displayName) + "\" src=\"" + HTMLHelper.HTMLEncode(imgPath) + "\"/>"; } // Set text string text = null; string selectedItem = ValidationHelper.GetString(SelectedItem, ""); string selectPathLowered = SelectPath.ToLower(); if (nodeValue.Equals(selectedItem, StringComparison.InvariantCultureIgnoreCase) || ((selectPathLowered == nodePath) && string.IsNullOrEmpty(selectedItem))) { text = ReplaceMacros(SelectedNodeTemplate, nodeID, childNodesCount, displayName, imgTag, parentID, objectType, parameter); } else { text = ReplaceMacros(NodeTemplate, nodeID, childNodesCount, displayName, imgTag, parentID, objectType, parameter); } if (this.UsePostBack) { text = "<span onclick=\"" + ControlsHelper.GetPostBackEventReference(this, nodeValue + ";" + nodePath) + "\">" + text + "</span>"; } node.Text = text; // Set populate node automatically if (childNodesCount != 0) { node.PopulateOnDemand = true; } // Expand tree if (this.ExpandAll) { node.Expanded = true; } else if (this.CollapseAll) { node.Expanded = false; } else { //// Handle expand path if (nodePath != "/") { nodePath += "/"; } string expandPathLowered = ExpandPath.ToLower(); // SelectPath property if (selectPathLowered.StartsWith(nodePath) && (selectPathLowered != nodePath)) { node.Expanded = true; } // ExpandPath property else if ((expandPathLowered.StartsWith(nodePath))) { node.Expanded = true; } // Path expanded by user else if (selectedPath.StartsWith(nodePath) && (selectedPath != nodePath)) { node.Expanded = true; } else { node.Expanded = false; } } // Expand level if ((this.ExpandLevel != 0) && !this.CollapseAll) { node.Expanded = nodeLevel <= this.ExpandLevel; } return node; } return null; }
/// <summary> /// Gets image handler. /// </summary> /// <param name="node">Tree node</param> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; if (dr != null) { // Get icon path string imgUrl = ValidationHelper.GetString(dr["ElementIconPath"], ""); if (!String.IsNullOrEmpty(imgUrl)) { if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = UIHelper.GetImagePath(this.Page, imgUrl, false, false); // Try to get default icon if requested icon not found if (!FileHelper.FileExists(imgUrl)) { imgUrl = GetImageUrl("CMSModules/list.png"); } } return imgUrl; } } return GetImageUrl("CMSModules/list.png"); }
/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> /// <returns>Image URL</returns> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; // Use default icon string imgUrl = ""; if (dr != null) { bool personal = ValidationHelper.GetInteger(dr["CategoryUserID"], 0) > 0; imgUrl = personal ? PersonalCategoriesImageUrl : CategoriesImageUrl; } if (string.IsNullOrEmpty(imgUrl)) { return null; } return URLHelper.ResolveUrl(UIHelper.GetImagePath(Page, imgUrl, true, false)); }
/// <summary> /// Creates node. /// </summary> /// <param name="uniNode">Node to create</param> protected TreeNode CreateNode(UniTreeNode uniNode) { var data = (DataRow)uniNode.ItemData; if (data == null) { return(null); } TreeNode node = new TreeNode(); // Get data int childNodesCount = 0; if (!String.IsNullOrEmpty(ProviderObject.ChildCountColumn)) { childNodesCount = ValidationHelper.GetInteger(data[ProviderObject.ChildCountColumn], 0); } // Node ID int nodeId = 0; if (!String.IsNullOrEmpty(ProviderObject.IDColumn)) { nodeId = ValidationHelper.GetInteger(data[ProviderObject.IDColumn], 0); } // Node value string nodeValue = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ValueColumn)) { nodeValue = nodeId.ToString(); } string objectType = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ObjectTypeColumn)) { objectType = ValidationHelper.GetString(data[ProviderObject.ObjectTypeColumn], ""); // Add object type to value nodeValue += "_" + objectType; } // Caption string displayName = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.CaptionColumn)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(data[ProviderObject.CaptionColumn], ""))); } // Display name, if caption is empty (or non existent) if (!String.IsNullOrEmpty(ProviderObject.DisplayNameColumn) && String.IsNullOrEmpty(displayName)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(data[ProviderObject.DisplayNameColumn], ""))); } // Path string nodePath = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.PathColumn)) { nodePath = HTMLHelper.HTMLEncode(ValidationHelper.GetString(data[ProviderObject.PathColumn], "")).ToLowerCSafe(); } // Parent ID int parentId = 0; if (!String.IsNullOrEmpty(ProviderObject.ParentIDColumn)) { parentId = ValidationHelper.GetInteger(data[ProviderObject.ParentIDColumn], 0); } // Parameter string parameter = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ParameterColumn)) { parameter = HTMLHelper.HTMLEncode(ValidationHelper.GetString(data[ProviderObject.ParameterColumn], "")).ToLowerCSafe(); } int nodeLevel = 0; if (!String.IsNullOrEmpty(ProviderObject.LevelColumn)) { nodeLevel = ValidationHelper.GetInteger(data[ProviderObject.LevelColumn], 0); } // Set navigation URL to current page node.NavigateUrl = RequestContext.CurrentURL + "#"; // Set value node.Value = nodeValue; // Get tree icon var treeIcon = GetNodeIconMarkup(uniNode, data); // Set text string text; string selectedItem = ValidationHelper.GetString(SelectedItem, ""); string selectPathLowered = SelectPath.ToLowerCSafe(); if (nodeValue.EqualsCSafe(selectedItem, true) || ((selectPathLowered == nodePath) && String.IsNullOrEmpty(selectedItem))) { text = ReplaceMacros(SelectedNodeTemplate, nodeId, childNodesCount, displayName, treeIcon, parentId, objectType, parameter); } else { text = ReplaceMacros(NodeTemplate, nodeId, childNodesCount, displayName, treeIcon, parentId, objectType, parameter); } if (UsePostBack) { text = "<span onclick=\"" + ControlsHelper.GetPostBackEventReference(this, nodeValue + ";" + nodePath) + "\">" + text + "</span>"; } node.Text = text; // Set populate node automatically if (childNodesCount != 0) { node.PopulateOnDemand = true; } // Expand tree if (ExpandAll) { node.Expanded = true; } else if (CollapseAll) { node.Expanded = false; } else { // Handle expand path if (!nodePath.EndsWith("/", StringComparison.OrdinalIgnoreCase)) { nodePath += "/"; } string expandPathLowered = ExpandPath.ToLowerCSafe(); if (selectPathLowered.StartsWithCSafe(nodePath) && (selectPathLowered != nodePath)) { node.Expanded = true; } else if ((expandPathLowered.StartsWithCSafe(nodePath))) { node.Expanded = true; } else // Path expanded by user if (selectedPath.StartsWithCSafe(nodePath) && (selectedPath != nodePath)) { node.Expanded = true; } // Expand all roots for multiple roots tree else if ((parentId == 0) && MultipleRoots) { node.Expanded = true; } else { node.Expanded = false; } } // Expand level if ((ExpandLevel != 0) && !CollapseAll) { node.Expanded = nodeLevel <= ExpandLevel; } return(node); }
/// <summary> /// Gets image handler. /// </summary> /// <param name="node">Tree node</param> protected string treeElem_OnGetImage(UniTreeNode node) { UIElementInfo uiElement = new UIElementInfo((DataRow)node.ItemData); if (uiElement != null) { // Get icon path string imgUrl = uiElement.ElementIconPath; if (!String.IsNullOrEmpty(imgUrl)) { if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = UIHelper.GetImagePath(Page, imgUrl, false, false); // Try to get default icon if requested icon not found if (!FileHelper.FileExists(imgUrl)) { imgUrl = GetImageUrl("CMSModules/list.png"); } } return UIHelper.ResolveImageUrl(imgUrl); } } return GetImageUrl("CMSModules/list.png"); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> protected string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLowerCSafe(); } // Return image path if (objectType == "pagetemplate") { // Set special icon for ad-hoc page template if (!ValidationHelper.GetBoolean(dr["Parameter"], true)) { return GetImageUrl("Objects/CMS_PageTemplate/adhoc.png"); } return GetImageUrl("Objects/CMS_PageTemplate/tree.png"); } else if (objectType == "pagetemplatecategory") { return GetImageUrl("Objects/CMS_PageTemplateCategory/list.png"); } } return String.Empty; }
/// <summary> /// Creates node. /// </summary> /// <param name="uniNode">Node to create</param> protected TreeNode CreateNode(UniTreeNode uniNode) { var data = (Metric)uniNode.ItemData; if (data == null) { return(null); } // Get data bool hasChildren = ValidationHelper.GetBoolean(data.MetricHasChildren, false); // Node ID int nodeId = ValidationHelper.GetInteger(data.MetricId, 0); // Node value string nodeValue = nodeId.ToString(); // Display name string displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(data.MetricDisplayName, ""))); // Path string nodePath = HTMLHelper.HTMLEncode(ValidationHelper.GetString(data.MetricPath, "")).ToLowerCSafe(); // Parent ID int parentId = 0; if (data.MetricParent != null) { parentId = ValidationHelper.GetInteger(data.MetricParent.MetricId, 0); } // Set text string text; string selectedItem = ValidationHelper.GetString(SelectedItem, ""); if (nodeValue.EqualsCSafe(selectedItem, true)) { text = ReplaceMacros(SelectedNodeTemplate, nodeId, hasChildren.ToInteger(0), displayName, parentId); } else { text = ReplaceMacros(NodeTemplate, nodeId, hasChildren.ToInteger(0), displayName, parentId); } TreeNode node = new TreeNode { Value = nodeValue, Text = text }; // Set populate node automatically if (hasChildren) { node.PopulateOnDemand = true; } // Handle expand path if (!nodePath.EndsWith("/", StringComparison.OrdinalIgnoreCase)) { nodePath += "/"; } // Path expanded by user if (selectedPath.StartsWithCSafe(nodePath) && (selectedPath != nodePath)) { node.Expanded = true; } return(node); }
/// <summary> /// Method for obtaining image url for given tree node (category). /// </summary> /// <param name="node">Node (category)</param> /// <returns>Image URL</returns> protected string treeElem_OnGetImage(UniTreeNode node) { DataRow dr = node.ItemData as DataRow; string imgUrl = string.Empty; try { if (dr != null) { // Get icon path imgUrl = ValidationHelper.GetString(dr["CategoryIconPath"], ""); if (!String.IsNullOrEmpty(imgUrl)) { if (Path.IsPathRooted(imgUrl)) { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } else if (!ValidationHelper.IsURL(imgUrl)) { imgUrl = GetImagePath(imgUrl); } else { return imgUrl; } } else { // If requested icon not found try to get icon as previous version did string categoryName = ValidationHelper.GetString(dr["CategoryName"], ""); imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/" + categoryName.Replace(".", "_") + "/list.png"); } } // Get default icon if requested icon not found if (!File.Exists(Server.MapPath(imgUrl))) { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } } catch { imgUrl = GetImagePath("CMSModules/CMS_Settings/Categories/list.png"); } return UIHelper.ResolveImageUrl(imgUrl); }
/// <summary> /// On get image event. /// </summary> /// <param name="node">Current node</param> protected string treeElem_OnGetImage(UniTreeNode node) { if ((node != null) && (node.ItemData != null)) { string objectType = string.Empty; DataRow dr = (DataRow)node.ItemData; if (dr != null) { objectType = ValidationHelper.GetString(dr["ObjectType"], "").ToLower(); } // Return image path switch (objectType) { case "widget": return URLHelper.ResolveUrl(GetImageUrl("Objects/CMS_Widget/list.png")); case "widgetcategory": return URLHelper.ResolveUrl(GetImageUrl("Objects/CMS_WidgetCategory/list.png")); } } return String.Empty; }
/// <summary> /// Gets tree node icon /// </summary> /// <param name="node">Tree node</param> /// <param name="data">Source data</param> private string GetNodeIconMarkup(UniTreeNode node, DataRow data) { string imagePath = null; string iconClass = null; // Get image path from data if (!string.IsNullOrEmpty(ProviderObject.ImageColumn)) { imagePath = ValidationHelper.GetString(data[ProviderObject.ImageColumn], null); } // Get icon class from data if (!string.IsNullOrEmpty(ProviderObject.IconClassColumn)) { iconClass = ValidationHelper.GetString(data[ProviderObject.IconClassColumn], null); } // Get image or icon from external event if (OnGetImage != null) { // Set node as event argument var args = new UniTreeImageArgs { TreeNode = node }; OnGetImage.StartEvent(args); // Get image or icon class if (string.IsNullOrEmpty(imagePath) && !string.IsNullOrEmpty(args.ImagePath)) { imagePath = args.ImagePath; } else if (string.IsNullOrEmpty(iconClass) && !string.IsNullOrEmpty(args.IconClass)) { iconClass = args.IconClass; } } // If no definition found, use default image path if (string.IsNullOrEmpty(imagePath) && string.IsNullOrEmpty(iconClass)) { // Image path has higher priority if (!string.IsNullOrEmpty(DefaultImagePath)) { imagePath = DefaultImagePath; } else if (!string.IsNullOrEmpty(DefaultIconClass)) { iconClass = DefaultIconClass; } } return UIHelper.GetAccessibleImageMarkup(Page, iconClass, imagePath, size: FontIconSizeEnum.Standard); }
/// <summary> /// Creates node. /// </summary> /// <param name="uniNode">Node to create</param> protected TreeNode CreateNode(UniTreeNode uniNode) { var data = (DataRow)uniNode.ItemData; if (data == null) { return null; } TreeNode node = new TreeNode(); // Get data int childNodesCount = 0; if (!String.IsNullOrEmpty(ProviderObject.ChildCountColumn)) { childNodesCount = ValidationHelper.GetInteger(data[ProviderObject.ChildCountColumn], 0); } // Node ID int nodeId = 0; if (!String.IsNullOrEmpty(ProviderObject.IDColumn)) { nodeId = ValidationHelper.GetInteger(data[ProviderObject.IDColumn], 0); } // Node value string nodeValue = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ValueColumn)) { nodeValue = nodeId.ToString(); } string objectType = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ObjectTypeColumn)) { objectType = ValidationHelper.GetString(data[ProviderObject.ObjectTypeColumn], ""); // Add object type to value nodeValue += "_" + objectType; } // Caption string displayName = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.CaptionColumn)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(data[ProviderObject.CaptionColumn], ""))); } // Display name, if caption is empty (or non existent) if (!String.IsNullOrEmpty(ProviderObject.DisplayNameColumn) && String.IsNullOrEmpty(displayName)) { displayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(ValidationHelper.GetString(data[ProviderObject.DisplayNameColumn], ""))); } // Path string nodePath = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.PathColumn)) { nodePath = HTMLHelper.HTMLEncode(ValidationHelper.GetString(data[ProviderObject.PathColumn], "")).ToLowerCSafe(); } // Parent ID int parentId = 0; if (!String.IsNullOrEmpty(ProviderObject.ParentIDColumn)) { parentId = ValidationHelper.GetInteger(data[ProviderObject.ParentIDColumn], 0); } // Parameter string parameter = String.Empty; if (!String.IsNullOrEmpty(ProviderObject.ParameterColumn)) { parameter = HTMLHelper.HTMLEncode(ValidationHelper.GetString(data[ProviderObject.ParameterColumn], "")).ToLowerCSafe(); } int nodeLevel = 0; if (!String.IsNullOrEmpty(ProviderObject.LevelColumn)) { nodeLevel = ValidationHelper.GetInteger(data[ProviderObject.LevelColumn], 0); } // Set navigation URL to current page node.NavigateUrl = RequestContext.CurrentURL + "#"; // Set value node.Value = nodeValue; // Get tree icon var treeIcon = GetNodeIconMarkup(uniNode, data); // Set text string text; string selectedItem = ValidationHelper.GetString(SelectedItem, ""); string selectPathLowered = SelectPath.ToLowerCSafe(); if (nodeValue.EqualsCSafe(selectedItem, true) || ((selectPathLowered == nodePath) && String.IsNullOrEmpty(selectedItem))) { text = ReplaceMacros(SelectedNodeTemplate, nodeId, childNodesCount, displayName, treeIcon, parentId, objectType, parameter); } else { text = ReplaceMacros(NodeTemplate, nodeId, childNodesCount, displayName, treeIcon, parentId, objectType, parameter); } if (UsePostBack) { text = "<span onclick=\"" + ControlsHelper.GetPostBackEventReference(this, nodeValue + ";" + nodePath) + "\">" + text + "</span>"; } node.Text = text; // Set populate node automatically if (childNodesCount != 0) { node.PopulateOnDemand = true; } // Expand tree if (ExpandAll) { node.Expanded = true; } else if (CollapseAll) { node.Expanded = false; } else { // Handle expand path if (!nodePath.EndsWith("/")) { nodePath += "/"; } string expandPathLowered = ExpandPath.ToLowerCSafe(); if (selectPathLowered.StartsWithCSafe(nodePath) && (selectPathLowered != nodePath)) { node.Expanded = true; } else if ((expandPathLowered.StartsWithCSafe(nodePath))) { node.Expanded = true; } else // Path expanded by user if (selectedPath.StartsWithCSafe(nodePath) && (selectedPath != nodePath)) { node.Expanded = true; } // Expand all roots for multiple roots tree else if ((parentId == 0) && MultipleRoots) { node.Expanded = true; } else { node.Expanded = false; } } // Expand level if ((ExpandLevel != 0) && !CollapseAll) { node.Expanded = nodeLevel <= ExpandLevel; } return node; }
/// <summary> /// Reloads data. /// </summary> public override void ReloadData() { if (!StopProcessing && (ProviderObject != null)) { TreeView.Nodes.Clear(); TreeView.EnableViewState = false; // Add custom root node if (CustomRootNode != null) { if (!EnableRootAction) { CustomRootNode.SelectAction = TreeNodeSelectAction.None; } TreeView.Nodes.Add(CustomRootNode); RaiseOnPopulateRootNode(); } else { if (MultipleRoots) { // Load all roots DataSet ds = ProviderObject.LoadData(ProviderObject.ParentIDColumn + " IS NULL"); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { // Add all results as roots UniTreeNode rootNode = new UniTreeNode(ProviderObject, ""); rootNode.ItemData = dr; TreeView.Nodes.Add(CreateNode(rootNode)); } } } else // Add root node from provider if (ProviderObject.RootNode != null) { mRootNode = CreateNode((UniTreeNode)ProviderObject.RootNode); RaiseOnNodeCreated((UniTreeNode)ProviderObject.RootNode, ref mRootNode); mRootNode.Expanded = true; TreeView.Nodes.Add(mRootNode); } } } }