void AddItemToListView(AncestorLineInfo ancestor, SanityCheckLimits limits) { IndividualClass person = familyTree.GetIndividual(ancestor.rootAncestor); if (person != null) { trace.TraceInformation(" " + ancestor.depth + " generations: " + person.GetName() + " " + person.GetDate(IndividualEventClass.EventType.Birth) + " - " + person.GetDate(IndividualEventClass.EventType.Death)); ListViewItem oldItem = resultList.FindItemWithText(person.GetName()); if (oldItem != null) { if (oldItem.Tag.ToString() == ancestor.rootAncestor) { resultList.Items.Remove(oldItem); } } string detailString = ancestor.GetDetailString(limits); if (detailString.Length > 0) { ListViewItem item = new ListViewItem(person.GetName()); item.SubItems.AddRange(new string[] { ancestor.depth.ToString(), ancestor.relationPath.GetDistance(), person.GetDate(IndividualEventClass.EventType.Birth).ToString(), person.GetDate(IndividualEventClass.EventType.Death).ToString(), detailString }); item.ToolTipText = ancestor.relationPath.ToString(familyTree, false); item.Tag = person.GetXrefName(); resultList.Items.Add(item); } //list.Items. } else { trace.TraceEvent(TraceEventType.Error, 0, " Error could not fetch " + ancestor.rootAncestor + " from tree " + ancestor.depth + " generations " + ancestor.GetDetailString(limits)); } }
void SetSanitySettings(string filename, SanityCheckLimits limits) { FileStream storeSettings = new FileStream(filename, FileMode.Create); DataContractSerializer serializer = new DataContractSerializer(typeof(SanityCheckLimits)); serializer.WriteObject(storeSettings, (SanityCheckLimits)limits); storeSettings.Close(); }
void SettingsUpdateHandlerFcn(SanityCheckLimits newLimits) { if (newLimits != null) { SetSanitySettings(utility.GetCurrentDirectory() + "\\SanitySettings.fssan", newLimits); limits = newLimits; AddToListView(ref resultList, stats); } settings = null; }
void settingsButton_MouseClick(object sender, MouseEventArgs e) { trace.TraceInformation("CompletenessViewPanel1::settingsButton_MouseClick():" + DateTime.Now); if (stopButton.Visible) { if (settings == null) { settings = new SanitySettingsForm(); limits = GetSanitySettings(utility.GetCurrentDirectory() + "\\SanitySettings.fssan"); settings.Update(limits, SettingsUpdateHandlerFcn); } } }
public void Update(SanityCheckLimits limits, SettingsUpdateHandler handler) { this.limits = limits; this.updateHandler = handler; this.minParentsCheckbox.Checked = limits.parentLimitMin.active; this.minParentsNumericUpDown.Value = limits.parentLimitMin.value; this.maxMothersCheckBox.Checked = limits.motherLimitMax.active; this.maxMothersNumericUpDown.Value = limits.motherLimitMax.value; this.maxFathersCheckBox.Checked = limits.fatherLimitMax.active; this.maxFathersNumericUpDown.Value = limits.fatherLimitMax.value; this.minEventsCheckBox.Checked = limits.eventLimitMin.active; this.minEventsNumericUpDown.Value = limits.eventLimitMin.value; this.maxEventsCheckBox.Checked = limits.eventLimitMax.active; this.maxEventsNumericUpDown.Value = limits.eventLimitMax.value; this.minChildrenCheckBox.Checked = limits.noOfChildrenMin.active; this.minChildrenNumericUpDown.Value = limits.noOfChildrenMin.value; this.maxChildrenCheckBox.Checked = limits.noOfChildrenMax.active; this.maxChildrenNumericUpDown.Value = limits.noOfChildrenMax.value; this.closeChildrenCheckBox.Checked = limits.daysBetweenChildren.active; this.closeChildrenNumericUpDown.Value = limits.daysBetweenChildren.value; this.twinsCheckBox.Checked = limits.twins.active; this.inexactBirthDateCheckBox.Checked = limits.inexactBirthDeath.active; this.unknownBirthDateCheckBox.Checked = limits.unknownBirthDeath.active; this.missingParentsCheckBox.Checked = limits.parentsMissing.active; this.parentProblemsCheckBox.Checked = limits.parentsProblem.active; this.missingWeddingDateCheckBox.Checked = limits.missingWeddingDate.active; this.marriageProblemCheckBox.Checked = limits.marriageProblem.active; this.missingPartnerCheckBox.Checked = limits.missingPartner.active; this.missingPartnerMinAgeUpDown.Value = limits.missingPartner.value; this.duplicatesCheckBox.Checked = limits.duplicateCheck.active; this.Show(); }
SanityCheckLimits GetSanitySettings(string filename) { SanityCheckLimits limits = new SanityCheckLimits(); FileStream readSettings; try { readSettings = new FileStream(filename, FileMode.Open); } catch (FileNotFoundException e) { trace.TraceInformation("FileNotFoundException:" + e.ToString()); readSettings = null; } if (readSettings != null) { bool delete = false; DataContractSerializer serializer = new DataContractSerializer(typeof(SanityCheckLimits)); try { limits = (SanityCheckLimits)serializer.ReadObject(readSettings); } catch (SerializationException e) { trace.TraceInformation("SerializationException:" + e.ToString()); delete = true; } readSettings.Close(); if (limits.parentsProblem == null) { limits.parentsProblem = new SanityProperty(); limits.parentsProblem.active = true; } if (limits.generationlimited == null) { limits.generationlimited = new SanityProperty(); limits.generationlimited.active = true; } if (limits.missingWeddingDate == null) { limits.missingWeddingDate = new SanityProperty(); limits.missingWeddingDate.active = true; } if (limits.marriageProblem == null) { limits.marriageProblem = new SanityProperty(); limits.marriageProblem.active = true; } if (limits.missingPartner == null) { limits.missingPartner = new SanityProperty(); limits.missingPartner.active = true; limits.missingPartner.value = 115; } if (limits.duplicateCheck == null) { limits.duplicateCheck = new SanityProperty(); limits.duplicateCheck.active = false; } limits.CreateArray(); if (delete) { File.Delete(filename); } } else { FileStream storeSettings = new FileStream(filename, FileMode.CreateNew); DataContractSerializer serializer = new DataContractSerializer(typeof(SanityCheckLimits)); serializer.WriteObject(storeSettings, (SanityCheckLimits)limits); storeSettings.Close(); } return(limits); }
public CompletenessViewPanel1() { trace = new TraceSource("PersonViewPanel1", SourceLevels.Warning); controlList = new List <Control>(); this.Dock = DockStyle.Fill; parentForm = null; //descendantGenerationNo = 0; settingsButton = new Button(); settingsButton.Text = "Settings"; settingsButton.Left = 0; this.settingsButton.MouseClick += settingsButton_MouseClick; this.Controls.Add(settingsButton); startButton = new Button(); startButton.Text = "Analyse"; startButton.Name = "Parent"; startButton.Left = settingsButton.Right; this.startButton.MouseClick += startButton_MouseClick; this.Controls.Add(startButton); stopButton = new Button(); stopButton.Left = startButton.Right; stopButton.Text = "Stop"; this.stopButton.MouseClick += stopButton_MouseClick; stopButton.Enabled = false; //stopButton. this.Controls.Add(stopButton); ancestorGenerationNoCtrl = new DomainUpDown(); ancestorGenerationNoCtrl.Left = stopButton.Right; ancestorGenerationNoCtrl.Items.Add("All g. ancestors"); for (int i = 20; i >= 5; i--) { ancestorGenerationNoCtrl.Items.Add(i.ToString() + " g. ancestors"); } ancestorGenerationNoCtrl.SelectedItem = "5 g. ancestors"; ancestorGenerationNoCtrl.Width = 100; //ancestorGenerationNoCtrl.AutoSize = true; this.Controls.Add(ancestorGenerationNoCtrl); descendantGenerationNoCtrl = new DomainUpDown(); descendantGenerationNoCtrl.Text = "Descendants"; descendantGenerationNoCtrl.Left = ancestorGenerationNoCtrl.Right; descendantGenerationNoCtrl.Enabled = true; descendantGenerationNoCtrl.AutoSize = true; descendantGenerationNoCtrl.Items.Add("All g. descendants"); for (int i = 10; i >= 0; i--) { descendantGenerationNoCtrl.Items.Add(i.ToString() + " g. descendants"); } descendantGenerationNoCtrl.SelectedItem = "0 g. descendants"; descendantGenerationNoCtrl.Width = 100; this.Controls.Add(descendantGenerationNoCtrl); stopButton.Enabled = false; //stopButton. resultList = new ListView(); resultList.Top = startButton.Bottom; //resultList.Width = 400; //resultList.Height = 400; resultList.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right; resultList.Left = 3; //resultList.Margin.Right = 3; resultList.Location = new System.Drawing.Point(3, 20); resultList.Size = new System.Drawing.Size(200, 80); //resultList.Left = 3; //resultList.MultiColumn = true; //resultList.ScrollAlwaysVisible = true; //resultList.MouseClick += resultList_MouseClick; resultList.SelectedIndexChanged += resultList_SelectedIndexChanged; resultList.Columns.Add("Name", 120, HorizontalAlignment.Left); resultList.Columns.Add("Distance", 40, HorizontalAlignment.Right); resultList.Columns.Add("Relation", 40, HorizontalAlignment.Left); resultList.Columns.Add("Birth", 80, HorizontalAlignment.Left); resultList.Columns.Add("Death", 80, HorizontalAlignment.Left); resultList.Columns.Add("Details", 250, HorizontalAlignment.Left); resultList.View = View.Details; resultList.AllowColumnReorder = true; resultList.FullRowSelect = true; resultList.ShowItemToolTips = true; resultList.MouseUp += ResultList_MouseUp; /*resultList.ContextMenuStrip = new ContextMenuStrip(); * ToolStripItem openItem = new ToolStripMenuItem(); * openItem.Text = "Open..."; * openItem.MouseUp += ContextMenuStrip_SelectOpen; * resultList.ContextMenuStrip.Items.Add(openItem); * * ToolStripItem saveItem = new ToolStripMenuItem(); * saveItem.Text = "Save..."; * saveItem.MouseUp += ContextMenuStrip_SelectSave; * resultList.ContextMenuStrip.Items.Add(saveItem); * * ToolStripItem exportItem = new ToolStripMenuItem(); * exportItem.Text = "Export to Text..."; * exportItem.MouseUp += ContextMenuStrip_SelectExport; * resultList.ContextMenuStrip.Items.Add(exportItem);*/ this.Controls.Add(resultList); utility = new FamilyUtility(); limits = GetSanitySettings(utility.GetCurrentDirectory() + "\\SanitySettings.fssan"); trace.TraceInformation("CompletenessViewPanel1::CompletenessViewPanel1()"); }