Beispiel #1
0
        void xltDocument_NodeInserted(object sender, System.Xml.XmlNodeChangedEventArgs e)
        {
            SvgElement newSvgElement = e.Node as SvgElement;
            if (newSvgElement == null || newSvgElement.GetAttribute(SymbolTag) == "")
            {
                return;
            }

            if (symbolElement == null)
            {
                return;
            }

            newSvgElement.SetAttribute(NodeGuidTag, newElementGuid);
            newSvgElement.SetAttribute(NodeNameTag, newElementName);
            newSvgElement.SetAttribute(NodeXLDMTag, newElementXLDM);
            newSvgElement.SetAttribute(PreNodeGuidTag, "");
            newSvgElement.SetAttribute(BranchNodeGuidTag, "");

            if (IsNodeElement(newSvgElement))
            {
                if (IsBDZElement(newSvgElement))//变电站
                {

                }
                else//其它节点设备
                {
                    AddNewNodeDev(newSvgElement, isNewElementBranch);
                }
            }

            symbolElement = null;
        }
Beispiel #2
0
        void DrawArea_BeforeAddSvgElement(object sender, ItopVector.DrawArea.AddSvgElementEventArgs e)
        {
            symbolElement = e.SvgElement as Use;

            if (symbolElement == null)
            {
                return;
            }

            isNewElementBranch = false;

            currentElement = xltDocument.CurrentElement;

            if (symbolElement.GraphId.IndexOf(BDZTag) < 0 && !CheckCanInsert())
            {
                xltVectorCtrl.CurrentOperation = ToolOperation.Select;
                xltVectorCtrl.DrawArea.PreGraph = null;

                e.Cancel = true;
                return;
            }

            if (currentElement != null)
            {
                newElementXLDM = currentElement.GetAttribute(NodeXLDMTag);
            }

            newElementGuid = Guid.NewGuid().ToString();

            //要插入的为变电站
            if (symbolElement.GraphId.IndexOf(BDZTag) > -1)
            {
                newElementName = "变电站";
                newElementXLDM = "";
            }
            else//要插入的为其它设备
            {
                newElementName = "节点";
                if (IsBDZElement(currentElement) && OnNewLine != null)
                {
                    List<string> listLineCode = GetBDZConnectLines(currentElement);
                    newElementXLDM = OnNewLine(listLineCode);
                }
            }
            if (IsBDZElement(currentElement))
            {
                List<string> listLineCode = GetBDZConnectLines(currentElement);
                string strEleID="'m0y4'";
                for(int i=0;i<listLineCode.Count;i++){
                    strEleID = strEleID + ",'" + listLineCode[i]+"'";
                }
                if (listLineCode.Count > 0)
                {
                    LineInfo l = new LineInfo();
                    l.SvgUID = xltVectorCtrl.SVGDocument.SvgdataUid;
                    l.EleID=strEleID;
                    IList lineList= Services.BaseService.GetList("SelectLineInfoByEleIDList",l);

                    frmAddLineSel f = new frmAddLineSel();
                    f.StrList = listLineCode;
                    f.LineList = lineList;
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        if (f.newLine)
                        {
                            newElementXLDM = OnNewLine(listLineCode);
                        }
                        else
                        {
                            newElementXLDM = f.LineCode;
                        }
                    }
                    else
                    {
                        e.Cancel = true;
                        return;
                    }
                }
            }
        }
