Example #1
0
        /// <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());
        }
Example #2
0
        /// <summary>
        /// Add the simulation data and redraw the points.
        /// </summary>
        /// <param name="maxAxis">max axis of x.</param>
        /// <param name="nextTime">current time of simulation.</param>
        /// <param name="data">the simulation data.</param>
        /// <param name="isLoaded">the flag whether this log is loaded.</param>
        public void AddPoints(double maxAxis, double nextTime, List<LogData> data, bool isLoaded)
        {
            bool isAxis = false;

            if (!isLoaded && m_logCount <= 0) return;

            if (m_zCnt.GraphPane.IsZoomed)
            {
                if (m_current > m_zCnt.GraphPane.XAxis.Scale.Max ||
                    nextTime < m_zCnt.GraphPane.XAxis.Scale.Min)
                {
                    m_current = nextTime;
                    return;
                }
            }
            else
            {
                if (nextTime > m_zCnt.GraphPane.XAxis.Scale.Max)
                {
                    if (nextTime > m_zCnt.GraphPane.XAxis.Scale.Max * TracerWindow.s_duple)
                    {
                        m_zCnt.GraphPane.XAxis.Scale.Max = maxAxis;
                        foreach (string key in m_entryDic.Keys)
                        {
                            if (m_entryDic[key].IsLoaded) continue;
                            m_entryDic[key].ClearPoint();
                        }
                    }
                    else
                    {
                        m_zCnt.GraphPane.XAxis.Scale.Max = maxAxis;
                        foreach (string key in m_entryDic.Keys)
                        {
                            if (m_entryDic[key].IsLoaded) continue;
                            m_entryDic[key].ThinPoints();
                        }
                    }
                    isAxis = true;
                }
            }
            m_current = nextTime;

            if (data == null) return;
            foreach (LogData d in data)
            {
                string file = "";
                if (d.FileName != null) file = d.FileName;
                string p;
                if (!d.type.Equals(EcellObject.SYSTEM))
                {
                    p = d.type + ":" + d.key + ":" + d.propName + ":" + file;
                }
                else
                {
                    string pre, post;
                    int ind = d.key.LastIndexOf('/');
                    if (d.key.Equals("/"))
                    {
                        pre = "";
                        post = "/";
                    }
                    else
                    {
                        if (ind == 0)
                        {
                            pre = "/";
                        }
                        else
                        {
                            pre = d.key.Substring(0, ind);
                        }
                        post = d.key.Substring(ind + 1);
                    }
                    p = d.type + ":" + pre + ":" + post + ":" + d.propName + ":" + file;
                }
                if (!m_entryDic.ContainsKey(p)) continue;
                if (m_entryDic[p].IsLoaded != d.IsLoaded) continue;

                bool isRet = m_entryDic[p].AddPoint(d.logValueList,
                    m_zCnt.GraphPane.XAxis.Scale.Max,
                    m_zCnt.GraphPane.XAxis.Scale.Min,
                    m_zCnt.GraphPane.YAxis.Scale.Max,
                    m_zCnt.GraphPane.YAxis.Scale.Min,
                    m_zCnt.GraphPane.IsZoomed);
                if (isAxis == false)
                {
                    isAxis = isRet;
                }
            }
            // Zoom���Ɏ��̕ύX����Ȃ��悤����
            if (m_zCnt.GraphPane.IsZoomed) isAxis = false;

            if (isAxis == true)
            {
                // �ϓ������Ȃ��g���[�X�ł͓_���������ɂȂ��Ă��܂����߁A
                // �ϓ��̏�Ԃ�m�F��Line.IsSmooth�v���p�e�B��true�ɕύX����B
                // �S�f�[�^��ύX���Ȃ��̂́ADrosophila�̂悤�ɐU�����Ă���ꍇ��
                // Smooth�𗘗p����ƕE���������Ă��܂����߂Ɏg�p�ł��Ȃ������B
                foreach (string key in m_entryDic.Keys)
                {
                    if (m_entryDic[key].IsLoaded) continue;
                    if (m_isLog) continue;
                    if (m_entryDic[key].CurrentLineItem.Line.IsSmooth) continue;
                    if (m_zCnt.GraphPane.IsZoomed) continue;
                    if (!m_entryDic[key].IsSmoothing(m_zCnt.GraphPane.XAxis.Scale.Max,
                        m_zCnt.GraphPane.XAxis.Scale.Min,
                        m_zCnt.GraphPane.YAxis.Scale.Max,
                        m_zCnt.GraphPane.YAxis.Scale.Min,
                        m_zCnt.Width, m_zCnt.Height))
                    {
                        m_entryDic[key].CurrentLineItem.Line.IsSmooth = true;
                        m_entryDic[key].TmpLineItem.Line.IsSmooth = true;
                    }
                    else
                    {
                        m_entryDic[key].CurrentLineItem.Line.IsSmooth = false;
                        m_entryDic[key].TmpLineItem.Line.IsSmooth = false;
                    }

                }
            }
            UpdateGraphCallBack dlg = new UpdateGraphCallBack(UpdateGraph);
            this.Invoke(dlg, new object[] { isAxis });
        }