private void _overviewItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { List <Model.IReport> newItems; if (e.NewItems != null) { newItems = e.NewItems.Cast <Model.IReport>().ToList(); } else { newItems = new List <Model.IReport>(); } List <Model.IReport> oldItems; if (e.OldItems != null) { oldItems = e.OldItems.Cast <Model.IReport>().ToList(); } else { oldItems = new List <Model.IReport>(); } UniReportContent tmpContent; switch (e.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new UniReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; OverviewTrend.Add(tmpContent); } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Move: break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: UnivariateContent.Clear(); break; case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new UniReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; OverviewTrend[e.OldStartingIndex + i] = tmpContent; } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Reset: List <UniReportContent> tmpLst = new List <UniReportContent>(); for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new UniReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; tmpLst.Add(tmpContent); } OverviewTrend.Clear(); OverviewTrend = new ObservableCollection <UniReportContent>(tmpLst); break; default: break; } }
private void _wallRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { List <Model.IReport> newItems; #region test output for graph #region preparing job, unknown if (e.NewItems != null) { newItems = e.NewItems.Cast <Model.IReport>().ToList(); } else { newItems = new List <Model.IReport>(); } List <Model.IReport> oldItems; if (e.OldItems != null) { oldItems = e.OldItems.Cast <Model.IReport>().ToList(); } else { oldItems = new List <Model.IReport>(); } WallReportContent tmpContent; WallMtbReportContent tmpMtbContent; #endregion #region reflection to action switch (e.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: for (int i = 0; i < newItems.Count; i++) { //WallMtbContent.Clear(); tmpContent = new WallReportContent(); tmpMtbContent = new WallMtbReportContent(); #region oxyone if (newItems[i] is Model.IOxyReport) { //handle the oxy type output Model.IOxyReport rpt = newItems[i] as Model.IOxyReport; for (int j = 0; j < rpt.OxyContents.Count; j++) { Model.IOxyRptOutput output = rpt.OxyContents[j]; switch (output.OxyOType) { case Dashboard.Model.OxyOType.GRAPH: switch (output.Tag.ToString()) { case "Bar": tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case "Pie": tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case "Individual": tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case "MR": tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); break; default: break; } break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; WallContent.Add(tmpContent); } #endregion #region mtb one else // handle the MTB type rpt { Model.IReport rpt = newItems[i]; for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: switch (output.Tag.ToString()) { case "TSPlot": tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); tmpMtbContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); break; default: break; } break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; WallContent.Add(tmpContent); tmpMtbContent.Title = rpt.Title; tmpMtbContent.RawData = rpt.RawData; WallMtbContent.Add(tmpMtbContent); } #endregion } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: WallContent.Clear(); break; case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: //need to add some Code for handling oxy and mtb, need testing => no need? break; case System.Collections.Specialized.NotifyCollectionChangedAction.Move: case System.Collections.Specialized.NotifyCollectionChangedAction.Reset: default: break; } #endregion #endregion #region successful one(close) //List<Model.IOxyReport> newItems; //if (e.NewItems != null) //{ // newItems = e.NewItems.Cast<Model.IOxyReport>().ToList(); //} //else //{ // newItems = new List<Model.IOxyReport>(); //} //List<Model.IOxyReport> oldItems; //if (e.OldItems != null) //{ // oldItems = e.OldItems.Cast<Model.IOxyReport>().ToList(); //} //else //{ // oldItems = new List<Model.IOxyReport>(); //} //WallReportContent tmpContent; //switch (e.Action) //{ // case System.Collections.Specialized.NotifyCollectionChangedAction.Add: // for (int i = 0; i < newItems.Count; i++) // { // Model.IOxyReport rpt = newItems[i]; // tmpContent = new WallReportContent(); // for (int j = 0; j < rpt.OxyContents.Count; j++) // { // Model.IOxyRptOutput output = rpt.OxyContents[j]; // switch (output.OxyOType) // { // case Dashboard.Model.OxyOType.GRAPH: // switch (output.Tag.ToString()) // { // case "Bar": // tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr); // break; // case "Pie": // tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr); // break; // case "Individual": // tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); // break; // case "MR": // tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); // break; // default: // break; // } // break; // default: // break; // } // } // tmpContent.Title = rpt.Title; // tmpContent.RawData = rpt.RawData; //? // WallContent.Add(tmpContent); // } // break; // case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: // WallContent.Clear(); // break; // case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: // #region after testing add, could be open // //for (int i = 0; i < newItems.Count; i++) // //{ // // Model.IOxyReport rpt = newItems[i]; // // tmpContent = new WallReportContent(); // // for (int j = 0; j < rpt.Contents.Count; j++) // // { // // Model.IOxyRptOutput output = rpt.OxyContents[j]; // // switch (output.OxyOType) // // { // // case Dashboard.Model.OxyOType.GRAPH: // // switch (output.Tag.ToString()) // // { // // case "Bar": // // tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr); // // break; // // case "Pie": // // tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr); // // break; // // case "Individual": // // tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); // // break; // // case "MR": // // tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); // // break; // // default: // // break; // // } // // break; // // default: // // break; // // } // // } // // tmpContent.Title = rpt.Title; // // tmpContent.RawData = rpt.RawData; //? // // WallContent[e.OldStartingIndex + i] = tmpContent; // //} // #endregion // break; // case System.Collections.Specialized.NotifyCollectionChangedAction.Move: // case System.Collections.Specialized.NotifyCollectionChangedAction.Reset: // default: // break; //} #endregion RaisePropertyChanged("_wallRptItems"); }
private void _multiRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { List <Model.IReport> newItems; if (e.NewItems != null) { newItems = e.NewItems.Cast <Model.IReport>().ToList(); } else { newItems = new List <Model.IReport>(); } List <Model.IReport> oldItems; if (e.OldItems != null) { oldItems = e.OldItems.Cast <Model.IReport>().ToList(); } else { oldItems = new List <Model.IReport>(); } MultiReportContent tmpContent; #region 針對動作修改對應的 _multivariateContent 內容 switch (e.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new MultiReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case Dashboard.Model.MtbOType.TABLE: tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr); if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0) { tmpContent.ShowTable = true; } else { tmpContent.ShowTable = false; } break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; MultiVariateContent.Add(tmpContent); } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Move: break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: MultiVariateContent.Clear(); break; case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new MultiReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case Dashboard.Model.MtbOType.TABLE: tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr); if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0) { tmpContent.ShowTable = true; } else { tmpContent.ShowTable = false; } break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; MultiVariateContent[e.OldStartingIndex + i] = tmpContent; } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Reset: List <MultiReportContent> tmpLst = new List <MultiReportContent>(); for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new MultiReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr); break; case Dashboard.Model.MtbOType.TABLE: tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr); if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0) { tmpContent.ShowTable = true; } else { tmpContent.ShowTable = false; } break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; tmpLst.Add(tmpContent); } MultiVariateContent.Clear(); MultiVariateContent = new ObservableCollection <MultiReportContent>(tmpLst); break; default: break; } #endregion }
private void _corrRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { List <Model.IReport> newItems; if (e.NewItems != null) { newItems = e.NewItems.Cast <Model.IReport>().ToList(); } else { newItems = new List <Model.IReport>(); } List <Model.IReport> oldItems; if (e.OldItems != null) { oldItems = e.OldItems.Cast <Model.IReport>().ToList(); } else { oldItems = new List <Model.IReport>(); } CorrReportContent tmpContent; switch (e.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new CorrReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: if (output.Tag.ToString() == "Trend") { tmpContent.TrendChart = Tool.BinaryToWPFImage(output.OutputInByteArr); tmpContent.VisibilityOfTrendChart = true; } else { tmpContent.ScatterPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); tmpContent.VisibilityOfScatterPlot = true; } break; case Dashboard.Model.MtbOType.TABLE: tmpContent.CorrTable = Tool.BinaryToDataTable(output.OutputInByteArr); tmpContent.ShowTable = true; break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; CorrContent.Add(tmpContent); } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: CorrContent.Clear(); break; case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: for (int i = 0; i < newItems.Count; i++) { Model.IReport rpt = newItems[i]; tmpContent = new CorrReportContent(); for (int j = 0; j < rpt.Contents.Count; j++) { Model.IRptOutput output = rpt.Contents[j]; switch (output.OType) { case Dashboard.Model.MtbOType.GRAPH: if (output.Tag.ToString() == "Trend") { tmpContent.TrendChart = Tool.BinaryToWPFImage(output.OutputInByteArr); } else { tmpContent.ScatterPlot = Tool.BinaryToWPFImage(output.OutputInByteArr); } break; case Dashboard.Model.MtbOType.TABLE: tmpContent.CorrTable = Tool.BinaryToDataTable(output.OutputInByteArr); break; default: break; } } tmpContent.Title = rpt.Title; tmpContent.RawData = rpt.RawData; CorrContent[e.OldStartingIndex + i] = tmpContent; } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Move: case System.Collections.Specialized.NotifyCollectionChangedAction.Reset: default: break; } }