public void Add(MassSpectrum spectrum) { SpectrumDataSet.SpectrumTableRow row = spectrumDataSet.SpectrumTable.NewSpectrumTableRow(); row.Id = spectrum.Id; if (nativeIdFormat != CVID.CVID_Unknown) { gridView.Columns["Id"].Visible = false; // guard against case where input is mzXML which // is identified as, say, Agilent-derived, but // which uses "scan" (as mzXML must) instead // of the Agilent "scanID" (as this mzML-centric code expects) bool foundit = false; string[] nameValuePairs = spectrum.Id.Split(' '); foreach (string nvp in nameValuePairs) { string[] nameValuePair = nvp.Split('='); if (row.Table.Columns.Contains(nameValuePair[0])) { row[nameValuePair[0]] = nameValuePair[1]; foundit = true; } } if (!foundit) { // mismatch between nativeID format and actual (probably mzXML) format // better to show an ill-fit match - eg "scan" (mzXML) and "scanID" (Agilent) // than no info at all string nativeIdDefinition = new CVTermInfo(nativeIdFormat).def; string[] idPair = nativeIdDefinition.Split('='); if (row.Table.Columns.Contains(idPair[0])) { string[] valPair = spectrum.Id.Split('='); row[idPair[0]] = (valPair.Length > 1) ? valPair[1] : spectrum.Id; foundit = true; } } } row.Index = spectrum.Index; updateRow(row, spectrum); spectrumDataSet.SpectrumTable.AddSpectrumTableRow(row); //int rowIndex = gridView.Rows.Add(); //gridView.Rows[rowIndex].Tag = spectrum; spectrum.Tag = this; if (spectrum.Element.spotID.Length > 0) { gridView.Columns["SpotId"].Visible = true; } //UpdateRow( rowIndex ); }
private void initializeGridView(CVID nativeIdFormat) { // force handle creation IntPtr dummy = gridView.Handle; spectrumList = new Dictionary <int, MassSpectrum>(); this.nativeIdFormat = nativeIdFormat; if ((nativeIdFormat != CVID.CVID_Unknown) && (nativeIdFormat != CVID.MS_no_nativeID_format)) { string nativeIdDefinition = new CVTermInfo(nativeIdFormat).def.Replace("Native format defined by ", ""); string[] nameValuePairs = nativeIdDefinition.Split(" ".ToCharArray()); for (int i = 0; i < nameValuePairs.Length; ++i) { string[] nameValuePair = nameValuePairs[i].Split("=".ToCharArray()); DataGridViewColumn nameColumn = new DataGridViewAutoFilter.DataGridViewAutoFilterTextBoxColumn(); nameColumn.Name = nameValuePair[0] + "NativeIdColumn"; nameColumn.HeaderText = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nameValuePair[0]); nameColumn.DataPropertyName = nameValuePair[0]; gridView.Columns.Insert(1 + i, nameColumn); string type = null; if (nameValuePair[0] == "file" || nameValuePair[1] == "xsd:string") { type = "System.String"; } else { type = "System.Int32"; } spectrumDataSet.SpectrumTable.Columns.Add(nameValuePair[0], Type.GetType(type)); } } gridView.Columns["SpectrumType"].ToolTipText = new CVTermInfo(CVID.MS_spectrum_type).def; gridView.Columns["MsLevel"].ToolTipText = new CVTermInfo(CVID.MS_ms_level).def; gridView.Columns["ScanTime"].ToolTipText = new CVTermInfo(CVID.MS_scan_start_time).def; gridView.Columns["BasePeakMz"].ToolTipText = new CVTermInfo(CVID.MS_base_peak_m_z).def; gridView.Columns["BasePeakIntensity"].ToolTipText = new CVTermInfo(CVID.MS_base_peak_intensity).def; gridView.Columns["TotalIonCurrent"].ToolTipText = new CVTermInfo(CVID.MS_total_ion_current).def; gridView.Columns["ScanTime"].HeaderText += Properties.Settings.Default.TimeInMinutes ? " (min)" : " (sec)"; gridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(gridView_DataBindingComplete); }
private void initializeGridView( CVID nativeIdFormat ) { // force handle creation IntPtr dummy = gridView.Handle; spectrumList = new Dictionary<int, MassSpectrum>(); this.nativeIdFormat = nativeIdFormat; if ((nativeIdFormat != CVID.CVID_Unknown) && (nativeIdFormat != CVID.MS_no_nativeID_format)) { string nativeIdDefinition = new CVTermInfo( nativeIdFormat ).def.Replace("Native format defined by ", ""); string[] nameValuePairs = nativeIdDefinition.Split( " ".ToCharArray() ); for( int i = 0; i < nameValuePairs.Length; ++i ) { string[] nameValuePair = nameValuePairs[i].Split( "=".ToCharArray() ); DataGridViewColumn nameColumn = new DataGridViewAutoFilter.DataGridViewAutoFilterTextBoxColumn(); nameColumn.Name = nameValuePair[0]; nameColumn.HeaderText = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase( nameValuePair[0] ); nameColumn.DataPropertyName = nameValuePair[0]; gridView.Columns.Insert( 1 + i, nameColumn ); string type = null; if( nameValuePair[0] == "file" ) type = "System.String"; else type = "System.Int32"; spectrumDataSet.SpectrumTable.Columns.Add( nameValuePair[0], Type.GetType( type ) ); } } gridView.Columns["SpectrumType"].ToolTipText = new CVTermInfo(CVID.MS_spectrum_type).def; gridView.Columns["MsLevel"].ToolTipText = new CVTermInfo( CVID.MS_ms_level ).def; gridView.Columns["ScanTime"].ToolTipText = new CVTermInfo( CVID.MS_scan_start_time ).def; gridView.Columns["BasePeakMz"].ToolTipText = new CVTermInfo( CVID.MS_base_peak_m_z ).def; gridView.Columns["BasePeakIntensity"].ToolTipText = new CVTermInfo( CVID.MS_base_peak_intensity ).def; gridView.Columns["TotalIonCurrent"].ToolTipText = new CVTermInfo( CVID.MS_total_ion_current ).def; gridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler( gridView_DataBindingComplete ); }
public void Add( MassSpectrum spectrum ) { SpectrumDataSet.SpectrumTableRow row = spectrumDataSet.SpectrumTable.NewSpectrumTableRow(); row.Id = spectrum.Id; if( nativeIdFormat != CVID.CVID_Unknown ) { gridView.Columns["Id"].Visible = false; // guard against case where input is mzXML which // is identified as, say, Agilent-derived, but // which uses "scan" (as mzXML must) instead // of the Agilent "scanID" (as this mzML-centric code expects) bool foundit = false; string[] nameValuePairs = spectrum.Id.Split(' '); foreach( string nvp in nameValuePairs ) { string[] nameValuePair = nvp.Split('='); if (row.Table.Columns.Contains(nameValuePair[0])) { row[nameValuePair[0]] = nameValuePair[1]; foundit = true; } } if (!foundit) { // mismatch between nativeID format and actual (probably mzXML) format // better to show an ill-fit match - eg "scan" (mzXML) and "scanID" (Agilent) // than no info at all string nativeIdDefinition = new CVTermInfo(nativeIdFormat).def; string[] idPair = nativeIdDefinition.Split('='); if (row.Table.Columns.Contains(idPair[0])) { string[] valPair = spectrum.Id.Split('='); row[idPair[0]] = (valPair.Length > 1) ? valPair[1] : spectrum.Id; foundit = true; } } } row.Index = spectrum.Index; updateRow( row, spectrum ); spectrumDataSet.SpectrumTable.AddSpectrumTableRow( row ); //int rowIndex = gridView.Rows.Add(); //gridView.Rows[rowIndex].Tag = spectrum; spectrum.Tag = this; if( spectrum.Element.spotID.Length > 0 ) gridView.Columns["SpotId"].Visible = true; //UpdateRow( rowIndex ); }