private void UpdateStatus(LedNodeView curNode) { //Update information in to Status box tbGlobalInfo.Visible = false; lbGlobalInfo.Visible = false; tbValue.Visible = false; lbValue.Visible = false; lbState.Visible = false; lbLed.Visible = false; if (curNode != null) { int ledIndex = curNode.LedIndex; int stateIndex = curNode.StateIndex; lbState.Visible = true; lbState.Text = "State " + (stateIndex+1).ToString() + "/"+stateNumber.ToString(); { //Update value only switch (curNode.Type) { case Constants.StateType.Data: lbLed.Visible = true; tbValue.Visible = true; lbValue.Visible = true; lbGlobalInfo.Visible = true; tbGlobalInfo.Visible = true; lbLed.Text = "Led " + (ledIndex+1).ToString()+"/"+ledNumber.ToString(); lbValue.Text = "Bright Value"; tbValue.Text = curNode.Value.ToString(); lbGlobalInfo.Text = "Bright time"; //tbGlobalInfo.Text = Data.Get_time(cur_state_index).ToString(); break; case Constants.StateType.StartFor: lbGlobalInfo.Visible = true; tbGlobalInfo.Visible = true; lbGlobalInfo.Text = "Loop time"; break; } } } }
private void SelectNode(int stateIndex, int ledIndex) { foreach (Control c in pnLedNode.Controls) { if (c is LedNodeView) { LedNodeView node = (LedNodeView)c; if ((node.LedIndex == ledIndex) && (node.StateIndex == stateIndex)) { CurNode = node; break; } } } }
private void ShowLedData(DataLedArrayNode dataStructure) { //TODO: showList.Clear(); pnLedNode.Controls.Clear(); //ArrayList led_state= (ArrayList)dataStructure.Led[0]; stateNumber = dataStructure.StateNumber; ledNumber = dataStructure.LedNumber; for (int stateIndex = 0; stateIndex < dataStructure.StateNumber; stateIndex++) { ArrayList CurState = (ArrayList)dataStructure.GetState(stateIndex); Constants.StateType StateType = dataStructure.GetStateType(stateIndex); switch (StateType) { case Constants.StateType.Data: for (int ledIndex = 0; ledIndex < dataStructure.LedNumber; ledIndex++) { LedNodeView StateNode = new LedNodeView(); StateNode.color = Color.Blue; StateNode.Location = new System.Drawing.Point(10 + 30 * ledIndex, 5 + 30 * stateIndex); StateNode.Size = new System.Drawing.Size(25, 25); StateNode.Name = "LedNodeView" + (char)(ledIndex + 1) + (char)(stateIndex + 1);//LedNodeView + LedIndex + StateIndex StateNode.Value = (int)CurState[ledIndex + 2]; StateNode.Type = Constants.StateType.Data; StateNode.LedIndex = ledIndex; StateNode.StateIndex = stateIndex; StateNode.MouseClick += new MouseEventHandler(LedNodeView_Click); StateNode.MouseWheel += new MouseEventHandler(LedNodeView_Mouse_Wheel); StateNode.MouseDoubleClick += new MouseEventHandler(LedNodeView_Mouse_Double_Click); StateNode.MouseMove += new MouseEventHandler(LedNodeView_MouseMove); StateNode.MouseDown += new MouseEventHandler(pnLedNode_MouseDown); StateNode.MouseUp += new MouseEventHandler(pnLedNode_MouseUp); pnLedNode.Controls.Add(StateNode); showList.Add(StateNode); //if (curNode == null) curNode = StateNode; } break; case Constants.StateType.StartFor: LedNodeView StartForNode = new LedNodeView(); StartForNode.color = Color.Red; StartForNode.Location = new System.Drawing.Point(10, 5 + 30 * stateIndex); StartForNode.Size = new System.Drawing.Size((int)(30 * dataStructure.LedNumber) - 5, 25); StartForNode.Name = "LedNodeView" + (char)1 + (char)(stateIndex + 1);//LedNodeView + StateIndex StartForNode.Value = dataStructure.GetCommonValue(stateIndex); StartForNode.Type = Constants.StateType.StartFor; StartForNode.LedIndex = 0; StartForNode.StateIndex = stateIndex; StartForNode.MouseClick += new MouseEventHandler(LedNodeView_Click); StartForNode.MouseWheel += new MouseEventHandler(LedNodeView_Mouse_Wheel); pnLedNode.Controls.Add(StartForNode); showList.Add(StartForNode); break; case Constants.StateType.Endfor: LedNodeView EndForNode = new LedNodeView(); EndForNode.color = Color.Yellow; EndForNode.Location = new System.Drawing.Point(10, 5 + 30 * stateIndex); EndForNode.Size = new System.Drawing.Size((int)(30 * dataStructure.LedNumber) - 5, 25); EndForNode.Name = "LedNodeView" + (char)1 + (char)(stateIndex + 1);//LedNodeView + StateIndex EndForNode.Value = (int)Constants.MAX_BRIGHT; EndForNode.Type = Constants.StateType.Endfor; EndForNode.LedIndex = 0; EndForNode.StateIndex = stateIndex; EndForNode.Text = "}"; //EndForNode.TextAlign = StringAlignment.Far; EndForNode.MouseClick += new MouseEventHandler(LedNodeView_Click); EndForNode.MouseWheel += new MouseEventHandler(LedNodeView_Mouse_Wheel); pnLedNode.Controls.Add(EndForNode); showList.Add(EndForNode); break; } } if (curIndex != defaultIndex) { SelectNode(curIndex.stateIndex, curIndex.ledIndex); } }
private void LedNodeView_Click(object sender, MouseEventArgs e) { foreach (LedNodeView c in selectedList) { c.Choosed = false; } selectedList.Clear(); if (curNode != (LedNodeView)sender) { CurNode = (LedNodeView)sender; NotifyChange("CurIndex"); } }