public void SetColor(int x, int y, int z) { if (y == 1) { UpPlane.SetActive(true); } else if (y == -1) { DownPlane.SetActive(true); } if (z == 1) { LeftPlane.SetActive(true); } else if (z == -1) { RightPlane.SetActive(true); } if (x == 1) { BackPlane.SetActive(true); } else if (x == -1) { FrontPlane.SetActive(true); } }
//添加一个背板的描述到_rawTopo里面 private void AddBackPlane(BackPlane bp, int frameId, ref int curUrlId) { //添加节点(槽位,包含虚拟槽位) for (int i = 0; i < bp.VirtualSlotsNum; i++) { RawTopo.RawNode bpNode = new RawTopo.RawNode(EndType.VPX, null, curUrlId++); bpNode.FrameId = frameId; bpNode.SlotId = i; _rawTopo.SetNodeValue(bpNode.UrlId, bpNode); } //加入link foreach (var links in bp.LinksArray) { foreach (var link in links) { var subLink = new RawTopo.RawSubLink(link.FirstEndPostion, link.SecondEndPostion, link.LanesNum); int urlId1 = _rawTopo.NodeArray .Where(node => ((node != null) && (node.SlotId == link.FirstEndId) && (node.Type == EndType.VPX) && (node.FrameId == frameId))) .Select(node => node.UrlId) .FirstOrDefault(); int urlId2 = _rawTopo.NodeArray .Where(node => ((node != null) && (node.SlotId == link.SecondEndId) && (node.Type == EndType.VPX) && (node.FrameId == frameId))) .Select(node => node.UrlId) .FirstOrDefault(); _rawTopo.AddSubLink(link.LinkType, urlId1, urlId2, subLink); } } }
/// <summary> /// 背板初始化界面初始化一个背板类 /// </summary> /// <param name="bp"></param> private void ReFreshBackPlane(BackPlane bp) { bp.Name = _typeTB.Text; bp.Type = _typeTB.Text; List <BackPlaneLink> linksList; //单个槽位对应的Links列表 for (int i = 0; i < _slotNum; i++) { //TODO:行信息有效性检查 //获取一个槽位的信息 var dgv = _dgvsOpt.DataGridViweList[i]; linksList = new List <BackPlaneLink>(); foreach (DataGridViewRow row in dgv.Rows) { //获取一条连接的信息 string linkTypeString = row.Cells[_dgvColumnTitle_linkType].Value as string; LinkType type = (LinkType)Enum.Parse(typeof(LinkType), linkTypeString); int end1Slot = i; int end1Pos = int.Parse(row.Cells[_dgvColumnTitle_end1PosNum].Value as string); int end2Slot = int.Parse(row.Cells[_dgvColumnTitle_end2SlotNum].Value as string); int end2Pos = int.Parse(row.Cells[_dgvColumnTitle_end2PosNum].Value as string); linksList.Add(new BackPlaneLink(end1Slot, end1Pos, end2Slot, end2Pos, type)); } bp.LinksArray[i] = linksList; } }
private void _addBtn_Click(object sender, EventArgs e) { BackPlane bp = ModelFactory <BackPlane> .CreateByName(_bpTypeCB.Text); for (int i = 0; i < bp.SlotsNum; i++) { int index = dataGridView1.Rows.Add(); dataGridView1.Rows[index].Cells[0].Value = i.ToString(); dataGridView1.Rows[index].Cells[1].Value = "无"; } }
//页面确定按钮按下事件响应 private void yesBtn_Click(object sender, EventArgs e) { if (false == CompleteJudgment()) { return; } BackPlane bp = new BackPlane(_slotNum); ReFreshBackPlane(bp); bp.SaveXmlByName(); this.DialogResult = DialogResult.Yes; }
/*组件修改*/ private void ContextMSModify_Click(object sender, EventArgs e) { TreeNode selectedNode = _eqTreeView.SelectedNode; string oldNodeName = selectedNode.Text; switch (selectedNode.Parent.Text) { case "PPCs": //通过读取XML文件初始化PPC,然后用一个PPC实例初始化PPCInitForm PPC ppc = ModelFactory <PPC> .CreateByName(selectedNode.Text); PPCInitForm ppcInitForm = new PPCInitForm(ppc); ppcInitForm.ShowDialog(); if (ppcInitForm.DialogResult == DialogResult.Yes) { if (ppcInitForm.GetObjectName() != oldNodeName) { //改了名字的话,要删除老文件 selectedNode.Text = ppcInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetPPCPath(), oldNodeName); File.Delete(filePath); } } ppcInitForm.Dispose(); break; case "FPGAs": FPGA fpga = ModelFactory <FPGA> .CreateByName(selectedNode.Text); FPGAInitForm fpgaInitForm = new FPGAInitForm(fpga); fpgaInitForm.ShowDialog(); if (fpgaInitForm.DialogResult == DialogResult.Yes) { if (fpgaInitForm.GetObjectName() != oldNodeName) { selectedNode.Text = fpgaInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetFPGAPath(), oldNodeName); File.Delete(filePath); } } fpgaInitForm.Dispose(); break; case "ZYNQs": ZYNQ zynq = ModelFactory <ZYNQ> .CreateByName(selectedNode.Text); ZYNQInitForm zynqInitForm = new ZYNQInitForm(zynq); zynqInitForm.ShowDialog(); if (zynqInitForm.DialogResult == DialogResult.Yes) { if (zynqInitForm.GetObjectName() != oldNodeName) { selectedNode.Text = zynqInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetZYNQPath(), oldNodeName); File.Delete(filePath); } } zynqInitForm.Dispose(); break; case "板卡库": Board board = ModelFactory <Board> .CreateByName(selectedNode.Text); BoardInitForm boardInitForm = new BoardInitForm(board); boardInitForm.ShowDialog(); if (boardInitForm.DialogResult == DialogResult.Yes) { if (boardInitForm.GetObjectName() != oldNodeName) { selectedNode.Text = boardInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetBoardPath(), oldNodeName); File.Delete(filePath); } } boardInitForm.Dispose(); break; case "背板库": BackPlane bp = ModelFactory <BackPlane> .CreateByName(selectedNode.Text); BackPlaneInitForm bpInitForm = new BackPlaneInitForm(bp); bpInitForm.ShowDialog(); if (bpInitForm.DialogResult == DialogResult.Yes) { if (bpInitForm.GetObjectName() != oldNodeName) { selectedNode.Text = bpInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetBackPlanePath(), oldNodeName); File.Delete(filePath); } } bpInitForm.Dispose(); break; case "机箱库": Models.Container ctnView = ModelFactory <Models.Container> .CreateByName(selectedNode.Text);; ContainerInitForm ctnInitForm = new ContainerInitForm(ctnView); ctnInitForm.ShowDialog(); if (ctnInitForm.DialogResult == DialogResult.Yes) { if (ctnInitForm.GetObjectName() != oldNodeName) { selectedNode.Text = ctnInitForm.GetObjectName(); var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetContainerPath(), oldNodeName); File.Delete(filePath); } } ctnInitForm.Dispose(); break; default: break; } //无论有无文件内容更改都把TreeView的内容读入对应xml文件内 XMLManager.HandleTreeView.ReadTreeViewToXML(_eqTreeView, XMLManager.PathManager.GetEqLibFilePath()); }
public const int ViewMargin = 100;//边距100 public ShowViewPanel(TreeNode node) { //初始化成员变量 this.DoubleBuffered = true;//重绘双缓冲开启,防止界面闪烁 base.AutoScroll = true; _treeNode = node; NodeInfo info = (NodeInfo)node.Tag; FormType = info._formType; ZoomFactor = 1; _viewOffset = new PointF(); switch (FormType) { case Princeple.FormType.PPC: PPC ppc = ModelFactory <PPC> .CreateByName(node.Text); ShowView = new PPCViewModel(ppc); break; case Princeple.FormType.FPGA: FPGA fpga = ModelFactory <FPGA> .CreateByName(node.Text); ShowView = new FPGAViewModel(fpga); break; case Princeple.FormType.ZYNQ: ZYNQ zynq = ModelFactory <ZYNQ> .CreateByName(node.Text); ShowView = new ZYNQViewModel(zynq); break; case Princeple.FormType.BOARD: Board board = ModelFactory <Board> .CreateByName(node.Text); ShowView = new BoardViewModel(board); break; case Princeple.FormType.BACKPLANE: BackPlane bp = ModelFactory <BackPlane> .CreateByName(node.Text); ShowView = new BackPlaneViewModel(bp); break; case Princeple.FormType.CONTIANER: Container ctn = ModelFactory <Container> .CreateByName(node.Text); ShowView = new ContainerViewModel(ctn); break; case Princeple.FormType.COMPONENT: Component cmp = ModelFactory <Component> .CreateByName(node.Text); ShowView = new ComponentViewModel(cmp); break; case Princeple.FormType.SYSTEM: SystemStru sys = ModelFactory <SystemStru> .CreateByName(node.Text); ShowView = new SystemStruViewModel(sys); break; case Princeple.FormType.TOPO: var sysName = node.Text.Substring(node.Text.IndexOf(':') + 1); SystemStru sys2 = ModelFactory <SystemStru> .CreateByName(sysName); ShowView = new StaticTopo(sys2); break; case Princeple.FormType.APP: var sysNode = node.Parent.Nodes[0]; var sysSName = sysNode.Text.Substring(sysNode.Text.IndexOf(':') + 1); SystemStru sys3 = ModelFactory <SystemStru> .CreateByName(sysSName); var sysStatic = new StaticTopo(sys3); ShowView = new DynamicTopo(sysStatic); ((DynamicTopo)ShowView).Components = (GetNodeCmps(node)); break; case Princeple.FormType.STATUS: ShowView = new Status(); break; default: //无对应界面类型退出 return; } SetViewSize(); //绑定界面点击事件的处理 if (ShowView as IDrawerChoosed != null) { this.MouseClick += new MouseEventHandler(((IDrawerChoosed)ShowView).MouseEventHandler); } if (ShowView as IDrawerNotify != null) { info.NodeInfoChanged += new Action <TargetNode>(((IDrawerNotify)ShowView).OnNodeInfoChanged); } ShowView.RedrawRequst += new Action(OnShowViewRedrawRequst); this.Scroll += new ScrollEventHandler(ShowViewPanel_Scroll); this.MouseWheel += new MouseEventHandler(ShowViewPanel_MouseWheel); }
public BackPlaneViewModel(BackPlane bp) { _bp = bp; }
} //当前视图被选中的图元 public BackPlaneViewModel(BackPlane bp, Rectangle rect) { _bp = bp; Init(rect); }
/// <summary> /// 通过一个BackPlane实例来初始化BackPlaneInitForm,用于修改背板的时候 /// </summary> /// <param name="bp"></param> public BackPlaneInitForm(BackPlane bp) { //TODO }