public GXDLMSActivityCalendarSeasonProfileDlg(GXDLMSSeasonProfile target, GXDLMSWeekProfile[] weekProfiles) { InitializeComponent(); Target = target; WeekProfile = weekProfiles; AsciiBtn.Checked = GXHelpers.IsAscii(Target.Name); NameTb.Text = GXHelpers.GetString(Target.Name); if (Target.Start != DateTime.MinValue) { StartTb.Text = Target.Start.ToFormatString(); } int pos, selected = -1; if (weekProfiles != null) { foreach (GXDLMSWeekProfile it in weekProfiles) { pos = WeekNameCb.Items.Add(it); if (selected == -1 && StructuralComparisons.StructuralEqualityComparer.Equals(Target.WeekName, it.Name)) { selected = pos; } } if (selected != -1) { WeekNameCb.SelectedIndex = selected; } } OkBtn.Enabled = weekProfiles != null && weekProfiles.Length != 0; }
private void UpdateSeasonProfile(GXDLMSSeasonProfile it, ListViewItem li, ListView target) { string str; if (GXHelpers.IsAscii(it.Name)) { str = ASCIIEncoding.ASCII.GetString(it.Name); } else { str = GXDLMSTranslator.ToHex(it.Name); } if (li == null) { li = target.Items.Add(str); li.SubItems.AddRange(new string[] { "", "" }); li.Tag = it; } else { li.SubItems[0].Text = str; } li.SubItems[1].Text = it.Start.ToFormatString(); if (GXHelpers.IsAscii(it.WeekName)) { li.SubItems[2].Text = ASCIIEncoding.ASCII.GetString(it.WeekName); } else { li.SubItems[2].Text = GXDLMSTranslator.ToHex(it.WeekName); } }
private void EditSeasonProfile(GXDLMSActivityCalendar target, GXDLMSSeasonProfile[] list, int index, ListViewItem li, ListView lv) { GXDLMSSeasonProfile item = (GXDLMSSeasonProfile)li.Tag; GXDLMSActivityCalendarSeasonProfileDlg dlg = new GXDLMSActivityCalendarSeasonProfileDlg(item, index == 3 ? target.WeekProfileTableActive : target.WeekProfileTablePassive); if (dlg.ShowDialog(this) == DialogResult.OK) { UpdateSeasonProfile(item, li, lv); errorProvider1.SetError(lv, Properties.Resources.ValueChangedTxt); Target.UpdateDirty(index, list); } }
private void RemoveSeasonProfile(GXDLMSActivityCalendar target, int index, ListView lv) { List <GXDLMSSeasonProfile> entries = new List <GXDLMSSeasonProfile>(); if (index == 3) { if (target.SeasonProfileActive != null) { entries.AddRange(target.SeasonProfileActive); } } else { if (target.SeasonProfilePassive != null) { entries.AddRange(target.SeasonProfilePassive); } } while (lv.SelectedItems.Count != 0) { ListViewItem li = lv.SelectedItems[0]; GXDLMSSeasonProfile item = (GXDLMSSeasonProfile)li.Tag; li.Remove(); errorProvider1.SetError(lv, Properties.Resources.ValueChangedTxt); if (index == 3) { Target.UpdateDirty(index, target.SeasonProfileActive); } else { Target.UpdateDirty(index, target.SeasonProfilePassive); } entries.Remove(item); } if (index == 3) { target.SeasonProfileActive = entries.ToArray(); } else { target.SeasonProfilePassive = entries.ToArray(); } }
private void AddSeasonProfile(GXDLMSActivityCalendar target, int index, ListView li) { GXDLMSSeasonProfile item = new GXDLMSSeasonProfile(); GXDLMSSeasonProfile[] list; if (index == 3) { list = target.SeasonProfileActive; } else { list = target.SeasonProfilePassive; } GXDLMSActivityCalendarSeasonProfileDlg dlg = new GXDLMSActivityCalendarSeasonProfileDlg(item, index == 3 ? target.WeekProfileTableActive : target.WeekProfileTablePassive); if (dlg.ShowDialog(this) == DialogResult.OK) { List <GXDLMSSeasonProfile> items = new List <GXDLMSSeasonProfile>(); if (list != null) { items.AddRange(list); } items.Add(item); if (index == 3) { target.SeasonProfileActive = items.ToArray(); } else { target.SeasonProfilePassive = items.ToArray(); } UpdateSeasonProfile(item, null, li); errorProvider1.SetError(li, Properties.Resources.ValueChangedTxt); target.UpdateDirty(index, list); } }