private EpisodeDescription getEpisode(EpisodeDescriptionEntry ede) { EpisodeDescription epi = new EpisodeDescription(); epi.GVValue = ede.GVValue; epi.Start._Event = ede.Event1.SelectedItem; //may be EDE or string epi.End._Event = ede.Event2.SelectedItem; //may be EDE or string epi.useEOF = (bool)ede.useEOF.IsChecked; Object o = ede.GV1.SelectedItem; if (o != null && o.GetType().Name == "GVEntry") epi.Start._GV = (GVEntry)o; else epi.Start._GV = null; o = ede.GV2.SelectedItem; if (o != null && o.GetType().Name == "GVEntry") epi.End._GV = (GVEntry)o; else epi.End._GV = null; string str = ede.Comp1.Text; epi.Start._comp = str == "=" ? Comp.equals : str == "!=" ? Comp.notequal : str == ">" ? Comp.greaterthan : Comp.lessthan; str = ede.Comp2.Text; epi.End._comp = str == "=" ? Comp.equals : str == "!=" ? Comp.notequal : str == ">" ? Comp.greaterthan : Comp.lessthan; if (ede.GVValue1TB.IsVisible && ede.GVValue1TB.IsEnabled) epi.Start._GVVal = Convert.ToInt32(ede.GVValue1TB.Text); else if (ede.GVValue1CB.IsEnabled) epi.Start._GVVal = epi.Start._GV.ConvertGVValueStringToInteger((string)ede.GVValue1CB.SelectedItem); // if (ede.GVValue2TB.IsVisible && ede.GVValue2TB.IsEnabled) epi.End._GVVal = Convert.ToInt32(ede.GVValue2TB.Text); else if (ede.GVValue2CB.IsEnabled) epi.End._GVVal = epi.End._GV.ConvertGVValueStringToInteger((string)ede.GVValue2CB.SelectedItem); epi.Start._offset = Convert.ToDouble(ede.Offset1.Text); epi.End._offset = Convert.ToDouble(ede.Offset2.Text); o = ede.Event3.SelectedItem; if (o.GetType() == typeof(EventDictionaryEntry)) { epi.Exclude = new ExclusionDescription(); epi.Exclude.startEvent = (EventDictionaryEntry)o; object o1 = ede.Event4.SelectedItem; if (o1.GetType() == typeof(EventDictionaryEntry) && o != o1) epi.Exclude.endEvent = (EventDictionaryEntry)o1; } //create list of any counter routines for (int i = 1; i < ede.EpisodeDescriptionPanel.Items.Count - 1; i++) { int v; PKDetectorEventCounter pkd = (PKDetectorEventCounter)ede.EpisodeDescriptionPanel.Items[i]; PKDetectorEventCounterDescription pkdDesc = new PKDetectorEventCounterDescription(bdf); pkdDesc.EventNames = new List<string>(0); foreach (string s in pkd.EventSelection.SelectedItems) pkdDesc.EventNames.Add("**PKDet" + s); //create list of selected full Event names v = pkd.Found.SelectedIndex; if (v == 0) pkdDesc.found = null; else pkdDesc.found = v == 1; pkdDesc.includeChi2=(bool)pkd.Chi2.IsChecked; if (pkdDesc.includeChi2) { pkdDesc.comp1 = pkd.Comp1.SelectedIndex == 0 ? Comp.lessthan : Comp.greaterthan; pkdDesc.chi2 = pkd.chi2; } pkdDesc.includeMagnitude = (bool)pkd.Magnitude.IsChecked; if (pkdDesc.includeMagnitude) { pkdDesc.comp2 = pkd.Comp2.SelectedIndex == 0 ? Comp.greaterthan : Comp.lessthan; pkdDesc.magnitude = pkd.magnitude; } v=pkd.Sign.SelectedIndex; if (v == 0) pkdDesc.positive = null; else pkdDesc.positive = v == 1; epi.PKCounter = pkdDesc; } return epi; }
private void PerformOpenPFile() { string s; OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Open parameter file ..."; dlg.DefaultExt = ".par"; // Default file extension dlg.Filter = "PAR Files (.par)|*.par"; // Filter files by extension dlg.InitialDirectory = Properties.Settings.Default.LastParFile; bool result = dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK; if (!result) return; Properties.Settings.Default.LastParFile = System.IO.Path.GetDirectoryName(dlg.FileName); XmlReaderSettings xrs = new XmlReaderSettings(); xrs.CloseInput = true; xrs.IgnoreWhitespace = true; XmlReader xml = XmlReader.Create(dlg.OpenFile(), xrs); try { if(!xml.ReadToFollowing("ASCtoFMParameters")) throw new XmlException("No ASCtoFMParameters element found"); s = xml["ClockSync"]; if (s == "First covered Event") SyncToFirst.IsChecked = true; else if (s == "None") NoSyncToStatus.IsChecked = true; else SyncToMiddle.IsChecked = true; xml.ReadStartElement("ASCtoFMParameters"); xml.ReadStartElement("EpisodeDescriptions"); while (EpisodeEntries.Items.Count > 0) EpisodeEntries.Items.RemoveAt(0); //remove old entries while (xml.Name == "EpisodeDescription") { EpisodeDescriptionEntry ede = new EpisodeDescriptionEntry(head, this); if (ede.ReadNewSettings(xml)) EpisodeEntries.Items.Add(ede); } xml.ReadEndElement(/* EpisodeDescriptions */); listView2.SelectedItem = null; xml.ReadStartElement("GroupVariables"); while (xml.Name == "GV") { s = xml.ReadElementContentAsString(); for (int i = 0; i < listView2.Items.Count; i++) { if (((GVEntry)listView2.Items[i]).Name == s) { listView2.SelectedItems.Add(listView2.Items[i]); break; } } //silently skip GVs not in current dataset } xml.ReadEndElement(/* GroupVariables */); SelChan.Text = xml.ReadElementString("Channels"); s = xml["Remove"]; if (s != null) //may not exist if using Radin reference if (s == "Offsets") removeOffsets.IsChecked = true; else if (s == "Trends") removeTrends.IsChecked = true; else noneOffsets.IsChecked = true; xml.ReadStartElement("Samples"); Decimation.Text = xml.ReadElementString("Decimation"); RecLength.Text = xml.ReadElementString("RecordLength"); if (xml.Name == "RadinReference") { Radin.IsChecked = true; xml.ReadStartElement(); RadinLow.Text = xml.ReadElementString("From"); RadinHigh.Text = xml.ReadElementString("To"); xml.ReadEndElement(/* RadinReference */); } else Radin.IsChecked = false; xml.ReadEndElement(/* Samples */); s = xml["Type"]; //Type must be present if (s == "SelectedChannels") radioButton2.IsChecked = true; else if (s == "Expression") radioButton4.IsChecked = true; else radioButton3.IsChecked = true; string v = xml.ReadElementString("Reference"); if (s != "None") if (s == "Expression") RefChanExpression.Text = v; else RefChan.Text = v; //SelectedChannels case xml.ReadEndElement(/* ASCtoFMParameters */); } catch (XmlException e) { ErrorWindow er = new ErrorWindow(); er.Message = "Error in parameter file at line number " + e.LineNumber.ToString("0") + ". Unable to continue."; er.ShowDialog(); } xml.Close(); RemoveSpec.IsEnabled = EpisodeEntries.Items.Count > 1; }
private void AddSpec_Click(object sender, RoutedEventArgs e) { EpisodeDescriptionEntry episode = new EpisodeDescriptionEntry(head, this); EpisodeEntries.Items.Add(episode); if (EpisodeEntries.Items.Count > 1) RemoveSpec.IsEnabled = true; Validate(); }