void startButton_MouseClick(object sender, MouseEventArgs e) { trace.TraceInformation("RelationFinderPanel::startButton_MouseClick()" + DateTime.Now); if (familyTree.GetHomeIndividual() == null) { MessageBox.Show("Error: No root / base person selected!"); return; } if (selectedIndividual != null) { int noOfGenerations = AncestorStatistics.AllGenerations; RelationStackList relationList = new RelationStackList(); if (resultNoCtrl.SelectedItem.ToString() != "All") { noOfGenerations = Convert.ToInt32(resultNoCtrl.SelectedItem.ToString()); } AsyncWorkerProgress progress = new AsyncWorkerProgress(RelationProgress); //CheckRelation relation = new CheckRelation(familyTree, selectedIndividual.GetXrefName(), familyTree.GetHomeIndividual(), noOfGenerations, ref relationList); this.relWorker = new RelationTreeWorker(this, progress, selectedIndividual.GetXrefName(), familyTree.GetHomeIndividual(), noOfGenerations, familyTree); //ShowRelations(relationList.relations); //this.relationList = relationList; } else { MessageBox.Show("Error: No person selected!"); } }
public RelationTreeWorker( object sender, ProgressReporterInterface progress, string startPerson1Xref, string startPerson2Xref, int noOfGenerations, FamilyTreeStoreBaseClass familyTree) { trace = new TraceSource("RelationTreeWorker", SourceLevels.Information); //familyTree = stats.familyTree; progressReporter = progress; //this.stats = stats; this.familyTree = familyTree; this.startPerson1Xref = startPerson1Xref; this.startPerson2Xref = startPerson2Xref; this.noOfGenerations = noOfGenerations; this.relationList = new RelationStackList(); backgroundWorker = new BackgroundWorker(); backgroundWorker.WorkerReportsProgress = true; backgroundWorker.DoWork += new DoWorkEventHandler(DoWork); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Completed); backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(ProgressChanged); backgroundWorker.RunWorkerAsync(); }
public void RelationProgress(int progressPercent, string text = null) { trace.TraceInformation("RelationFinderViewPanel::RelationProgress(" + progressPercent + ")"); parentForm.TextCallback(progressPercent, text); if (progressPercent < 0) { //AddToListView(ref resultList, stats); if (relWorker != null) RelationStackList relations = relWorker.GetRelationStack(); if (relations != null) { this.relationList = relations; ShowRelations(this.relationList); SaveListToFile("relations_" + FamilyUtility.MakeFilename(familyTree.GetSourceFileName() + "_" + DateTime.Now.ToString() + "_" + resultNoCtrl.SelectedItem.ToString() + "_gen_" + ".fsrel"), relationList); } relWorker = null; //SaveListToFile(utility.GetCurrentDirectory() + "\\" + FamilyUtility.MakeFilename("relations_" + familyTree.GetSourceFileName() + "_" + DateTime.Now.ToString() + "_" + resultNoCtrl.SelectedItem.ToString() + "_gen_" + (checkDescendants ? "_desc_" : "") + ".fss")); resultNoCtrl.Enabled = true; stopButton.Enabled = false; startButton.Enabled = true; //descendants.Enabled = true; } }
private void ExportListToFile(string filename, RelationStackList relationList, bool html) { StreamWriter exportFile = new StreamWriter(filename); exportFile.Write(relationList.ToString(familyTree, html)); exportFile.Close(); }
void stopButton_MouseClick(object sender, MouseEventArgs e) { trace.TraceInformation("RelationFinderPanel::stopButton_MouseClick():" + DateTime.Now); if (stopButton.Visible) { relationList = null; ResetGui(); } }
private void SaveListConents(RelationStackList relationList) { SaveFileDialog fileDlg = new SaveFileDialog(); fileDlg.Filter = "Relation List|*.fsrel"; fileDlg.InitialDirectory = utility.GetCurrentDirectory(); if (fileDlg.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { SaveListToFile(fileDlg.FileName, relationList); } }
private void SaveListToFile(string filename, RelationStackList relationList) { try { FileStream saveList = new FileStream(filename, FileMode.Create); DataContractSerializer serializer = new DataContractSerializer(typeof(RelationStackList)); serializer.WriteObject(saveList, relationList); saveList.Close(); } catch (Exception e) { Debug.WriteLine("Error creating file " + filename + " exception " + e.ToString()); } }
private void ExportListContents(RelationStackList relationList, bool html) { SaveFileDialog fileDlg = new SaveFileDialog(); if (html) { fileDlg.Filter = "Relation List|*.html"; } else { fileDlg.Filter = "Relation List|*.txt"; } fileDlg.InitialDirectory = utility.GetCurrentDirectory(); if (fileDlg.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { ExportListToFile(fileDlg.FileName, relationList, html); } }
/*public void AnalyseProgress(int progressPercent, string text = null) * { * trace.TraceInformation("RelationFinderPanel::AnalyseProgress(" + progressPercent + ")"); * if (progressPercent < 0) * { * //AddToListView(ref resultList, stats); * * if (relWorker != null) * { * RelationStackList relations = relWorker.GetRelationStack(); * if (relations != null) * { * this.relationList = relations; * ShowRelations(this.relationList); * * SaveListToFile("relations_" + familyTree.GetSourceFileName() + "_" + FamilyUtility.MakeFilename(DateTime.Now.ToString()) + "_" + resultNoCtrl.SelectedItem.ToString() + "_gen_" + ".fsrel", relationList); * } * relWorker = null; * } * ResetGui(); * * } * }*/ private void ShowRelations(RelationStackList relations) { resultList.Nodes.Clear(); if (relationList != null) { foreach (RelationStack rel in relations.relations) { TreeNode treeRel = new TreeNode(rel.CalculateRelation(familyTree, false)); foreach (Relation relative in rel) { TreeNode person = new TreeNode(relative.ToString(familyTree, true, false)); person.Tag = relative.personXref; treeRel.Nodes.Add(person); } treeRel.Expand(); resultList.Nodes.Add(treeRel); } } }