public StatisticsWin(IBaseWindow baseWin, List <GEDCOMRecord> selectedRecords) { InitializeComponent(); tbExcelExport.Image = UIHelper.LoadResourceImage("Resources.btn_excel.gif"); fGraph = new ZGraphControl(); fGraph.Dock = DockStyle.Right; fGraph.Size = new Size(400, 200); Splitter spl = new Splitter(); spl.Dock = DockStyle.Right; spl.Size = new Size(4, 290); spl.MinExtra = 100; spl.MinSize = 100; Panel1.Controls.Add(fGraph); Panel1.Controls.Add(spl); fListStats = UIHelper.CreateListView(Panel1); fListStats.AddColumn("-", 250, false); fListStats.AddColumn("-", 150, false); Panel1.Controls.SetChildIndex(fListStats, 0); Panel1.Controls.SetChildIndex(spl, 2); Panel1.Controls.SetChildIndex(fGraph, 3); Panel1.Controls.SetChildIndex(ToolBar1, 4); fController = new StatisticsWinController(this, selectedRecords); fController.Init(baseWin); fCurrentMode = StatsMode.smAncestors; SetLang(); }
public StatisticsWin(IBaseWindow baseWin, List <GEDCOMRecord> selectedRecords) { InitializeComponent(); fGraph = new ZGraphControl(); fListStats = new GKListView(); fListStats.AddColumn("-", 250, false); fListStats.AddColumn("-", 150, false); Splitter spl = new Splitter(); spl.Panel1 = fListStats; spl.Panel2 = fGraph; spl.RelativePosition = 300; spl.Orientation = Orientation.Horizontal; spl.FixedPanel = SplitterFixedPanel.Panel2; panDataPlaceholder.Content = spl; fBase = baseWin; fSelectedRecords = selectedRecords; fTreeStats = new TreeStats(fBase.Context, fSelectedRecords); fCurrentMode = StatsMode.smAncestors; SetLang(); }
public StatisticsWin(IBaseWindow baseWin, List <GDMRecord> selectedRecords) { InitializeComponent(); tbExcelExport.Image = UIHelper.LoadResourceImage("Resources.btn_excel.gif"); fGraph = new ZGraphControl(); fListStats = new GKListView(); fListStats.AddColumn("-", 250, false); fListStats.AddColumn("-", 150, false); Splitter spl = new Splitter(); spl.Panel1 = fListStats; spl.Panel2 = fGraph; spl.RelativePosition = 300; spl.Orientation = Orientation.Horizontal; spl.FixedPanel = SplitterFixedPanel.Panel2; panDataPlaceholder.Content = spl; fController = new StatisticsWinController(this, selectedRecords); fController.Init(baseWin); fCurrentMode = StatsMode.smAncestors; SetLang(); }
private void cbType_SelectedIndexChanged(object sender, EventArgs e) { fCurrentMode = (StatsMode)cbType.SelectedIndex; fController.CalcStats(fCurrentMode); fListStats.SortColumn = -1; fListStats.Sorting = SortOrder.None; }
private void cbType_SelectedIndexChanged(object sender, EventArgs e) { GKComboItem item = (GKComboItem)cbType.SelectedItem; if (item != null) { fMode = (StatsMode)item.Tag; UpdateCloud(); } }
public WordsCloudWidget(Plugin plugin) { InitializeComponent(); fPlugin = plugin; fWords = new List <Word>(); foreach (CloudType cloudType in CloudTypes) { cbType.Items.Add(new GKComboItem(cloudType.Name, cloudType.Mode)); } fMode = StatsMode.smNames; SetLang(); }
public void UpdateStatsTypes() { ICulture culture = fBase.Context.Culture; fView.StatsType.BeginUpdate(); fView.StatsType.Clear(); for (StatsMode sm = StatsMode.smAncestors; sm <= StatsMode.smLast; sm++) { if (sm == StatsMode.smPatronymics && !culture.HasPatronymic()) { continue; } GKData.StatsTitleStruct tr = GKData.StatsTitles[(int)sm]; fView.StatsType.Add(LangMan.LS(tr.Title)); } fView.StatsType.EndUpdate(); }
private void GetEventField(StatsMode mode, List <StatsItem> values, GDMIndividualRecord iRec, string evtName) { string v = "?"; GDMCustomEvent evt = iRec.FindEvent(evtName); if (evt == null) { return; } int dtY = evt.GetChronologicalYear(); if (dtY == 0 && (mode != StatsMode.smBirthPlaces && mode != StatsMode.smDeathPlaces)) { return; } switch (mode) { case StatsMode.smBirthYears: case StatsMode.smDeathYears: v = Convert.ToString(dtY); break; case StatsMode.smBirthTenYears: case StatsMode.smDeathTenYears: v = Convert.ToString(dtY / 10 * 10); break; case StatsMode.smBirthPlaces: case StatsMode.smDeathPlaces: if (evt.HasPlace) { v = evt.Place.StringValue; } break; } CheckVal(values, v); }
private void GetIndiName(StatsMode mode, List <StatsItem> values, GEDCOMIndividualRecord iRec) { string v = ""; var parts = GKUtils.GetNameParts(iRec); switch (mode) { case StatsMode.smSurnames: v = fContext.Culture.NormalizeSurname(parts.Surname, iRec.Sex == GEDCOMSex.svFemale); break; case StatsMode.smNames: v = parts.Name; break; case StatsMode.smPatronymics: v = parts.Patronymic; break; } CheckVal(values, v); }
private void UpdateStatsTypes() { ICulture culture = fBase.Context.Culture; //cmStatTypes.Items.Clear(); cbType.Items.Clear(); for (StatsMode sm = StatsMode.smAncestors; sm <= StatsMode.smLast; sm++) { if (sm == StatsMode.smPatronymics && !culture.HasPatronymic()) { continue; } GKData.StatsTitleStruct tr = GKData.StatsTitles[(int)sm]; /*var menuItem = new MenuItemEx(LangMan.LS(tr.Title)); * menuItem.Click += miStatType_Click; * menuItem.Tag = sm; * cmStatTypes.Items.Add(menuItem);*/ cbType.Items.Add(new GKComboItem(LangMan.LS(tr.Title), sm)); } }
public void CalcStats(StatsMode mode) { fCurrentMode = mode; fView.ListStats.SetColumnCaption(0, LangMan.LS(GKData.StatsTitles[(int)mode].Cap)); fView.ListStats.SetColumnCaption(1, LangMan.LS(LSID.LSID_Value)); fView.ListStats.BeginUpdate(); fView.ListStats.ClearItems(); try { fCurrentValues = new List <StatsItem>(); fTreeStats.GetSpecStats(mode, fCurrentValues); foreach (StatsItem lv in fCurrentValues) { fView.ListStats.AddItem(null, lv.Caption, lv.GetDisplayString()); } } finally { fView.ListStats.EndUpdate(); } fChartTitle = LangMan.LS(GKData.StatsTitles[(int)mode].Title); switch (mode) { case StatsMode.smAge: fChartXTitle = LangMan.LS(LSID.LSID_Age); fChartYTitle = LangMan.LS(LSID.LSID_People); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Point, true, fCurrentValues); break; case StatsMode.smLifeExpectancy: fChartXTitle = LangMan.LS(LSID.LSID_LifeExpectancy); fChartYTitle = LangMan.LS(LSID.LSID_People); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Point, true, fCurrentValues); break; case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: { switch (mode) { case StatsMode.smBirthYears: case StatsMode.smDeathYears: fChartXTitle = LangMan.LS(LSID.LSID_Years); break; case StatsMode.smBirthTenYears: case StatsMode.smDeathTenYears: fChartXTitle = LangMan.LS(LSID.LSID_Decennial); break; } switch (mode) { case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: fChartYTitle = LangMan.LS(LSID.LSID_HowBirthes); break; case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: fChartYTitle = LangMan.LS(LSID.LSID_HowDeads); break; } fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Point, true, fCurrentValues); break; } case StatsMode.smChildsDistribution: fChartXTitle = LangMan.LS(LSID.LSID_Childs); fChartYTitle = LangMan.LS(LSID.LSID_Parents); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Bar, true, fCurrentValues); break; case StatsMode.smCertaintyIndex: fChartXTitle = LangMan.LS(LSID.LSID_CertaintyIndex); fChartYTitle = LangMan.LS(LSID.LSID_People); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Bar, true, fCurrentValues); break; case StatsMode.smBirthByMonth: fChartXTitle = LangMan.LS(LSID.LSID_Month); fChartYTitle = LangMan.LS(LSID.LSID_People); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.Bar, true, fCurrentValues); break; case StatsMode.smDemography: fChartXTitle = LangMan.LS(LSID.LSID_LifeExpectancy); fChartYTitle = LangMan.LS(LSID.LSID_People); fView.Graph.PrepareArray(fChartTitle, fChartXTitle, fChartYTitle, ChartStyle.ClusterBar, true, fCurrentValues); break; default: fView.Graph.Clear(); break; } }
public CloudType(string name, StatsMode mode) { Name = name; Mode = mode; }
public void GetSpecStats(StatsMode mode, List <StatsItem> values) { if (values == null) { throw new ArgumentNullException("values"); } if (mode < StatsMode.smDescGenerations) { GKUtils.InitExtCounts(fTree, -1); } // special buffers for difficult calculations with averaged ages Dictionary <string, List <int> > xvals = new Dictionary <string, List <int> >(); int num = fTree.RecordsCount; for (int i = 0; i < num; i++) { GEDCOMRecord rec = fTree[i]; if (rec.RecordType == GEDCOMRecordType.rtIndividual && mode != StatsMode.smSpousesDiff && fSelectedRecords.Contains(rec)) { GEDCOMIndividualRecord iRec = rec as GEDCOMIndividualRecord; if (mode != StatsMode.smAAF_1 && mode != StatsMode.smAAF_2) { GetSimplePersonStat(mode, values, iRec); } else { GEDCOMIndividualRecord iChild = GKUtils.GetFirstborn(iRec); int fba = GKUtils.GetFirstbornAge(iRec, iChild); if (fba > 0 && iChild != null) { string key; List <int> valsList; switch (mode) { case StatsMode.smAAF_1: int dty1 = iRec.GetChronologicalYear("BIRT"); if (dty1 != 0) { key = MathHelper.Trunc(dty1 / 10 * 10).ToString(); if (!xvals.TryGetValue(key, out valsList)) { valsList = new List <int>(); xvals.Add(key, valsList); } valsList.Add(fba); } break; case StatsMode.smAAF_2: int dty2 = iChild.GetChronologicalYear("BIRT"); if (dty2 != 0) { key = MathHelper.Trunc(dty2 / 10 * 10).ToString(); if (!xvals.TryGetValue(key, out valsList)) { valsList = new List <int>(); xvals.Add(key, valsList); } valsList.Add(fba); } break; } } } } else if (rec.RecordType == GEDCOMRecordType.rtFamily && mode == StatsMode.smSpousesDiff) { GEDCOMFamilyRecord fRec = rec as GEDCOMFamilyRecord; int diff = GKUtils.GetSpousesDiff(fRec); if (diff != -1) { values.Add(new StatsItem(GKUtils.GetFamilyString(fRec), diff)); } } } if (mode == StatsMode.smAAF_1 || mode == StatsMode.smAAF_2) { foreach (KeyValuePair <string, List <int> > kvp in xvals) { List <int> valsList = kvp.Value; int count = valsList.Count; int avg; if (count == 0) { avg = 0; } else { double sum = 0; for (int i = 0; i < count; i++) { sum += valsList[i]; } avg = (int)Math.Round(sum / count); } values.Add(new StatsItem(kvp.Key, avg)); } } }
private void GetSimplePersonStat(StatsMode mode, List <StatsItem> values, GEDCOMIndividualRecord iRec) { string iName = GKUtils.GetNameString(iRec, true, false); switch (mode) { case StatsMode.smAncestors: values.Add(new StatsItem(iName, GKUtils.GetAncestorsCount(iRec) - 1)); break; case StatsMode.smDescendants: values.Add(new StatsItem(iName, GKUtils.GetDescendantsCount(iRec) - 1)); break; case StatsMode.smDescGenerations: values.Add(new StatsItem(iName, GKUtils.GetDescGenerations(iRec))); break; case StatsMode.smChildsCount: values.Add(new StatsItem(iName, iRec.GetTotalChildsCount())); break; case StatsMode.smFirstbornAge: values.Add(new StatsItem(iName, GKUtils.GetFirstbornAge(iRec, GKUtils.GetFirstborn(iRec)))); break; case StatsMode.smMarriages: values.Add(new StatsItem(iName, GKUtils.GetMarriagesCount(iRec))); break; case StatsMode.smMarriageAge: values.Add(new StatsItem(iName, GKUtils.GetMarriageAge(iRec))); break; case StatsMode.smSurnames: case StatsMode.smNames: case StatsMode.smPatronymics: GetIndiName(mode, values, iRec); break; case StatsMode.smAge: CheckVal(values, GKUtils.GetAgeStr(iRec, -1)); break; case StatsMode.smLifeExpectancy: CheckVal(values, GKUtils.GetLifeExpectancyStr(iRec)); break; case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: case StatsMode.smBirthPlaces: GetEventField(mode, values, iRec, "BIRT"); break; case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: case StatsMode.smDeathPlaces: GetEventField(mode, values, iRec, "DEAT"); break; case StatsMode.smChildsDistribution: CheckVal(values, iRec.GetTotalChildsCount().ToString()); break; case StatsMode.smResidences: CheckVal(values, GKUtils.GetResidencePlace(iRec, false)); break; case StatsMode.smOccupation: CheckVal(values, GKUtils.GetAttributeValue(iRec, "OCCU")); break; case StatsMode.smReligious: CheckVal(values, GKUtils.GetAttributeValue(iRec, "RELI")); break; case StatsMode.smNational: CheckVal(values, GKUtils.GetAttributeValue(iRec, "NATI")); break; case StatsMode.smEducation: CheckVal(values, GKUtils.GetAttributeValue(iRec, "EDUC")); break; case StatsMode.smCaste: CheckVal(values, GKUtils.GetAttributeValue(iRec, "CAST")); break; case StatsMode.smHobby: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_HOBBY")); break; case StatsMode.smAward: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_AWARD")); break; case StatsMode.smMili: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_MILI")); break; case StatsMode.smMiliInd: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_MILI_IND")); break; case StatsMode.smMiliDis: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_MILI_DIS")); break; case StatsMode.smMiliRank: CheckVal(values, GKUtils.GetAttributeValue(iRec, "_MILI_RANK")); break; case StatsMode.smCertaintyIndex: CheckVal(values, string.Format("{0:0.00}", iRec.GetCertaintyAssessment())); break; case StatsMode.smBirthByMonth: GEDCOMCustomEvent ev = iRec.FindEvent("BIRT"); if (ev != null) { var dtx = ev.Date.Value as GEDCOMDate; if (dtx != null) { int month = dtx.GetMonthNumber(); if (month > 0) { CheckVal(values, month.ToString()); } } } break; case StatsMode.smDemography: { int lifeExp = GKUtils.GetLifeExpectancy(iRec); if (lifeExp > -1) { string v = Convert.ToString(lifeExp / 5 * 5); CheckVal(values, v, iRec.Sex); } break; } } }
private void cbType_SelectedIndexChanged(object sender, EventArgs e) { fCurrentMode = (StatsMode)cbType.SelectedIndex; CalcStats(fCurrentMode); }
private void CalcStats(StatsMode mode) { fListStats.SortColumn = 0; fListStats.Columns[0].Text = LangMan.LS(GKData.StatsTitles[(int)mode].Cap); fListStats.Columns[1].Text = LangMan.LS(LSID.LSID_Value); fListStats.Sorting = SortOrder.None; fListStats.SortColumn = -1; fListStats.BeginUpdate(); fListStats.Items.Clear(); List <StatsItem> vals = new List <StatsItem>(); try { fTreeStats.GetSpecStats(mode, vals); fCurrentValues = vals; ListViewItem[] items = new ListViewItem[vals.Count]; int i = 0; foreach (StatsItem lv in vals) { ListViewItem item = new ListViewItem(lv.Caption); string stVal = lv.GetDisplayString(); item.SubItems.Add(stVal); items[i] = item; i++; } fListStats.Items.AddRange(items); } finally { fListStats.EndUpdate(); } fChartTitle = LangMan.LS(GKData.StatsTitles[(int)mode].Title); switch (mode) { case StatsMode.smAge: fChartXTitle = LangMan.LS(LSID.LSID_Age); fChartYTitle = LangMan.LS(LSID.LSID_People); PrepareArray(ChartStyle.Point, true); break; case StatsMode.smLifeExpectancy: fChartXTitle = LangMan.LS(LSID.LSID_LifeExpectancy); fChartYTitle = LangMan.LS(LSID.LSID_People); PrepareArray(ChartStyle.Point, true); break; case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: { switch (mode) { case StatsMode.smBirthYears: case StatsMode.smDeathYears: fChartXTitle = LangMan.LS(LSID.LSID_Years); break; case StatsMode.smBirthTenYears: case StatsMode.smDeathTenYears: fChartXTitle = LangMan.LS(LSID.LSID_Decennial); break; } switch (mode) { case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: fChartYTitle = LangMan.LS(LSID.LSID_HowBirthes); break; case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: fChartYTitle = LangMan.LS(LSID.LSID_HowDeads); break; } PrepareArray(ChartStyle.Point, true); break; } case StatsMode.smChildsDistribution: fChartXTitle = LangMan.LS(LSID.LSID_Childs); fChartYTitle = LangMan.LS(LSID.LSID_Parents); PrepareArray(ChartStyle.Bar, true); break; case StatsMode.smCertaintyIndex: fChartXTitle = LangMan.LS(LSID.LSID_CertaintyIndex); fChartYTitle = LangMan.LS(LSID.LSID_People); PrepareArray(ChartStyle.Bar, true); break; case StatsMode.smBirthByMonth: fChartXTitle = LangMan.LS(LSID.LSID_Month); fChartYTitle = LangMan.LS(LSID.LSID_People); PrepareArray(ChartStyle.Bar, true); break; case StatsMode.smDemography: fChartXTitle = LangMan.LS(LSID.LSID_LifeExpectancy); fChartYTitle = LangMan.LS(LSID.LSID_People); PrepareArray(ChartStyle.ClusterBar, true, vals); break; default: fGraph.Clear(); break; } }