예제 #1
0
        public static void DoPaste(PasteDataSourceEnum pdstype, PasteAsEnum patype, string targetId, params object[] pasteIds)
        {
            if (!String.IsNullOrEmpty(targetId) && pasteIds.Length > 0)
            {
                IList <SysEnumeration> allnodes = SysEnumeration.FindAllByPrimaryKeys(pasteIds);
                IList <SysEnumeration> nodes    = FilterChildNodes(allnodes);

                // 只提取最高节点或无父子关联的节点进行粘贴
                foreach (SysEnumeration tnode in nodes)
                {
                    switch (pdstype)
                    {
                    case PasteDataSourceEnum.Copy:
                        if (patype == PasteAsEnum.Sibling)
                        {
                            tnode.CopyAsSibling(targetId);
                        }
                        else if (patype == PasteAsEnum.Child)
                        {
                            tnode.CopyAsChild(targetId);
                        }
                        break;

                    case PasteDataSourceEnum.Cut:
                        if (patype == PasteAsEnum.Sibling)
                        {
                            tnode.MoveAsSibling(targetId);
                        }
                        else if (patype == PasteAsEnum.Child)
                        {
                            if (tnode.ParentID == targetId)
                            {
                                tnode.ChangePosition(0);
                            }
                            else
                            {
                                tnode.MoveAsChild(targetId);
                            }
                        }
                        break;
                    }
                }
            }
        }
예제 #2
0
        private void DoPaste()
        {
            IList <string> idList  = RequestData.GetList <string>("IdList");
            string         type    = RequestData.Get <string>("type", String.Empty);
            string         tid     = RequestData.Get <string>("tid", String.Empty);     // 目标节点id
            string         pdstype = RequestData.Get <string>("pdstype", String.Empty); // 粘贴数据来源类型

            if (!String.IsNullOrEmpty(tid))
            {
                A_TaskWBS target = A_TaskWBS.Find(tid);

                PasteDataSourceEnum pdsenum = PasteDataSourceEnum.Unknown;
                PasteAsEnum         paenum  = PasteAsEnum.Other;

                if (pdstype == "cut")
                {
                    pdsenum = PasteDataSourceEnum.Cut;
                }
                else if (pdstype == "copy")
                {
                    pdsenum = PasteDataSourceEnum.Copy;
                }

                if (type == "sib")
                {
                    paenum = PasteAsEnum.Sibling;
                }
                else if (type == "sub")
                {
                    paenum = PasteAsEnum.Child;
                }

                if (pdsenum != PasteDataSourceEnum.Unknown && paenum != PasteAsEnum.Other)
                {
                    // 粘贴操作
                    A_TaskWBS.DoPaste(pdsenum, paenum, tid, idList.ToArray());
                }
            }
        }