private void select_DataSheet(object sender, RoutedEventArgs e) { //try //{ //_thisRegDS = new RegDataSheet("http://partsregistry.org/wiki/index.php?title=Part:" + this.partName.Text); ds = new MenuDataSheet(); ds.ContainerManipulationCompleted += new ContainerManipulationCompletedEventHandler(onDSManipulationCompleted); if (_myRegDS.Name != "test") //Already got data from registry, so just populate from it { #region Populating the data sheet's datasheet //Specifies the Length of the Sequence on the Sequence tab of the data sheet int Length = _myRegDS.BasicInfo.Length; TextBlock LengthBlock = new TextBlock(); //ds.SeqTab.Children.Add(LengthBlock); LengthBlock.VerticalAlignment = VerticalAlignment.Top; LengthBlock.Text = "Length: " + Length.ToString(); //This is all pulling information from the Reg Data Sheet associated with the part and inserting it in the data sheet ds.PopulateDataSheet(_myRegDS.Name, 0, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.DescriptionName, 1, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Type, 2, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Promoter.getReg(), 3, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.Availability, 4, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.Usefulness, 5, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Description.assembCompString(), 6, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Description.chassisString(), 7, 1, ds.DataSheet, "datasheet"); //Specific to sequence tab ds.PopulateDataSheet(_myRegDS.BasicInfo.Sequence, 1, 1, ds.SeqTab, "seq"); ds.PopulateDataSheet(Length.ToString(), 0, 1, ds.SeqTab, "length"); //Specific to AuthorInfo Tab ds.PopulateDataSheet(_myRegDS.Reference.Author, 0, 1, ds.AuthorInfo, "author"); ds.PopulateDataSheet(_myRegDS.Reference.Group, 1, 1, ds.AuthorInfo, "author"); ds.PopulateDataSheet(_myRegDS.Reference.Date, 2, 1, ds.AuthorInfo, "author"); if (_myRegDS.Type == "rbs") { RowDefinition rowDef1 = new RowDefinition(); ds.DataSheet.RowDefinitions.Add(rowDef1); ds.PopulateDataSheet(_myRegDS.Rbs.FamilyName, 8, 1, ds.DataSheet); TextBlock RBSFam = new TextBlock(); RBSFam.Text = "Family"; ds.DataSheet.Children.Add(RBSFam); Grid.SetRow(RBSFam, 8); } else if (_myRegDS.Type == "terminator") { RowDefinition rowDef1 = new RowDefinition(); RowDefinition rowDef2 = new RowDefinition(); RowDefinition rowDef3 = new RowDefinition(); RowDefinition rowDef4 = new RowDefinition(); ds.DataSheet.RowDefinitions.Add(rowDef1); ds.DataSheet.RowDefinitions.Add(rowDef2); ds.DataSheet.RowDefinitions.Add(rowDef3); ds.DataSheet.RowDefinitions.Add(rowDef4); TextBlock Direction = new TextBlock(); Direction.Text = "Direction"; Direction.FontSize = 18; ds.DataSheet.Children.Add(Direction); Grid.SetRow(Direction, 8); ds.PopulateDataSheet(_myRegDS.Terminators.Direction, 8, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ForwardEff, 9, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ReversedEff, 10, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ReversedVers, 11, 1, ds.DataSheet); } #endregion #region Populating Publications Func <String, PubList> _GetPublications = delegate(String id) { return(new PubList(id)); }; Action <PubList> callback = delegate(PubList result) { //_thisRegDS = new RegDataSheet("http://partsregistry.org/wiki/index.php?title=Part:" + this.partName.Text); int m = 0; if (result.Titles.Count == 0) { int Count = result.Titles.Count; SurfaceListBoxItem NoResults = new SurfaceListBoxItem(); TextBlock Content = new TextBlock(); Content.Text = "No Results Found"; NoResults.Content = Content; ds.Publictions.Items.Add(NoResults); } if (result.Titles.Count > 0) { int TotalArticles = result.Titles.Count; SurfaceListBoxItem ArticleCount = new SurfaceListBoxItem(); TextBlock CountContent = new TextBlock(); CountContent.Text = "Results Found: " + TotalArticles as string; ArticleCount.Content = CountContent; ds.Publictions.Items.Add(ArticleCount); } foreach (String Titles in result.Titles) { //To Test if titles are actually adding SurfaceListBoxItem item = new SurfaceListBoxItem(); TextBlock PubTitles = new TextBlock(); item.Selected += new RoutedEventHandler(item_Selected); item.Content = Titles; PubTitles.Tag = result.Links.ElementAt(m); //item.Tag = result.Authors.ElementAt(m); ds.Publictions.Items.Add(item); RowDefinition rowDef1 = new RowDefinition(); RowDefinition rowDef2 = new RowDefinition(); RowDefinition rowDef3 = new RowDefinition(); RowDefinition rowDef4 = new RowDefinition(); abs = new PubAbstract(PubTitles.Tag as string, result.getAuthors()); item.Tag = "Title: " + item.Content as string + "\r\n" + "\r\n" + "\r\n" + "Authors: " + result.Authors.ElementAt(m) as string + "\r\n" + "\r\n" + "Abstract:" + "\r\n" + "\r\n" + abs.getAbstract() as string; m += 1; Console.WriteLine(m); if (m > 20) { break; } } /*foreach (String Titles in result.Titles) * { * TextBlock Middle = new TextBlock(); * Middle.Text = Titles; * //ds.Publications.Children.Add(Middle); * Grid.SetRow(Middle, m); * m += 1; #endregion * //publications location maybe * //Creates a list of PubMed source related to the query * * }*/ }; _Publist = _progressBarWrapper.execute <String, PubList>(_GetPublications, _myRegDS.BasicInfo.DescriptionName, callback); #endregion SurfaceWindow1.addData(sender, ds); } else { Func <String, RegDataSheet> _getRegDataSheet = delegate(String pName) { return(new RegDataSheet("http://partsregistry.org/wiki/index.php?title=Part:" + pName)); }; Action <RegDataSheet> _getRegDataSheetCallback = delegate(RegDataSheet _regDS) { _myRegDS = _regDS; #region Populating the data sheet's datasheet //Specifies the Length of the Sequence on the Sequence tab of the data sheet int Length = _myRegDS.BasicInfo.Length; TextBlock LengthBlock = new TextBlock(); //ds.SeqTab.Children.Add(LengthBlock); LengthBlock.VerticalAlignment = VerticalAlignment.Top; LengthBlock.Text = "Length: " + Length.ToString(); //This is all pulling information from the Reg Data Sheet associated with the part and inserting it in the data sheet ds.PopulateDataSheet(_myRegDS.Name, 0, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.DescriptionName, 1, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Type, 2, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Promoter.getReg(), 3, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.Availability, 4, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.BasicInfo.Usefulness, 5, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Description.assembCompString(), 6, 1, ds.DataSheet, "datasheet"); ds.PopulateDataSheet(_myRegDS.Description.chassisString(), 7, 1, ds.DataSheet, "datasheet"); //Specific to sequence tab ds.PopulateDataSheet(_myRegDS.BasicInfo.Sequence, 1, 1, ds.SeqTab, "seq"); ds.PopulateDataSheet(Length.ToString(), 0, 1, ds.SeqTab, "length"); //Specific to AuthorInfo Tab ds.PopulateDataSheet(_myRegDS.Reference.Author, 0, 1, ds.AuthorInfo, "author"); ds.PopulateDataSheet(_myRegDS.Reference.Group, 1, 1, ds.AuthorInfo, "author"); ds.PopulateDataSheet(_myRegDS.Reference.Date, 2, 1, ds.AuthorInfo, "author"); if (_myRegDS.Type == "rbs") { RowDefinition rowDef1 = new RowDefinition(); ds.DataSheet.RowDefinitions.Add(rowDef1); ds.PopulateDataSheet(_myRegDS.Rbs.FamilyName, 8, 1, ds.DataSheet); TextBlock RBSFam = new TextBlock(); RBSFam.Text = "Family"; RBSFam.FontSize = 14; RBSFam.FontWeight = FontWeights.Bold; RBSFam.VerticalAlignment = VerticalAlignment.Top; // COME BACK TO THIS LATER ds.DataSheet.Children.Add(RBSFam); Grid.SetRow(RBSFam, 8); } else if (_myRegDS.Type == "terminator") { RowDefinition rowDef1 = new RowDefinition(); RowDefinition rowDef2 = new RowDefinition(); RowDefinition rowDef3 = new RowDefinition(); RowDefinition rowDef4 = new RowDefinition(); ds.DataSheet.RowDefinitions.Add(rowDef1); ds.DataSheet.RowDefinitions.Add(rowDef2); ds.DataSheet.RowDefinitions.Add(rowDef3); ds.DataSheet.RowDefinitions.Add(rowDef4); TextBlock Direction = new TextBlock(); Direction.Text = "Direction"; Direction.FontSize = 18; ds.DataSheet.Children.Add(Direction); Grid.SetRow(Direction, 8); ds.PopulateDataSheet(_myRegDS.Terminators.Direction, 8, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ForwardEff, 9, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ReversedEff, 10, 1, ds.DataSheet); ds.PopulateDataSheet(_myRegDS.Terminators.ReversedVers, 11, 1, ds.DataSheet); } #endregion #region Populating Publications Func <String, PubList> _GetPublications = delegate(String id) { return(new PubList(id)); }; Action <PubList> callback = delegate(PubList result) { //_thisRegDS = new RegDataSheet("http://partsregistry.org/wiki/index.php?title=Part:" + this.partName.Text); int m = 0; if (result.Titles.Count == 0) { int Count = result.Titles.Count; SurfaceListBoxItem NoResults = new SurfaceListBoxItem(); TextBlock Content = new TextBlock(); Content.Text = "No Results Found"; NoResults.Content = Content; ds.Publictions.Items.Add(NoResults); } if (result.Titles.Count > 0) { int TotalArticles = result.Titles.Count; SurfaceListBoxItem ArticleCount = new SurfaceListBoxItem(); TextBlock CountContent = new TextBlock(); CountContent.Text = "Results Found: " + TotalArticles as string; ArticleCount.Content = CountContent; ds.Publictions.Items.Add(ArticleCount); } foreach (String Titles in result.Titles) { //To Test if titles are actually adding SurfaceListBoxItem item = new SurfaceListBoxItem(); TextBlock PubTitles = new TextBlock(); item.Selected += new RoutedEventHandler(item_Selected); item.Content = Titles; PubTitles.Tag = result.Links.ElementAt(m); //item.Tag = result.Authors.ElementAt(m); ds.Publictions.Items.Add(item); RowDefinition rowDef1 = new RowDefinition(); RowDefinition rowDef2 = new RowDefinition(); RowDefinition rowDef3 = new RowDefinition(); RowDefinition rowDef4 = new RowDefinition(); abs = new PubAbstract(PubTitles.Tag as string, result.getAuthors()); item.Tag = "Title: " + item.Content as string + "\r\n" + "\r\n" + "\r\n" + "Authors: " + result.Authors.ElementAt(m) as string + "\r\n" + "\r\n" + "Abstract:" + "\r\n" + "\r\n" + abs.getAbstract() as string; m += 1; Console.WriteLine(m); if (m > 20) { break; } } /*foreach (String Titles in result.Titles) * { * TextBlock Middle = new TextBlock(); * Middle.Text = Titles; * //ds.Publications.Children.Add(Middle); * Grid.SetRow(Middle, m); * m += 1; #endregion * //publications location maybe * //Creates a list of PubMed source related to the query * * }*/ }; _Publist = _progressBarWrapper.execute <String, PubList>(_GetPublications, _myRegDS.BasicInfo.DescriptionName, callback); #endregion SurfaceWindow1.addData(sender, ds); }; _dataSheet = _progressBarWrapper.execute <String, RegDataSheet>(_getRegDataSheet, partName.Text, _getRegDataSheetCallback); } }
/// <summary> /// When the Test Selected Primers button is pressed, the tests are called and /// the displays are updated accordingly. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void testRunner_Click(object sender, RoutedEventArgs e) { _primerTest = _progressBarWrapper.execute <List <double> >(_getTestResults, _getTestResultsCallback); Console.WriteLine(alignments); Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); #region dumb // try // { // // at1 is for all of the tests for the LEFT PRIMER // alignmentTests at1 = new alignmentTests(_leftSeq); // //the following is for HAIRPIN RUN only!! // double worstCaseHP1 = at1.hairpinRun(); // _leftGibbsFree = calcDeltaG(_leftSeq); // hNumF.Text = worstCaseHP1.ToString(); // if (worstCaseHP1 < _leftGibbsFree) // { // hCheckF.IsChecked = true; // } // else // { // hCheckF.IsChecked = false; // } // //the following is for SELF DIMER only!! // double worstCaseSD1 = at1.selfDimerRun(); // sNumF.Text = worstCaseSD1.ToString(); // if (worstCaseSD1 < _leftGibbsFree) // { // sCheckF.IsChecked = true; // } // else // { // sCheckF.IsChecked = false; // } // //the following is for HETERODIMER only!! // double worstCaseHD1 = at1.heteroDimerRun(_rightSeq); // _rightGibbsFree = calcDeltaG(_rightSeq); // tNumF.Text = worstCaseHD1.ToString(); // if (worstCaseHD1 < _rightGibbsFree) // { // tCheckF.IsChecked = true; // } // else // { // tCheckF.IsChecked = false; // } // // at2 is for all of the tests for the RIGHT PRIMER // alignmentTests at2 = new alignmentTests(_rightSeq); // //the following is for HAIRPIN RUN only!! // double worstCaseHP2 = at2.hairpinRun(); // hNumR.Text = worstCaseHP2.ToString(); // if (worstCaseHP2 < _leftGibbsFree) // { // hCheckR.IsChecked = true; // } // else // { // hCheckR.IsChecked = false; // } // //the following is for SELF DIMER only!! // double worstCaseSD2 = at2.selfDimerRun(); // sNumR.Text = worstCaseSD2.ToString(); // if (worstCaseSD2 < _rightGibbsFree) // { // sCheckR.IsChecked = true; // } // else // { // sCheckR.IsChecked = false; // } // //the following is for HETERODIMER only!! // double worstCaseHD2 = at2.heteroDimerRun(_leftSeq); // tNumR.Text = worstCaseHD2.ToString(); // if (worstCaseHD2 < _rightGibbsFree) // { // tCheckR.IsChecked = true; // } // else // { // tCheckR.IsChecked = false; // } // } // catch (Exception exc) { Console.WriteLine(exc); } #endregion }
//Search using string entered into searchBar private void searchByString(object sender, KeyEventArgs e) { if (e.Key == Key.Return) { //if ((Boolean)searchInAll.IsChecked) filtersPanel.Children.Clear(); L0_resultsSV.Items.Clear(); L0_resultsSV.Height = 920; if (_currentSearch != null) { _currentSearch.Abort(); } ProgressIndicator.Visibility = Visibility.Collapsed; ////Search has been run, so reset indexes to prevent restoring //storedFilterIndex = -1; //storedTypeIndex = -1; //Creates search and filters through returned data sheets according to whether searchInAll or searchInType is checked Func <String, Search> _searchByString = delegate(String query) { return(new Search(query)); }; Action <Search> callback = delegate(Search result) { foreach (RegDataSheet regDS in result.RegDS) { String typeConverted = convertType_RDSToMCP(regDS.Type); String category = ""; if (typeConverted == "prom") { category = regDS.Promoter.getReg(); } if (typeConverted == "rbs") { category = regDS.Rbs.FamilyName; } if (typeConverted == "cds") { category = regDS.Gene.GeneType; } if (typeConverted == "term") { category = regDS.Terminators.Direction; } //If searchInAll is checked, don't filter. If searchInType is selected, filter. if (_partTypeSelected == "all") { partFromRegDS(regDS, category); } else { if (typeConverted == _partTypeSelected) { partFromRegDS(regDS, category); //if (typeConverted == "prom") { partFromRegDS(regDS, regDS.Promoter.getReg()); } //if (typeConverted == "rbs") { partFromRegDS(regDS, regDS.Rbs.FamilyName); } //if (typeConverted == "cds") { partFromRegDS(regDS, "CDS"); } //if (typeConverted == "term") { partFromRegDS(regDS, regDS.Terminators.Direction); } } } } }; _currentSearch = _progressBarWrapper.execute <String, Search>(_searchByString, searchBar.Text, callback); #region Non-delegate search //Search s = new Search(searchBar.Text); //foreach (RegDataSheet regDS in s.RegDS) //{ // String typeConverted = convertType_RDSToMCP(regDS.Type); // if (typeConverted == _partTypeSelected) // { // if (typeConverted == "prom") { Part p = partFromRegDS(regDS, regDS.Promoter.getReg()); } // if (typeConverted == "rbs") { Part p = partFromRegDS(regDS, regDS.Rbs.FamilyName); } // if (typeConverted == "cds") { Part p = partFromRegDS(regDS, "CDS"); } // if (typeConverted == "term") { Part p = partFromRegDS(regDS, regDS.Terminators.Direction); } // } //} #endregion } }