internal void Show(IDataConsumer consumer, IEnumerable <IMeasurement> measurements, Dictionary <string, Size> sizes) { this.sizes = sizes; IMeasurementObjectFactory f = StaticExtensionDataPerformerUI.GraphCollection; IDataConsumer c = consumer; indicators.RemoveMeasurementObjects(); Dictionary <IMeasurement, string> d = consumer.GetMeasurementsDictionary(); //!!! ALL INDICATORS c.GetMeasurementObjects(indicators, f); foreach (IMeasurement m in d.Keys) { if (measurements.Contains(m) & (!indicators.ContainsKey(m))) { string name = d[m]; object o = f[d[m], m]; if (o == null) { continue; } indicators[m] = o; Form form = o as Form; if (sizes.ContainsKey(name)) { form.Size = sizes[name]; } if (name != null) { form.Text = name; } form.Resize += (object sender, EventArgs e) => { sizes[form.Text] = form.Size; }; if (o is IRealtimeUpdate) { (o as IRealtimeUpdate).Update(); } } } foreach (object o in indicators.Values) { if (o is Form) { Form form = o as Form; form.Show(); form.BringToFront(); } } }
/// <summary> /// Adds a factory /// </summary> /// <param name="factory">The factory for the addition</param> public void Add(IMeasurementObjectFactory factory) { list.Add(factory); }
/// <summary> /// Adds indicator /// </summary> /// <param name="indicator">The indicator for add</param> static public void AddGraphIndicator(this IMeasurementObjectFactory indicator) { GraphCollection.Add(indicator); }
/// <summary> /// Gets measurement objects /// </summary> /// <param name="dataConsumer">Consumer of data</param> /// <param name="dictionary">Dictionary of objects</param> /// <param name="factory">Factory of objects</param> static public void GetMeasurementObjects(this IDataConsumer dataConsumer, Dictionary <IMeasurement, object> dictionary, IMeasurementObjectFactory factory) { Func <object, bool> condition = (object o) => { if (o is Form) { return(!(o as Form).IsDisposed); } return(true); }; dataConsumer.GetMeasurementObjects(dictionary, factory, condition); }