public void Edit(LedString pString) { this.panel = formMain.ledsys.SelectedPanel; this.stringContent = pString; try { this.Binding(); } catch { } }
public void DeleteSelected() { List <SimString> stringList = softBodyControl1.FindSelectedStrings(); foreach (SimString _string in stringList) { LedString stringToDel = null; Controller controllerToDel = null; bool delController = false; Router routerToDel = null; bool delRouter = false; foreach (Router router in topology) { foreach (Controller controller in router.Controllers) { foreach (LedString ledString in controller.Connections) { if (ledString.MassList == _string.MassList) { softBodyControl1.RemoveString(_string); stringToDel = ledString; controllerToDel = controller; if (controller.Connections.Count == 1) { delController = true; routerToDel = router; if (router.Controllers.Count == 1 && topology.Count > 1) { delRouter = true; } } } } } } if (stringToDel != null) { controllerToDel.Connections.Remove(stringToDel); stringToDel.Reference.Remove(); if (delController) { routerToDel.Controllers.Remove(controllerToDel); controllerToDel.Reference.Remove(); if (delRouter) { routerToDel.Reference.Remove(); topology.Remove(routerToDel); } } } } }
public formStringTest(LedString ps, formMain pfm) { this.InitializeComponent(); this.stringContent = ps; this.fm = pfm; this.panel = formMain.Ledsys.SelectedPanel; this.stringUpdate = new LedStringUpdate(); this.Text = formMain.ML.GetStr("formStringTest_Form_StringTest"); this.gbUpdate.Text = formMain.ML.GetStr("formStringTest_GroupBox_Update"); this.gbDelete.Text = formMain.ML.GetStr("formStringTest_GroupBox_Delete"); this.lblEncoding.Text = formMain.ML.GetStr("formStringTest_Label_Encoding"); this.lblIndex.Text = formMain.ML.GetStr("formStringTest_Label_Index"); this.lblDisplayWay.Text = formMain.ML.GetStr("formStringTest_Label_DisplayWay"); this.lblColor.Text = formMain.ML.GetStr("formStringTest_Label_Color"); this.lblContent.Text = formMain.ML.GetStr("formStringTest_Label_Content"); this.lblDeleteType.Text = formMain.ML.GetStr("formStringTest_Label_DeleteType"); this.lblDeleteIndex.Text = formMain.ML.GetStr("formStringTest_Label_DeleteIndex"); this.lblContentHint.Text = formMain.ML.GetStr("formStringTest_Label_ContentHint"); this.btnSend.Text = formMain.ML.GetStr("formStringTest_Button_Send"); this.btnDelete.Text = formMain.ML.GetStr("formStringTest_Button_Delete"); }
public void stringAdded(List <SimMass> massList) { isNew = false; //add the masses to an ledString LedString ledString = new LedString(); ledString.MassList = massList; Controller controller = new Controller(); controller.Connections.Add(ledString); Router router = topology.ElementAt(topology.Count - 1); controller.Router = router; ledString.Controller = controller; router.Controllers.Add(controller); controller.IDNum = router.ControllerIDs; router.ControllerIDs++; ledString.ID = controller.StringCount; controller.StringCount++; foreach (SimMass mass in ledString.MassList) { mass.MassID = controller.LEDIDs; controller.LEDIDs++; } TreeNode controllerNode = new TreeNode("Controller " + controller.IDNum); TreeNode ledStringNode = new TreeNode("String " + ledString.ID); controller.Reference = controllerNode; ledString.Reference = ledStringNode; controllerNode.Nodes.Add(ledStringNode); controller.Router.Reference.Nodes.Add(controllerNode); }
private void topo_treeView_DragDrop(object sender, DragEventArgs e) { TreeNode newNode; if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)) { Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y)); TreeNode destinationNode = ((TreeView)sender).GetNodeAt(pt); newNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); ///not implemented /* * if (newNode.TreeView == groups_treeView) * { * if (destinationNode == null) * { * DialogResult dr = MessageBox.Show("Do you want to create a new router?", "", MessageBoxButtons.YesNo); * if (dr == DialogResult.Yes) * { * int number = topology.Count + 1; //get number of new router * //create and configure new router, new controller and new string * TreeNode newRouterNode = new TreeNode("Router " + number); * Router newRouter = new Router(); * newRouter.Index = number; * newRouter.Reference = newRouterNode; * topology.Add(newRouter); * * Controller newController = new Controller(); * TreeNode newControllerNode = new TreeNode("Controller " + newRouter.ControllerIDs); * newRouter.ControllerIDs++; * newRouter.Controllers.Add(newController); * newController.Reference = newControllerNode; * newControllerNode.Nodes.Add((TreeNode)newNode.Clone()); * newRouterNode.Nodes.Add(newControllerNode); * * topo_treeView.Nodes.Add(newRouterNode); * } * } * else * if (destinationNode.TreeView != newNode.TreeView) //was not dragged from topo - topo * { * destinationNode.Nodes.Add((TreeNode)newNode.Clone()); * destinationNode.Expand(); * * } * } * * else */ #region topo_topo if (newNode.TreeView == topo_treeView) { #region newRouter if (destinationNode == null && newNode.Level == 2) { DialogResult dr = MessageBox.Show("Add the string to a new router?", "", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { int number = topology.Count + 1; LedString newString = null; //remove old place in topology foreach (Router router in topology) { foreach (Controller controller in router.Controllers) { foreach (LedString ledString in controller.Connections) { if (ledString.Reference == newNode) { newString = ledString; } } } } if (newString != null) { //remove references of controller to topology Controller toRemove = newString.Controller; Router oldRouter = toRemove.Router; toRemove.Router.Controllers.Remove(newString.Controller);// removes controller from router's list newString.Controller = null; TreeNode newRouterNode = new TreeNode("Router " + number); Router newRouter = new Router(); newRouter.Index = number; Controller newController = new Controller(); newController.IDNum = newRouter.ControllerIDs; TreeNode newControllerNode = new TreeNode("Controller " + newRouter.ControllerIDs); newRouter.ControllerIDs++; //add to new place in tree and remove old place newControllerNode.Nodes.Add((TreeNode)newNode.Clone()); newNode.Remove(); newString.Reference = newControllerNode.FirstNode; newRouterNode.Nodes.Add(newControllerNode); topo_treeView.Nodes.Add(newRouterNode); topology.Add(newRouter); //get right references for topology and treeview newRouter.Reference = newRouterNode; newRouter.Controllers.Add(newController); newController.Reference = newControllerNode; newController.Router = newRouter; newController.Connections.Add(newString); newString.Controller = newController; //remove controller from treeview toRemove.Reference.Remove(); //check if empty router is left if (oldRouter.Controllers.Count == 0) { oldRouter.Reference.Remove(); topology.Remove(oldRouter); } } } } #endregion else // //is a string being dragged from topo to topo // if (destinationNode != null) { if (destinationNode.TreeView == topo_treeView && newNode.Level == 2) { LedString newString = null; //remove old place in topology foreach (Router router in topology) { foreach (Controller controller in router.Controllers) { foreach (LedString ledString in controller.Connections) { if (ledString.Reference == newNode) { newString = ledString; } } } } Controller oldController = newString.Controller; Router oldRouter = oldController.Router; if (destinationNode.Level == 0)//dragged onto router { //find router Router newRouter = null; foreach (Router router in topology) { if (router.Reference == destinationNode) { newRouter = router; } } if (newRouter != null && oldRouter != newRouter) { //get new controller and node, add to topo and treeview Controller newController = new Controller(); TreeNode newControllerNode = new TreeNode("Controller " + newRouter.ControllerIDs); newController.Reference = newControllerNode; newRouter.Controllers.Add(newController); newController.Router = newRouter; newController.IDNum = newRouter.ControllerIDs; newRouter.ControllerIDs++; newRouter.Reference.Nodes.Add(newControllerNode); //add node and remove last position newControllerNode.Nodes.Add((TreeNode)newNode.Clone()); newNode.Remove(); //Remove old string from old place oldController.Connections.Remove(newString); //add newstring to new place newString.Reference = newControllerNode.FirstNode; newString.Controller = newController; newController.Connections.Add(newString); //check if old controller is empty if (oldController.Connections.Count == 0) { oldController.Reference.Remove(); oldRouter.Controllers.Remove(oldController); if (oldRouter.Controllers.Count == 0) { oldRouter.Reference.Remove(); topology.Remove(oldRouter); } } } if (oldRouter == newRouter) { MessageBox.Show("This string is already on this Router", "Error", MessageBoxButtons.OK); } } if (destinationNode.Level == 1 || destinationNode.Level == 2)//dragged onto controller or string { // // // // implement adding a string to a controller or string // // // // } } } } #endregion } }
private void openToolStripButton_Click(object sender, EventArgs e) { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB"); //goto new button to clear current stuff if (!isNew) { newToolStripButton_Click(sender, e); } isNew = false; DialogResult diaRes = openFileDialog1.ShowDialog(); if (diaRes == DialogResult.OK) { string file = openFileDialog1.FileName; #region XML Loading XDocument loadDoc = XDocument.Load(file); XNamespace ns = loadDoc.Root.GetDefaultNamespace(); //running count for generating routers (starts at 1 for default router) int routerCount = 1; foreach (XElement element in loadDoc.Elements()) //scene element { //each router foreach (XElement routerEle in element.Elements()) { routerCount++; Router newRouter = new Router(); topology.Add(newRouter); newRouter.Index = routerCount; TreeNode newRouterNode = new TreeNode("Router " + routerCount); newRouter.Reference = newRouterNode; topo_treeView.Nodes.Add(newRouterNode); List <SimString> stringList = new List <SimString>(); bool exist = false; float xPos; float yPos; UInt32 id; UInt16 id16; byte controllerID; byte lightID; foreach (XElement ele in routerEle.Elements()) { if (ele.Name.ToString().Contains("Light"))//if element is a lightpoint { id = (UInt32)Convert.ToInt32(ele.Attribute("id").Value); id16 = (UInt16)(id & 0xFFFF); lightID = (byte)(id16 & 0xFF); controllerID = (byte)(id16 >> 8); xPos = Math.Abs(Convert.ToSingle(ele.Attribute("x").Value) * 1000); yPos = Math.Abs(Convert.ToSingle(ele.Attribute("y").Value) * 1000); foreach (SimString sString in stringList) { if (sString.ID == controllerID) { // a string has the id, add to it exist = true; sString.AddMass(new SimMass(new Microsoft.Xna.Framework.Vector2(xPos, yPos), lightID)); } } if (!exist) { SimString newString = new SimString(); newString.ID = controllerID; newString.AddMass(new SimMass(new Microsoft.Xna.Framework.Vector2(xPos, yPos), lightID)); stringList.Add(newString); } exist = false; } } //add found lightpoints and controllers to the router foreach (SimString sString in stringList) { //create controllers Controller newController = new Controller(); TreeNode newControllerNode = new TreeNode("Controller " + newRouter.ControllerIDs); newRouter.ControllerIDs++; newController.IDNum = (ushort)sString.ID; newController.Reference = newControllerNode; newController.Router = newRouter; newRouter.Controllers.Add(newController); newRouterNode.Nodes.Add(newControllerNode); LedString newString = new LedString(); newString.Controller = newController; newString.ID = sString.ID; newString.MassList = sString.MassList; newString.NumOfLeds = sString.MassList.Count; newController.Connections.Add(newString); TreeNode newStringNode = new TreeNode("String " + newController.StringCount); newController.StringCount++; newString.Reference = newStringNode; newControllerNode.Nodes.Add(newStringNode); } //add this router's masses to the simulation softBodyControl1.loadMasses(stringList); } } //parsing done #endregion } }