/// <summary> /// Remove logger entry from DataGridView, /// </summary> /// <param name="tag">logger entry.</param> public void RemoveLoggerEntry(TagData tag) { if (m_entryDic.ContainsKey(tag.ToShortString())) { if (!m_entryDic[tag.ToShortString()].IsLoaded) m_logCount--; string path = tag.M_path; m_entryDic[tag.ToShortString()].ClearPoint(); m_zCnt.GraphPane.CurveList.Remove(m_entryDic[tag.ToShortString()].CurrentLineItem); m_zCnt.GraphPane.CurveList.Remove(m_entryDic[tag.ToShortString()].TmpLineItem); m_entryDic.Remove(tag.ToShortString()); UpdateGraphCallBack dlg = new UpdateGraphCallBack(UpdateGraph); this.Invoke(dlg, new object[] { true }); } if (m_tagDic.ContainsKey(tag.ToShortString())) m_tagDic.Remove(tag.ToShortString()); }
/// <summary> /// Changed the logger object. /// </summary> /// <param name="orgFullPN">the orijinal FullPN.</param> /// <param name="entry">the logger object.</param> public void LoggerChanged(string orgFullPN, LoggerEntry entry) { TagData otag = new TagData(entry.ModelID, entry.ID, entry.Type, orgFullPN, true); TagData ntag = new TagData(entry.ModelID, entry.ID, entry.Type, entry.FullPN, true); otag.isLoaded = entry.IsLoaded; otag.FileName = entry.FileName; ntag.isLoaded = entry.IsLoaded; ntag.FileName = entry.FileName; if (!m_entryDic.ContainsKey(otag.ToShortString())) return; if (orgFullPN != entry.FullPN) { m_entryDic[ntag.ToShortString()] = m_entryDic[otag.ToShortString()]; m_entryDic[ntag.ToShortString()].Path = entry.FullPN; m_entryDic.Remove(otag.ToShortString()); } m_entryDic[ntag.ToShortString()].SetStyle(entry.LineStyle); m_entryDic[ntag.ToShortString()].SetVisible(entry.IsShown); m_entryDic[ntag.ToShortString()].SetColor(entry.Color); m_entryDic[ntag.ToShortString()].SetLineWidth(entry.LineWidth); m_entryDic[ntag.ToShortString()].SetY2Axis(entry.IsY2Axis); if (entry.IsY2Axis) { m_zCnt.GraphPane.Y2Axis.IsVisible = true; } else { bool isHit = false; foreach (string entStr in m_entryDic.Keys) { if (m_entryDic[entStr].IsY2) { m_zCnt.GraphPane.Y2Axis.IsVisible = true; isHit = true; break; } } if (isHit == false) m_zCnt.GraphPane.Y2Axis.IsVisible = false; } if (entry.IsShown) { if (!m_zCnt.GraphPane.IsZoomed) { m_zCnt.AxisChange(); } } m_zCnt.Refresh(); }
/// <summary> /// Process when user delete the logger. /// </summary> /// <param name="tag">the tag of logger entry.</param> public void DeleteTraceEntry(TagData tag) { EcellObject m_currentObj = m_owner.DataManager.GetEcellObject(tag.M_modelID, tag.M_key, tag.Type); // for load data. if (m_currentObj == null) { RemoveLoggerEntry(tag); m_tagDic.Remove(tag.ToShortString()); if (m_logList.Contains(tag)) m_logList.Remove(tag); return; } foreach (EcellData d in m_currentObj.Value) { if (d.EntityPath == tag.M_path) { d.Logged = false; } } m_owner.DataManager.DataChanged(m_currentObj.ModelID, m_currentObj.Key, m_currentObj.Type, m_currentObj); }
/// <summary> /// Get the flag whether this entry is displayed. /// </summary> /// <param name="entry">the logger entry.</param> /// <returns>Return true if </returns> public bool IsDisplay(LoggerEntry entry) { TagData tag = new TagData(entry.ModelID, entry.ID, entry.Type, entry.FullPN, true); tag.isLoaded = entry.IsLoaded; tag.FileName = entry.FileName; if (m_entryDic.ContainsKey(tag.ToShortString())) return true; return false; }
/// <summary> /// Add logger entry to DataGridView and ZedGraphControl. /// Added logger entry is registed to m_paneDic. /// </summary> /// <param name="entry">the log entry</param> /// <param name="tag">the tag of logger entry</param> public void AddLoggerEntry(LoggerEntry entry, TagData tag) { LineItem i = m_zCnt.GraphPane.AddCurve(entry.FullPN, new PointPairList(), entry.Color, SymbolType.None); i.Line.Width = entry.LineWidth; i.Line.Style = entry.LineStyle; LineItem i1 = m_zCnt.GraphPane.AddCurve(entry.FullPN, new PointPairList(), entry.Color, SymbolType.None); i1.Line.Width = entry.LineWidth; i1.Line.Style = entry.LineStyle; m_entryDic.Add(tag.ToShortString(), new TraceEntry(tag.M_path, i, i1, tag.IsContinue, tag.isLoaded)); m_tagDic.Add(tag.ToShortString(), tag.IsContinue); if (!tag.isLoaded) { if (m_logCount == 0 && (m_owner.PluginManager.Status == ProjectStatus.Running || m_owner.PluginManager.Status == ProjectStatus.Suspended || m_owner.PluginManager.Status == ProjectStatus.Stepping)) this.StartSimulation(); m_logCount++; } else { LogData log = m_owner.DataManager.LoadSimulationResult(entry.FileName); string[] ele = log.propName.Split(new char[] { ':' }); LogData newLog = new LogData(log.model, log.key, Constants.xpathLog, ele[ele.Length - 1], log.logValueList); newLog.IsLoaded = true; newLog.FileName = entry.FileName; List<LogData> logList = new List<LogData>(); logList.Add(newLog); m_entryDic[tag.ToShortString()].SetVisible(entry.IsShown); AddPoints(log.logValueList[log.logValueList.Count - 1].time, log.logValueList[log.logValueList.Count - 1].time, logList, true); } m_logList.Add(tag); m_entryCount++; }