private void UpdateIndividualList(IList <IndividualXrefClass> personList, FamilyButton familyButton) { if (personList != null) { foreach (IndividualXrefClass personXref in personList) { if (!personControlList.ContainsKey(personXref.GetXrefName())) { IndividualButton personButton = new IndividualButton(personXref.GetXrefName()); personButton.SetParent(this); personButton.SetLayout(layout, familyButton); personControlList.Add(personXref.GetXrefName(), personButton); mainPanel.Controls.Add(personButton); if (!personThreadList.ContainsKey(personXref.GetXrefName())) { FindPersonThread thread = new FindPersonThread(familyTree, personXref.GetXrefName(), new HandleNewIndividual(HandleNewIndividual_Function)); personThreadList.Add(personXref.GetXrefName(), thread); } } else { IndividualButton personButton = personControlList[personXref.GetXrefName()]; if (personButton.individual != null) { UpdateIndividual(personButton.individual, layout, ref personButton, familyButton); } else { if (personButton.SetLayout(layout, familyButton)) { if (!personThreadList.ContainsKey(personXref.GetXrefName())) { FindPersonThread thread = new FindPersonThread(familyTree, personXref.GetXrefName(), new HandleNewIndividual(HandleNewIndividual_Function)); personThreadList.Add(personXref.GetXrefName(), thread); } } } } } } }
private void ShowActiveFamily() { bool clear = false; trace.TraceInformation("ShowActiveFamily (start)"); if (!this.CanFocus) { trace.TraceInformation("ShowActiveFamily (end:hidden->shown=>refresh)"); return; } if (generationNoCtrl.SelectedItem == null) { trace.TraceInformation("ShowActiveFamily (selecteditem == null)"); return; } if (generationNoCtrl.SelectedItem.ToString() != layout.GetGenerations().ToString()) { layout.SetGenerations(Convert.ToInt32(generationNoCtrl.SelectedItem)); } if (!layout.IsEqual(prevLayout)) { //lastSize.Height = this.Height; //lastSize.Width = this.Width; //layout.Init(lastSize); //ClearButtonLayout(); clear = true; prevLayout = layout.Clone(); } if (selectedIndividual != null) { if ((prevSelectedIndividual == null) || (prevSelectedIndividual != selectedIndividual.GetXrefName())) { //ClearButtonLayout(); clear = true; //prevLayout = layout; prevSelectedIndividual = selectedIndividual.GetXrefName(); } if (clear) { ClearButtonLayout(); trace.TraceData(TraceEventType.Warning, 0, " scrollv:" + mainPanel.VerticalScroll.Value + " " + mainPanel.VerticalScroll.Maximum + " " + mainPanel.VerticalScroll.Minimum + " scrollh:" + mainPanel.HorizontalScroll.Value + " " + mainPanel.HorizontalScroll.Maximum + " " + mainPanel.HorizontalScroll.Minimum); mainPanel.Width += 100; mainPanel.Height += 100; mainPanel.VerticalScroll.Value = mainPanel.VerticalScroll.Maximum; mainPanel.HorizontalScroll.Value = mainPanel.HorizontalScroll.Maximum; trace.TraceData(TraceEventType.Warning, 0, " scrollv:" + mainPanel.VerticalScroll.Value + " " + mainPanel.VerticalScroll.Maximum + " " + mainPanel.VerticalScroll.Minimum + " scrollh:" + mainPanel.HorizontalScroll.Value + " " + mainPanel.HorizontalScroll.Maximum + " " + mainPanel.HorizontalScroll.Minimum); } if (!personControlList.ContainsKey(selectedIndividual.GetXrefName())) { IndividualButton selectedButton = new IndividualButton(selectedIndividual.GetXrefName(), selectedIndividual); selectedButton.SetParent(this); personControlList.Add(selectedIndividual.GetXrefName(), selectedButton); mainPanel.Controls.Add(selectedButton); } IndividualButton personControl = personControlList[selectedIndividual.GetXrefName()]; UpdateIndividual(selectedIndividual, layout, ref personControl); CheckLayout(selectedIndividual.GetXrefName(), false); } else { if (prevSelectedIndividual != null) { ClearButtonLayout(); prevSelectedIndividual = null; } } //Refresh(); trace.TraceInformation("ShowActiveFamily (end-done) "); }