/// <summary> /// Create a clone of our display, and show /// </summary> /// <param name="state"></param> private void CreateCloneOfDisplay(object state) { MemberInfo mI = FieldToCheck == null ? (MemberInfo)PropertyToCheck : (MemberInfo)FieldToCheck; MM_Form NewForm = GenerateTrackingForm(this.Title, this.ElemType, mI, Elements.ToArray()); if (Elements.Count == 1) { NewForm.Text = this.Title + " " + Elements[0].ToString(); } else { NewForm.Text = this.Title + " " + this.ElemType + " (" + Elements.Count.ToString("#,##0") + ")"; } NewForm.StartPosition = FormStartPosition.Manual; NewForm.Location = Cursor.Position; MM_LoadGen_Tracking_Operator Oper = (MM_LoadGen_Tracking_Operator)NewForm.Controls[0]; Oper.BeginTracking(); Oper.TrackingCurve.Clear(); for (int a = 0; a < TrackingCurve.Points.Count; a++) { Oper.TrackingCurve.AddPoint(TrackingCurve.Points[a]); } Oper.BaseValue = BaseValue; Oper.zgGraph.GraphPane.XAxis.IsVisible = true; Oper.zgGraph.GraphPane.YAxis.IsVisible = true; zgGraph.AxisChange(); zgGraph.Invalidate(); Data_Integration.DisplayForm(NewForm, Thread.CurrentThread); }
/// <summary> /// Generate a standalone tracking form /// </summary> /// <param name="Title"></param> /// <param name="ElemType"></param> /// <param name="MemberToCheck"></param> /// <param name="Elements"></param> public static MM_Form GenerateTrackingForm(String Title, MM_Element_Type ElemType, MemberInfo MemberToCheck, MM_Element[] Elements) { MM_Form NewForm = new MM_Form(); MM_LoadGen_Tracking_Operator Tracking = new MM_LoadGen_Tracking_Operator(Title, ElemType, MemberToCheck); NewForm.Icon = Properties.Resources.CompanyIcon; Tracking.Elements.AddRange(Elements); Tracking.Dock = DockStyle.Fill; NewForm.Controls.Add(Tracking); return(NewForm); }
/// <summary> /// Handle our drop-down item /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTrendHistory_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem.Tag == null || e.ClickedItem.Tag is MemberInfo == false) { return; } MM_Element_Type ElemType = (MM_Element_Type)(((ToolStripItem)sender).Tag); MemberInfo mI = (MemberInfo)e.ClickedItem.Tag; btnTrendHistory.Text = ElemType.Name + " " + mI.Name + " " + e.ClickedItem.OwnerItem.OwnerItem.Text; flwMain.Controls.Clear(); MM_LoadGen_Tracking_Operator FoundOperator; SortedDictionary <String, MM_LoadGen_Tracking_Operator> Trackers = new SortedDictionary <string, MM_LoadGen_Tracking_Operator>(); foreach (MM_Element Elem in MM_Repository.TEIDs.Values) { if (Elem.ElemType == ElemType) { //Determine our key String Key = ""; if (e.ClickedItem.OwnerItem.OwnerItem == byOperatorToolStripMenuItem) { Key = Elem.Operator.Alias; } else if (e.ClickedItem.OwnerItem.OwnerItem == byCountyToolStripMenuItem) { if (Elem.Substation == null || Elem.Substation.County == null) { Key = "Unknown"; } else { Key = Elem.Substation.County.Name; } } if (!Trackers.TryGetValue(Key, out FoundOperator)) { Trackers.Add(Key, FoundOperator = new MM_LoadGen_Tracking_Operator(Key, ElemType, mI)); } FoundOperator.Elements.Add(Elem); } } foreach (MM_LoadGen_Tracking_Operator Oper in Trackers.Values) { Oper.BeginTracking(); } flwMain.Controls.AddRange(Trackers.Values.ToArray()); }