private void radTreeView1_DragDrop(object sender, DragEventArgs e)
    {
        RadTreeNode sourceNode = e.Data.GetData(typeof(RadTreeNode)) as RadTreeNode;
        // Retrieve the client coordinates of the drop location.
        Point targetPoint = rtvTree.PointToClient(new Point(e.X, e.Y));

        // Retrieve the node at the drop location.
        RadTreeNode targetNode = rtvTree.GetNodeAt(targetPoint);

        if (sourceNode != null && targetNode != null)
        {
            RadTreeNode clonedNode = (RadTreeNode)sourceNode.Clone();
            if (radioButtonCut.Checked)
            {
                sourceNode.Remove();
            }
            targetNode.Nodes.Add(clonedNode);
            targetNode.Expanded = true;
        }
    }
Ejemplo n.º 2
0
    public void AjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        string[]    args    = e.Argument.Replace("\r\n", "\n").Split('\n');
        RadTreeView srcTree = null;
        RadTreeView dstTree = null;

        if (TreeResources.ClientID.Equals(args[0]))
        {
            srcTree = TreeResources;
        }
        else if (TreeResources.ClientID.Equals(args[0]))
        {
            srcTree = TreeResources;
        }

        if (TreeResources.ClientID.Equals(args[1]))
        {
            dstTree = TreeResources;
        }
        else if (TreeResources.ClientID.Equals(args[1]))
        {
            dstTree = TreeResources;
        }

        RadTreeNode sourceNode = srcTree.FindNodeByText(args[2]);
        RadTreeNode destNode   = dstTree.FindNodeByText(args[3]);

        //if (sourceNode.Parent == null)
        //{
        //    RadAjaxManager1.Alert("گره اصلی قابل حذف نیست");
        //    return;
        //}
        RadTreeNode tempNode = destNode;

        while (tempNode != null)
        {
            if (!tempNode.Equals(sourceNode))
            {
                tempNode = tempNode.ParentNode;
            }
            else
            {
                break;
            }
        }
        if (tempNode != null)
        {
            //RadAjaxManager1.Alert("نمیتوان یک گره را به فرزندانش منتقل کرد");
            return;
        }

        BOLResources ResourcesBOl = new BOLResources();

        ResourcesBOl.Code       = Convert.ToInt32(sourceNode.Value);
        ResourcesBOl.MasterCode = Convert.ToInt32(destNode.Value);
        ResourcesBOl.Name       = sourceNode.Text;
        ResourcesBOl.SaveChanges(false);

        RadTreeNode newNode = new RadTreeNode(sourceNode.Text, sourceNode.Value);

        AddChilds(newNode, sourceNode);
        destNode.Nodes.Add(newNode);
        destNode.ExpandChildNodes();
        if (!sourceNode.Equals(srcTree.Nodes[0]))
        {
            sourceNode.Remove();
        }
    }
Ejemplo n.º 3
0
        protected virtual void PerformDragDropCore(
            DropPosition position,
            RadTreeNode targetNode,
            List <RadTreeNode> draggedNodes)
        {
            RadTreeNode           parent = targetNode.Parent;
            RadTreeNodeCollection nodes  = targetNode.TreeViewElement.Nodes;

            if (parent != null)
            {
                nodes = parent.Nodes;
            }
            bool flag   = position == DropPosition.BeforeNode;
            int  index1 = nodes.IndexOf(targetNode);

            if (!flag && index1 + 1 <= nodes.Count)
            {
                ++index1;
            }
            bool isCopyingNodes = this.IsCopyingNodes;
            int  index2         = 0;

            while (index2 < draggedNodes.Count)
            {
                if (!this.OnDragEnding(position, draggedNodes[index2], targetNode))
                {
                    draggedNodes.RemoveAt(index2);
                }
                else
                {
                    ++index2;
                }
            }
            if (this.owner.bindingProvider.CanDrop || targetNode.treeView != null && targetNode.treeView.bindingProvider.CanDrop)
            {
                this.owner.bindingProvider.DropNodes(targetNode.Parent, draggedNodes);
                foreach (RadTreeNode draggedNode in draggedNodes)
                {
                    this.owner.OnDragEnded(new RadTreeViewDragEventArgs(draggedNode, targetNode));
                }
            }
            else
            {
                foreach (RadTreeNode draggedNode in draggedNodes)
                {
                    RadTreeNode radTreeNode = draggedNode;
                    if (radTreeNode.Parent == parent && radTreeNode.TreeViewElement == targetNode.TreeViewElement && nodes.IndexOf(radTreeNode) < index1)
                    {
                        --index1;
                    }
                    if (isCopyingNodes)
                    {
                        radTreeNode = this.CreateTreeNode(radTreeNode);
                    }
                    else
                    {
                        radTreeNode.Remove();
                    }
                    nodes.Insert(index1, radTreeNode);
                    ++index1;
                    this.owner.OnDragEnded(new RadTreeViewDragEventArgs(radTreeNode, targetNode));
                }
            }
        }
