Exemplo n.º 1
0
        private void GetOpenItems(TmpltBaseTreeNode treeNode, List <string> _openItems)
        {
            if (treeNode == null)
            {
                return;
            }

            foreach (TreeNode treenode in treeNode.Nodes)
            {
                TmpltBaseTreeNode node = treenode as TmpltBaseTreeNode;
                if (node != null && node.IsExpanded)
                {
                    if (node is PartElementNode)
                    {
                        SnipPartXmlElement snipPartElement = ((TmpltBaseTreeNode)node).Element as SnipPartXmlElement;
                        _openItems.Add(snipPartElement.SnipPartId);
                    }
                    else if (node is SnipElementNode)
                    {
                        SnipXmlElement snipElement = ((TmpltBaseTreeNode)node).Element as SnipXmlElement;
                        _openItems.Add(snipElement.Id);
                    }
                    else if (node is TmpltElementNode)
                    {
                        TmpltSimpleExXmlElement tmpltElement = ((TmpltBaseTreeNode)node).Element as TmpltSimpleExXmlElement;
                        _openItems.Add(tmpltElement.Id);
                    }
                }
                GetOpenItems(node, _openItems);
            }
        }
Exemplo n.º 2
0
        private void GetParts(SnipPagePartCollection snipPagePartCollection, XmlElement partsEle, SnipPageDesigner designer)
        {
            XmlNodeList _nodes = partsEle.SelectNodes("part");

            foreach (XmlNode node in _nodes)
            {
                SnipPartXmlElement partEle = (SnipPartXmlElement)node;
                SnipPagePart       part    = SnipPagePart.Parse(partEle, designer);

                snipPagePartCollection.Add(part);
                GetParts(part.ChildParts, partEle, designer);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 将element里保存的数据读取到parts(递归)
        /// </summary>
        private void GetParts(SnipPagePart part, XmlElement element)
        {
            XmlNodeList _nodes = element.SelectNodes("part");

            //part.ChildParts.Clear();
            foreach (XmlNode node in _nodes)
            {
                SnipPartXmlElement partEle = (SnipPartXmlElement)node;
                SnipPagePart       _part   = SnipPagePart.Parse(partEle, this.Designer);

                part.ChildParts.Add(_part);
                GetParts(_part, partEle);
            }
        }
Exemplo n.º 4
0
 protected override void LoadChildNodes(TmpltTreeNodeType NodeFilterType)
 {//Part
     if (((SnipPartXmlElement)Element).ChildNodes == null)
     {
         return;
     }
     foreach (XmlNode node in ((SnipPartXmlElement)Element).ChildNodes)
     {
         if (node.Name == "part")
         {
             SnipPartXmlElement snipPart = node as SnipPartXmlElement;
             AddElementNode(snipPart, NodeFilterType);
         }
     }
 }
Exemplo n.º 5
0
 public TmpltEmptyNode(SnipPartXmlElement element)
     : base(element)
 {
     this.Text = "没有页面片";
 }
Exemplo n.º 6
0
        static public SnipPagePart Parse(SnipPartXmlElement ele, SnipPageDesigner designer)
        {
            SnipPartType type = ele.SnipPartType;
            SnipPagePart part = null;

            switch (type)
            {
            case SnipPartType.Static:
            {
                part = SnipPagePart.Create(designer, type);
                ((StaticPart)part).PageText = ele.CDataValue;
                break;
            }

            case SnipPartType.Box:
            {
                part = SnipPagePart.Create(designer, type);
                break;
            }

            case SnipPartType.List:
            {
                ListPart listPart = (ListPart)SnipPagePart.Create(designer, SnipPartType.List);
                part = listPart;
                break;
            }

            case SnipPartType.ListBox:
            {
                ListBoxPart listBoxPart = (ListBoxPart)SnipPagePart.Create(designer, SnipPartType.ListBox);
                listBoxPart.StyleType = ele.StyleType;
                part = listBoxPart;
                break;
            }

            case SnipPartType.Navigation:
            {
                NavigationPart nPart = (NavigationPart)SnipPagePart.Create(designer, SnipPartType.Navigation);
                nPart.ChannelID = ele.GetAttribute("channelId");
                nPart.Text      = ele.CDataValue;
                part            = nPart;
                break;
            }

            case SnipPartType.Attribute:
            {
                AttributePart attributepart = (AttributePart)SnipPagePart.Create(designer, SnipPartType.Attribute);
                attributepart.AttributeName = ele.AttributeName;
                attributepart.Text          = ele.CDataValue;
                part = attributepart;
                break;
            }

            case SnipPartType.Path:
            {
                PathPart pathPart = (PathPart)SnipPagePart.Create(designer, SnipPartType.Path);
                pathPart.LinkDisplayType = (DisplayType)Enum.Parse(typeof(DisplayType), ele.GetAttribute("linkDisplayType"));
                pathPart.SeparatorCode   = ele.GetAttribute("separatorCode");
                part = pathPart;
                break;
            }

            default:
                throw new Exception("开发期异常。未知的SnipPartType:" + type);
            }
            part.PartType = type;
            part.Css      = ele.SnipPartCss;
            part.PartID   = ele.SnipPartId;
            part.CustomID = ele.CustomId;
            part.AElement = ele.AElement;
            return(part);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 定位到模板/页面片/PART
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TmpltTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            TmpltBaseTreeNode tmpltBaseNode = e.Node as TmpltBaseTreeNode;

            if (tmpltBaseNode == null)
            {
                return;
            }

            switch (tmpltBaseNode.NodeType)
            {
            case TreeNodeType.Tmplt:
                //打开(或激活)模板
                Service.Workbench.OpenWorkDocument(WorkDocumentType.TmpltDesigner, ((TmpltSimpleExXmlElement)tmpltBaseNode.Element).Id);
                break;

            case TreeNodeType.Snip:
            {        //打开页面片
                //得到对应的页面片
                SnipElementNode snipElementNode = tmpltBaseNode as SnipElementNode;
                SnipXmlElement  snipElement     = snipElementNode.Element as SnipXmlElement;

                //得到页面片所属的模板文件
                TmpltElementNode        tmpltElementNode = snipElementNode.Parent as TmpltElementNode;
                TmpltSimpleExXmlElement tmpltElement     = tmpltElementNode.Element as TmpltSimpleExXmlElement;

                //先打开(或激活)对应的模板 如果该模板已经打开,不用打开也不用激活她,因为目的是为了打开页面片
                //如果打开的话回出现令人烦的闪烁现象
                if (!Service.Workbench.GetResultKeyID(WorkDocumentType.TmpltDesigner, tmpltElement.Id))
                {
                    Service.Workbench.OpenWorkDocument(WorkDocumentType.TmpltDesigner, tmpltElement.Id);
                }
                //打开(激活)页面片
                Service.Workbench.OpenWorkDocument(WorkDocumentType.SnipDesigner, snipElement.Id, tmpltElement.Id);


                //因为如果添加一个页面片且没有保存,再重命名,新的名不能保存,模板里没有对应的内容
                //所以的通知页面片设计器,将FORM的TEXT进行修改
                snipElementNode.ChangeNodeText(e.Node.Text);
            }

            break;

            case TreeNodeType.SnipPart:
            {         //找到PART对应的页面片
                PartElementNode    partElemetNode  = tmpltBaseNode as PartElementNode;
                SnipPartXmlElement snipPartElement = partElemetNode.Element as SnipPartXmlElement;

                TmpltBaseTreeNode tmpltNode = (TmpltBaseTreeNode)partElemetNode;
                while (!(tmpltNode is SnipElementNode))
                {
                    tmpltNode = (TmpltBaseTreeNode)(tmpltNode.Parent);
                }

                //得到对应的页面片
                SnipElementNode snipElementNode = tmpltNode as SnipElementNode;
                SnipXmlElement  snipElement     = snipElementNode.Element as SnipXmlElement;


                ////得到页面片所属的模板文件
                TmpltElementNode        tmpltElementNode = snipElementNode.Parent as TmpltElementNode;
                TmpltSimpleExXmlElement tmpltElement     = tmpltElementNode.Element as TmpltSimpleExXmlElement;

                //先打开(或激活)对应的模板
                if (!Service.Workbench.GetResultKeyID(WorkDocumentType.TmpltDesigner, tmpltElement.Id))
                {
                    Service.Workbench.OpenWorkDocument(WorkDocumentType.TmpltDesigner, tmpltElement.Id);
                }

                //打开页面片!
                Service.Workbench.OpenWorkDocument(WorkDocumentType.SnipDesigner, snipElement.Id, tmpltElement.Id);
                string [] strArray = new string[2];
                strArray[0] = snipElement.Id;
                strArray[1] = snipPartElement.SnipPartId;

                SdsiteXmlDocument.OnOrientationPart(new EventArgs <string[]>(strArray));
            }
            break;
            }
        }
Exemplo n.º 8
0
 public PartElementNode(SnipPartXmlElement element)
     : base(element)
 {
 }