private void buttonLoad_Click(object sender, EventArgs e) { openFileDialog1.Title = "Indicate the GO (DAG) file"; openFileDialog1.Filter = "OBO file (*.OBO)|*.OBO"; if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } gt.LoadFile(openFileDialog1.FileName); richTextBoxLog.AppendText("Nodes loaded :" + gt.Terms.Count.ToString() + "\n"); int prunnedNodes = gt.pruneObsoleteTerms(); richTextBoxLog.AppendText("Prunned nodes (obsolete): " + prunnedNodes.ToString() + "\n"); richTextBoxLog.AppendText("We now have " + gt.Terms.Count.ToString() + "nodes\n"); gt.buildTreeNodes(); //Lets give them a friendly wait advice waitWindow = new WaitWindow(); waitWindow.ChangeLable("Performing Optimizations..."); System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(waitWindow.ShowWindow)); t.Start(); tabControlGOTools.Enabled = true; tabControlRight.Enabled = true; treeViewGO2.ShowPlusMinus = false; treeNodes.Clear(); treeNodes = gt.getNodesCategory(GO.GOTerms.GOCategories.all); addRoots(); //Perform Precalculations //We could let this computing in a sepatared thread gt.ComputeAllNodesBelowForAllNodes(); dagLoaded = true; if (dagLoaded && associationTableloaded) { buttonSavePreCalc.Enabled = true; groupBoxTreeControls.Enabled = true; groupBoxGOPlot.Enabled = true; } openFileDialog1.Filter = ""; //Turn off the button so the user wont fo mess buttonLoad.Enabled = false; groupBoxGOPrecomp.Enabled = false; t.Abort(); }