Ejemplo n.º 4
0
        protected override void OnPreviewDragDrop(RadDropEventArgs e)
        {
            base.OnPreviewDragDrop(e);
            if (this.CancelPreviewDragDrop(e))
            {
                return;
            }
            bool        flag1        = this.owner.Scroller.Traverser.Current == this.draggedNode;
            RadTreeNode radTreeNode1 = (RadTreeNode)null;

            if (flag1)
            {
                radTreeNode1 = this.draggedNode.NextNode ?? this.draggedNode.PrevNode;
            }
            TreeNodeElement    hitTarget          = e.HitTarget as TreeNodeElement;
            RadTreeViewElement radTreeViewElement = hitTarget == null ? e.HitTarget as RadTreeViewElement : hitTarget.TreeViewElement;
            List <RadTreeNode> selectedNodes      = this.GetSelectedNodes(this.draggedNode);
            List <RadTreeNode> draggedNodes       = this.GetDraggedNodes(this.draggedNode);
            bool flag2 = radTreeViewElement != null && radTreeViewElement != this.owner;

            radTreeViewElement?.BeginUpdate();
            if (flag2)
            {
                this.owner.BeginUpdate();
            }
            if (hitTarget != null && hitTarget.Data != null)
            {
                this.PerformDragDrop(e.DropLocation, hitTarget, draggedNodes);
            }
            else if (radTreeViewElement != null)
            {
                bool isCopyingNodes = this.IsCopyingNodes;
                foreach (RadTreeNode radTreeNode2 in draggedNodes)
                {
                    RadTreeNode radTreeNode3 = radTreeNode2;
                    if (this.OnDragEnding(DropPosition.AsChildNode, radTreeNode3, (RadTreeNode)null))
                    {
                        if (isCopyingNodes)
                        {
                            radTreeNode3 = this.CreateTreeNode(radTreeNode3);
                        }
                        else
                        {
                            radTreeNode3.Remove();
                        }
                        radTreeViewElement.Nodes.Add(radTreeNode3);
                        this.owner.OnDragEnded(new RadTreeViewDragEventArgs(radTreeNode3, (RadTreeNode)null));
                    }
                }
            }
            else if (draggedNodes.Count > 0)
            {
                this.owner.OnDragEnded(new RadTreeViewDragEventArgs(draggedNodes[0], (RadTreeNode)null));
            }
            if (flag2)
            {
                this.owner.EndUpdate();
            }
            if (flag1)
            {
                this.owner.Scroller.ScrollToItem(radTreeNode1);
            }
            if (radTreeViewElement == null)
            {
                return;
            }
            radTreeViewElement.EndUpdate();
            radTreeViewElement.SelectedNode = this.draggedNode;
            foreach (RadTreeNode radTreeNode2 in draggedNodes)
            {
                radTreeNode2.Selected = true;
            }
            foreach (RadTreeNode radTreeNode2 in selectedNodes)
            {
                radTreeNode2.Selected = true;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Updates the details of the node or adds a new item to items collection if the node is not found.
        /// </summary>
        /// <param name="parentNodeValue">The value of the parent node.</param>
        /// <param name="nodeValue">The value to find node.</param>
        /// <param name="nodeText">The node text.</param>
        /// <param name="nodeCategory">The node category.</param>
        public void SaveNode(string parentNodeValue, string nodeValue, string nodeText, string nodeCategory)
        {
            if (parentNodeValue == null)
            {
                parentNodeValue = string.Empty;
            }
            if (nodeCategory == null)
            {
                nodeCategory = string.Empty;
            }

            RadTreeNode parentNode = this.FindNodeByValue(parentNodeValue);
            RadTreeNode node       = this.FindNodeByValue(nodeValue);

            RadTreeNode[] childNodes         = null;
            bool          added              = true;
            string        parentNodeValueOld = string.Empty;

            if (node != null)
            {
                added = false;
                if (node.ParentNode != null)
                {
                    parentNodeValueOld = node.ParentNode.Value;
                }
                if (parentNodeValueOld == null)
                {
                    parentNodeValueOld = string.Empty;
                }
                node.Text = nodeText;

                if (string.Compare(parentNodeValue, parentNodeValueOld, true, CultureInfo.CurrentCulture) != 0)
                {
                    childNodes = new RadTreeNode[node.Nodes.Count];
                    node.Nodes.CopyTo(childNodes, 0);
                    node.Remove();
                    node  = null;
                    added = true;
                }
            }

            if (node == null)
            {
                node = new RadTreeNode(nodeText, nodeValue);
            }
            node.Category = nodeCategory;

            if (childNodes != null)
            {
                foreach (RadTreeNode childNode in childNodes)
                {
                    node.Nodes.Add(childNode);
                }
            }

            if (parentNode != null)
            {
                if (string.Compare(parentNodeValue, parentNodeValueOld, true, CultureInfo.CurrentCulture) != 0)
                {
                    parentNode.Nodes.Add(node);
                }
            }
            else if (added)
            {
                this.Nodes.Add(node);
            }

            node.ExpandParentNodes();
        }
Ejemplo n.º 6
0
        private void DeleteAndRefreshPage(RadTreeNode node)
        {
            String fullpath = this.GetNodeUrl(node);
            CmsPage page = PageManager.Instance.GetLatestPage(fullpath);
            if (page == null)
            {
                page = new CmsPage();
                page.Url = fullpath;
                page.UrlHash = TextHash.MD5(page.Url).Value;
            }
            PageManager.Instance.DeleteAll(page);

            node.Remove();
        }
Ejemplo n.º 7
0
        private void DeleteAndRefreshFolder(RadTreeNode node)
        {
            String fullpath = this.GetNodeUrl(node);

            CmsSitePath folder = CmsSiteMap.Instance.GetPath(fullpath);
            PageManager.Instance.DeleteFolder(folder);

            node.Remove();
        }
        protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
        {
            RadTreeNode clickedNode = e.Node;


            var nodoA           = treeEstructura.Nodes[0];
            var hijosPrimerNodo = listEstructura.Where(x => x.Nivel == 1).ToList();

            if (e.MenuItem.Value.StartsWith("[ACYS]"))
            {
                var strValue = e.MenuItem.Value;
                strValue = strValue.Replace("[ACYS]", "");

                int idACYS = Int32.Parse(strValue);


                CN_CatCNac_Estructura cm_EstrACYS = new CN_CatCNac_Estructura(model);
                CatCNac_Estructura    estACYS     = new CatCNac_Estructura();
                if (clickedNode.Level == nivelMax && nivelMax >= 1)
                {
                    RadMenuItem itemPadre = ((RadMenuItem)(e.MenuItem.Owner));
                    itemPadre.Value = itemPadre.Value.Replace("Asignar", "");

                    estACYS.Id         = Int32.Parse(clickedNode.Value);
                    estACYS.Nivel_ACYS = 1;
                    estACYS.id_Acys    = idACYS;
                    int id       = cm_EstrACYS.CambiarNivel(estACYS);
                    var itemEstr = listEstructura.Where(x => x.Id == estACYS.Id).FirstOrDefault();
                    itemEstr.Nivel_ACYS = estACYS.Nivel_ACYS;
                    itemEstr.id_Acys    = idACYS;
                }
                else
                {
                    AsignarACYS(ref clickedNode, clickedNode.Level, idACYS);
                }

                AgregarControles(ref nodoA, hijosPrimerNodo, null);
            }
            else
            {
                switch (e.MenuItem.Value)
                {
                case "Nuevo":
                    RadTreeNode nodoNuevo = new RadTreeNode();
                    nodoNuevo.Selected = true;
                    nodoNuevo.ImageUrl = clickedNode.ImageUrl;
                    clickedNode.Nodes.Add(nodoNuevo);
                    clickedNode.Expanded = true;

                    //set node's value so we can find it in startNodeInEditMode
                    nodoNuevo.Value = "Nuevo - " + Guid.NewGuid().ToString();
                    StartNodeInEditMode(nodoNuevo.Value);

                    AgregarControles(ref nodoA, hijosPrimerNodo, nodoNuevo);

                    break;

                case "Asignar":
                    AsignarACYS(ref clickedNode, clickedNode.Level, 1);
                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;

                case "Asignar1":

                    CN_CatCNac_Estructura cm_Estr1 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est1     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 1)
                    {
                        est1.Id         = Int32.Parse(clickedNode.Value);
                        est1.Nivel_ACYS = 1;
                        int id       = cm_Estr1.CambiarNivel(est1);
                        var itemEstr = listEstructura.Where(x => x.Id == est1.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 1;
                    }


                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;

                case "Asignar2":

                    CN_CatCNac_Estructura cm_Estr2 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est2     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 2)
                    {
                        est2.Id         = Int32.Parse(clickedNode.Value);
                        est2.Nivel_ACYS = 2;
                        int id       = cm_Estr2.CambiarNivel(est2);
                        var itemEstr = listEstructura.Where(x => x.Id == est2.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 2;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Asignar3":

                    CN_CatCNac_Estructura cm_Estr3 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est3     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 3)
                    {
                        est3.Id         = Int32.Parse(clickedNode.Value);
                        est3.Nivel_ACYS = 3;
                        int id       = cm_Estr3.CambiarNivel(est3);
                        var itemEstr = listEstructura.Where(x => x.Id == est3.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 3;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Asignar4":

                    CN_CatCNac_Estructura cm_Estr4 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est4     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 4)
                    {
                        est4.Id         = Int32.Parse(clickedNode.Value);
                        est4.Nivel_ACYS = 4;
                        int id       = cm_Estr4.CambiarNivel(est4);
                        var itemEstr = listEstructura.Where(x => x.Id == est4.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 4;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Borrar":
                    clickedNode.Remove();

                    CN_CatCNac_Estructura cm_EstrA = new CN_CatCNac_Estructura(model);
                    var estrA = new CatCNac_Estructura();

                    estrA.Id = Int32.Parse(clickedNode.Value);

                    cm_EstrA.Borrar(estrA);
                    listEstructura.Remove(estrA);
                    AgregarControles(ref nodoA, hijosPrimerNodo, null);



                    break;

                default:

                    CN_CatCNac_Estructura cm_EstrD = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    estD     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && e.MenuItem.Value != "")
                    {
                        estD.Id             = Int32.Parse(clickedNode.Value);
                        estD.Sucursal       = Int32.Parse(e.MenuItem.Value);
                        estD.NombreSucursal = e.MenuItem.Text;
                        int id = cm_EstrD.CambiarSucursal(estD);

                        var itemEstr = listEstructura.Where(x => x.Id == estD.Id).FirstOrDefault();
                        itemEstr.Sucursal       = Int32.Parse(e.MenuItem.Value);
                        itemEstr.NombreSucursal = e.MenuItem.Text;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;
                }
            }
        }