public AnalysisControlTest(ProcessSync communication, Window_ECG parent, TabItem parentTab, SynchronizationContext context)
 {
     _context = context;
     _communication = communication;
     _analysisEvent = new ToGUIDelegate(analysisEventHandler);
     _communication.ToGUIEvent += _analysisEvent;
     _parent = parent;
     _parentTab = parentTab;
     InitializeComponent();
 }
        private TabItem addTabItem()
        {
            int count = _tabContainer.TabItems.Count;

            NewAnalysisDialogBox analysisNameDialogBox = new NewAnalysisDialogBox(string.Format("Analysis {0}", count));
            analysisNameDialogBox.ShowDialog();

            if (analysisNameDialogBox.DialogResult == true)
            {
                if (!_tabContainer.AnalysisNames.Contains(analysisNameDialogBox.Answer))
                {
                    TabItem tab = tab = new TabItem();
                    tab.Header = analysisNameDialogBox.Answer;
                    tab.Name = string.Format("analysis{0}", count);
                    tab.HeaderTemplate = analysisTabControl.FindResource("tabHeader") as DataTemplate;

                    _tabContainer.AnalysisNames.Add(analysisNameDialogBox.Answer);

                    ProcessSync communication = new ProcessSync();
                    _tabContainer.CommunicationList.Insert(count - 1, communication);

                    UserControl analysisControl = new AnalysisControl(communication, this, tab, _context, analysisNameDialogBox.Answer);
                    _tabContainer.AnalysisControlList.Insert(count - 1, analysisControl);
                    tab.Content = analysisControl;

                    Processing ecgAnalysis = new Processing(communication);
                    Thread analysisThread = new Thread(ecgAnalysis.run);
                    _tabContainer.ThreadList.Insert(count - 1, analysisThread);
                    analysisThread.Start();

                    _tabContainer.TabItems.Insert(count - 1, tab);
                    return tab;
                }
                else
                {
                    MessageBox.Show("Same analysis already exists.");
                    addSelected = false;
                    return null;
                }

            }
            else
            {
                addSelected = false;
                return null;

            }
        }
Example #3
0
 public Processing(ProcessSync communication)
 {
     this._communication = communication;
     TimeoutState = new Idle(5);
     Stop = false;
 }
 public AnalysisControl(ProcessSync communication, Window_ECG parent, TabItem parentTab, SynchronizationContext context, string analysisName)
     : this(communication, parent, parentTab, context)
 {
     this.AnalysisName = analysisName;
 }