예제 #1
0
    /// <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));
    }
예제 #2
0
    /// <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);
    }
예제 #4
0
    /// <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);
    }
예제 #5
0
    /// <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);
                }
            }
        }
    }
예제 #8
0
    /// <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));
    }
예제 #9
0
    /// <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)));
    }
예제 #10
0
        /// <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);
        }
예제 #11
0
    /// <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);
    }
예제 #12
0
    /// <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);
    }
예제 #13
0
    /// <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;
    }
예제 #15
0
    /// <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;
    }
예제 #16
0
    /// <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");
    }
예제 #17
0
    /// <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);
    }
예제 #19
0
    /// <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;
    }
예제 #21
0
    /// <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);
    }
예제 #23
0
    /// <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);
                    }
            }
        }
    }