Beispiel #3
0
        public override XmlElement CreateElement(string prefix, string localName, string ns)
        {
            XmlElement element1;
            if (this.firstload)
            {
            //				SvgElement element2 = null;
                if (this.preelement != null)
                {
                    //                    if (this.preelement.ParentNode == null)
                    //                    {
                    //                        if (this.groups.Count > 0)
                    //                        {
                    //                            element2 = (SvgElement) this.groups[this.groups.Count - 1];
                    //                            if ((element2 is ContainerElement) && ((ContainerElement) element2).IsValidChild(this.preelement))
                    //                            {
                    //                                ((ContainerElement) element2).ChildList.Add(this.preelement);
                    //                            }
                    //                        }
                    //                        this.groups.Add(this.preelement);
                    //                    }
                    //                    else if (this.groups.Count > 0)
                    //                    {
                    //						if(this.preelement.ParentNode is ContainerElement && ((ContainerElement) this.preelement.ParentNode).IsValidChild(this.preelement))
                    //						{
                    //							((ContainerElement)this.preelement.ParentNode).ChildList.Add(this.preelement);
                    //						}
                    //
                    //                    }
                }
            }
            switch (localName)
            {
                case "clipPath":
                {
                    element1 = new ClipPath(prefix, localName, ns, this);
                    break;
                }
                case "rect":
                {
                    element1 = new RectangleElement(prefix, localName, ns, this);
                    break;
                }
                case "path":
                {
                    element1 = new GraphPath(prefix, localName, ns, this);
                    break;
                }
                case "polyline":
                {
                    element1 = new Polyline(prefix, localName, ns, this);
                    break;
                }
                case "polygon":
                {
                    element1 = new Polygon(prefix, localName, ns, this);
                    break;
                }
                case "circle":
                {
                    element1 = new Circle(prefix, localName, ns, this);
                    break;
                }
                case "ellipse":
                {
                    element1 = new Ellips(prefix, localName, ns, this);
                    break;
                }
                case "script":
                {
                    element1 = new SvgScript(prefix, localName, ns, this);
                    break;
                }
                case "line":
                {
                    element1 = new Line(prefix, localName, ns, this);
                    break;
                }
                case "connectline":
                case "connect":
                {
                    element1 = new ConnectLine(prefix, localName, ns, this);
                    break;
                }
                case "g":
                {
                    element1 = new Group(prefix, localName, ns, this);
                    break;
                }
                case "svg":
                {
                    element1 = new SVG(prefix, localName, ns, this);
                    break;
                }
                case "text":
                {
                    element1 = new Text(prefix, localName, ns, this);
                    break;
                }
                case "tspan":
                {
                    element1 = new TSpan(prefix, localName, ns, this);
                    break;
                }
                case "tref":
                {
                    element1 = new TRef(prefix, localName, ns, this);
                    break;
                }
                case "linearGradient":
                {
                    element1 = new LinearGradient(prefix, localName, ns, this);
                    break;
                }
                case "radialGradient":
                {
                    element1 = new RadialGradients(prefix, localName, ns, this);
                    break;
                }
                case "stop":
                {
                    element1 = new GradientStop(prefix, localName, ns, this);
                    break;
                }
                case "symbol":
                {
                    element1 = new ItopVector.Core.Figure.Symbol(prefix, localName, ns, this);
                    break;
                }
                case "marker":
                {
                    element1 = new ItopVector.Core.Figure.Marker(prefix, localName, ns, this);
                    break;
                }
                case "defs":
                {
                    element1 = new ItopVector.Core.Figure.Defs(prefix, localName, ns, this);
                    break;
                }
                case "image":
                {
                    element1 = new ItopVector.Core.Figure.Image(prefix, localName, ns, this);
                    break;
                }
                case "a":
                {
                    element1 = new ItopVector.Core.Figure.Link(prefix, localName, ns, this);
                    break;
                }
                case "use":
                {
                    element1 = new ItopVector.Core.Figure.Use(prefix, localName, ns, this);
                    break;
                }
                case "animate":
                {
                    element1 = new ItopVector.Core.Animate.Animate(prefix, localName, ns, this);
                    break;
                }
                case "set":
                {
                    element1 = new SetAnimate(prefix, localName, ns, this);
                    break;
                }
                case "animateColor":
                {
                    element1 = new ColorAnimate(prefix, localName, ns, this);
                    break;
                }
                case "animateMotion":
                {
                    element1 = new MotionAnimate(prefix, localName, ns, this);
                    break;
                }
                case "animateTransform":
                {
                    element1 = new TransformAnimate(prefix, localName, ns, this);
                    break;
                }
                case "pattern":
                {
                    element1 = new Pattern(prefix, localName, ns, this);
                    break;
                }
                case "audio3d":
                case "audio":
                {
                    element1 = new AudioAnimate(prefix, localName, ns, this);
                    break;
                }
                case "state"://״̬
                {
                    element1 =new State(prefix, localName, ns, this);
                    break;
                }
                case "layer":
                {
                    element1 =new Layer(prefix, localName, ns, this);
                    break;
                }
                default:
                {
                    element1 = base.CreateElement(prefix, localName, ns);
                    break;
                }
            }
            if (element1 is SvgElement)
            {
                ((SvgElement) element1).ShowParticular = this.AutoShowAnim;
            }
            if ((element1 is SvgElement) && this.firstload)
            {
                this.preelement = (SvgElement) element1;
            }
            else
            {
                this.preelement = null;
            }
            if (this.xmlreader != null)
            {
                int num3 = this.xmlreader.LineNumber;
                int num4 = this.xmlreader.LinePosition;
            }
            //			if ((element1 is SVG) && (this.DocumentType == null))
            //			{
            //				XmlDocumentType type1 = this.CreateDocumentType("svg", "-/W3C/DTD SVG 1.1/EN", "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd", null);
            //				this.AppendChild(type1);
            //				this.AppendChild(this.CreateWhitespace("\r\n"));
            //			}

            return element1;
        }