Example #1
0
        /// <summary>
        /// Add a node in the current parent node in the treeview
        /// </summary>
        /// <param name="nameParts">Web resource name parts</param>
        /// <param name="index">Index of the part to use</param>
        /// <param name="parent">Parent item (TreeView or TreeNode)</param>
        /// <param name="webResource">Web resource content</param>
        private void AddNode(string[] nameParts, int index, object parent, WebResource webResource)
        {
            if (index == 0)
            {
                var treeview = (TreeView)parent;

                // If the current root for the web resource exists
                if (treeview.Nodes.Find(nameParts[index], false).Length == 0)
                {
                    var node = new TreeNode(nameParts[index]);
                    node.Name = node.Text;

                    // If the name part is the last one, it is the web resource
                    // so it is stored in the Tag property for later usage
                    if (index == nameParts.Length - 1)
                    {
                        node.Tag         = webResource;
                        webResource.Node = node;
                        webResource.ReinitStatus();
                        //webResource.SyncedWithCrm = webResource.Entity != null && webResource.Entity.Contains("webresourceid");
                        webResource.WebresourceStateChanged += Wr_WebresourceStateChanged;

                        int imageIndex = webResource.EntityType + 1;
                        node.ImageIndex         = imageIndex;
                        node.SelectedImageIndex = imageIndex;
                    }
                    else
                    {
                        // 0 is image index for Root image
                        node.ImageIndex         = 0;
                        node.SelectedImageIndex = 0;
                    }

                    treeview.Nodes.Add(node);

                    AddNode(nameParts, index + 1, node, webResource);
                }
                else
                {
                    AddNode(nameParts, index + 1, treeview.Nodes.Find(nameParts[index], false)[0], webResource);
                }
            }
            else if (index < nameParts.Length)
            {
                var treenode = (TreeNode)parent;

                if (treenode.Nodes.Find(nameParts[index], false).Length == 0)
                {
                    var node = new TreeNode(nameParts[index]);
                    node.Name = node.Text;

                    // If the name part is the last one, it is the web resource
                    // so it is stored in the Tag property for later usage
                    if (index == nameParts.Length - 1)
                    {
                        int imageIndex = webResource.EntityType + 1;
                        node.ImageIndex         = imageIndex;
                        node.SelectedImageIndex = imageIndex;
                        node.Tag = webResource;

                        webResource.Node = node;
                        webResource.ReinitStatus();
                        //webResource.SyncedWithCrm = webResource.Entity != null && webResource.Entity.Contains("webresourceid");
                        webResource.WebresourceStateChanged += Wr_WebresourceStateChanged;
                    }
                    else
                    {
                        if (index == 0)
                        {
                            node.ImageIndex         = 0;
                            node.SelectedImageIndex = 0;
                        }
                        else
                        {
                            // 0 is image index for Folder image
                            node.ImageIndex         = 1;
                            node.SelectedImageIndex = 1;
                        }
                    }

                    treenode.Nodes.Add(node);

                    AddNode(nameParts, index + 1, node, webResource);
                }
                else
                {
                    AddNode(nameParts, index + 1, treenode.Nodes.Find(nameParts[index], false)[0], webResource);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Create a new empty web resource
        /// </summary>
        /// <param name="extension">Type of web resource file to create</param>
        public void CreateEmptyWebResource(string extension)
        {
            var callerNode = tv.SelectedNode;

            var nwrDialog = new NewWebResourceDialog(extension)
            {
                StartPosition = FormStartPosition.CenterParent
            };

            if (nwrDialog.ShowDialog(ParentForm) == DialogResult.OK)
            {
                var    tempNode = callerNode;
                string name     = callerNode.Text;
                while (tempNode.Parent != null)
                {
                    name     = string.Format("{0}/{1}", tempNode.Parent.Text, name);
                    tempNode = tempNode.Parent;
                }

                var webResource = new Entity("webresource");
                webResource["content"]         = "";
                webResource["webresourcetype"] = new OptionSetValue(WebResource.GetTypeFromExtension(extension));
                webResource["name"]            = string.Format("{0}/{1}", name, string.Format("{0}.{1}", nwrDialog.WebResourceName, extension));
                var wr = new WebResource(webResource, null);
                WebResources.Add(wr);

                var parts = nwrDialog.WebResourceName.Split('/');

                for (int i = 0; i < parts.Length; i++)
                {
                    if (i != parts.Length - 1)
                    {
                        var folderNode = new TreeNode(parts[i])
                        {
                            ImageIndex = 15, SelectedImageIndex = 15
                        };

                        callerNode.Nodes.Add(folderNode);
                        callerNode.Expand();
                        callerNode = folderNode;
                    }
                    else
                    {
                        var node = new TreeNode(string.Format("{0}.{1}", parts[i], extension))
                        {
                            ImageIndex =
                                WebResource.GetImageIndexFromExtension
                                    (extension) + 14
                        };
                        node.SelectedImageIndex = node.ImageIndex;
                        node.Tag = wr;
                        wr.Node  = node;
                        wr.ReinitStatus();
                        //wr.State = WebresourceState.None;
                        wr.WebresourceStateChanged += Wr_WebresourceStateChanged;

                        callerNode.Nodes.Add(node);
                        callerNode.Expand();
                    }
                }
            }
        }