public Bitmap GetImage(Node.DrawObjectType type) { switch(type) { case Node.DrawObjectType.DrawNodeBegin: return this.startNode; case Node.DrawObjectType.DrawNodeGeneral: return this.generalNode; case Node.DrawObjectType.DrawSpecificallyOperation: return this.specificallyOperationNode; case Node.DrawObjectType.DrawGradation: return this.gradationNode; case Node.DrawObjectType.DrawSynchronization: return this.synchronizationNode; case Node.DrawObjectType.DrawAsunder: return this.asunderNode; case Node.DrawObjectType.DrawConverge: return this.convergeNode; case Node.DrawObjectType.DrawGather: return this.gatherNode; case Node.DrawObjectType.DrawJudgement: return this.judgementNode; case Node.DrawObjectType.DrawDataNode: return this.DataNode; case Node.DrawObjectType.DrawNodeEnd: return this.endNode; case Node.DrawObjectType.DrawRectangle: return null; case Node.DrawObjectType.DrawEllipse: return null; } return new Bitmap(GetType(),"images.Rectangle.png"); }
private System.Windows.Forms.TextBox tb_OutConnectCondition; //�����ڵ�Ĺ�ϵ���� #endregion Fields #region Constructors public flowAttribute(Node node,DrawFlowControl control) { // // Windows ���������֧��������� // InitializeComponent(); // // TODO: �� InitializeComponent ���ú�����κι��캯������ // this.node=node; this.control=control; this.arr_InFlowLineList=new ArrayList(); this.arr_OutFlowLineList=new ArrayList(); this.FormInterfaceInit(); this.FormContentInit(); this.BackgroundImage=new Bitmap(GetType(),"images.attribute.png"); }
/// <summary> /// �ӷ�������XML�ļ��У���ȡ����ͼ���� /// </summary> public void CreateArrDraw() { arrNodeList=new ArrayList (); arrLineList=new ArrayList (); arrStringList=new ArrayList(); XmlDocument doc=new XmlDocument (); doc.LoadXml(serverXml); //��ȡ����б� XmlNodeList nodeChilds=doc.SelectNodes("//arrNodeList//node"); foreach (XmlNode node in nodeChilds) { XmlNodeList xnl=node.ChildNodes; int index=Convert.ToInt32(node.Attributes.Item(0).InnerText); int nodetype=Convert.ToInt32(node.Attributes.Item(1).InnerText); string nodetext=xnl.Item(0).InnerText; Node xmlnode=new Node (index,(Node.DrawObjectType)nodetype,nodetext); string fontname=xnl.Item(1).InnerText; int fontSize=Convert.ToInt32(xnl.Item(2).InnerText); xmlnode.NodeTextFont=new System.Drawing.Font (fontname,fontSize); xmlnode.TextSize=fontSize; xmlnode.NodeTextColor=System.Drawing.Color.FromArgb(int.Parse(xnl.Item(3).InnerText)); xmlnode.BorderColor=Color.FromArgb(int.Parse(xnl.Item(4).InnerText)); xmlnode.FillColor=Color.FromArgb(int.Parse(xnl.Item(5).InnerText)); xmlnode.Height=Convert.ToInt32(xnl.Item(6).InnerText); xmlnode.Width=Convert.ToInt32(xnl.Item(7).InnerText); xmlnode.X=Convert.ToInt32(xnl.Item(8).InnerText); xmlnode.Y=Convert.ToInt32(xnl.Item(9).InnerText); xmlnode.ConnectInCount=Convert.ToInt32(xnl.Item(10).InnerText); xmlnode.ConnectOutCount=Convert.ToInt32(xnl.Item(11).InnerText); xmlnode.InFolwTime=Convert.ToDateTime(xnl.Item(12).InnerText); xmlnode.OutFlowTime=Convert.ToDateTime(xnl.Item(13).InnerText); xmlnode.Function=xnl.Item(14).InnerText; xmlnode.OperationRole=xnl.Item(15).InnerText; xmlnode.FunctionInfo=xnl.Item(16).InnerText; xmlnode.Info=xnl.Item(17).InnerText; arrNodeList.Add(xmlnode); } //��ȡ���б� XmlNodeList lineChilds=doc.SelectNodes("//arrLineList//line"); foreach (XmlNode node in lineChilds) { XmlNodeList xnl=node.ChildNodes; int index=Convert.ToInt32(node.Attributes.Item(0).InnerText); int lineType=Convert.ToInt32(node.Attributes.Item(1).InnerText); Line line=new Line ((Line.DrawObjectType)lineType,index); line.X0=Convert.ToInt32(xnl.Item(0).InnerText); line.Y0=Convert.ToInt32(xnl.Item(1).InnerText); line.X1=Convert.ToInt32(xnl.Item(2).InnerText); line.Y1=Convert.ToInt32(xnl.Item(3).InnerText); if(lineType==1) { line.X2=Convert.ToInt32(xnl.Item(4).InnerText); line.Y2=Convert.ToInt32(xnl.Item(5).InnerText); line.X3=Convert.ToInt32(xnl.Item(6).InnerText); line.Y3=Convert.ToInt32(xnl.Item(7).InnerText); line.LineNodeCount=Convert.ToInt32(xnl.Item(8).InnerText); if(xnl.Item(9).InnerText=="null") { line.FirstNode=null; } else { int firstIndex=Convert.ToInt32(xnl.Item(9).InnerText); line.FirstNode=(Node)arrNodeList[firstIndex]; } if(xnl.Item(10).InnerText=="null") { line.SecondNode=null; } else { int secondIndex=Convert.ToInt32(xnl.Item(10).InnerText); line.SecondNode=(Node)arrNodeList[secondIndex]; } line.FirNodeInterfaceIndex=Convert.ToInt32(xnl.Item(11).InnerText); line.SecNodeInterfaceIndex=Convert.ToInt32(xnl.Item(12).InnerText); line.LineSize=Convert.ToInt32(xnl.Item(13).InnerText); line.LineColor=System.Drawing.Color.FromArgb(int.Parse(xnl.Item(14).InnerText)); line.Content=xnl.Item(15).InnerText; arrLineList.Add(line); } else if(lineType==0) { line.LineNodeCount=Convert.ToInt32(xnl.Item(4).InnerText); if(xnl.Item(5).InnerText=="null") { line.FirstNode=null; } else { line.FirstNode=(Node)arrNodeList[Convert.ToInt32(xnl.Item(5).InnerText)]; } if(xnl.Item(6).InnerText=="null") { line.SecondNode=null; } else { line.SecondNode=(Node)arrNodeList[Convert.ToInt32(xnl.Item(6).InnerText)]; } line.FirNodeInterfaceIndex=Convert.ToInt32(xnl.Item(7).InnerText); line.SecNodeInterfaceIndex=Convert.ToInt32(xnl.Item(8).InnerText); line.LineSize=Convert.ToInt32(xnl.Item(9).InnerText); line.LineColor=System.Drawing.Color.FromArgb(int.Parse(xnl.Item(10).InnerText)); line.Content=xnl.Item(11).InnerText; arrLineList.Add(line); } } //��ȡ˵������ XmlNodeList textChilds=doc.SelectNodes("//arrStringList//textString"); foreach (XmlNode node in textChilds) { XmlNodeList xnl=node.ChildNodes; int index=Convert.ToInt32(node.Attributes.Item(0).InnerText); DrawString ds=new DrawString (index); ds.Content=xnl.Item(0).InnerText; ds.X=Convert.ToInt32(xnl.Item(1).InnerText); ds.Y=Convert.ToInt32(xnl.Item(2).InnerText); ds.Height=Convert.ToInt32(xnl.Item(3).InnerText ); ds.Width=Convert.ToInt32(xnl.Item(4).InnerText); ds.DSTextColor=System.Drawing.Color.FromArgb(int.Parse(xnl.Item(5).InnerText)); string fontName=xnl.Item(6).InnerText; int fontSize=Convert.ToInt32(xnl.Item(7).InnerText); ds.DSTextFont=new System.Drawing.Font (fontName,fontSize); ds.TextSize=fontSize; arrStringList.Add(ds); } }