예제 #1
0
 public void update()
 {
     cs.PrepareForUpdate();
     listView1.Items.Clear();
     foreach (RabNetEngRabbit r in rbs)
     {
         ListViewItem li = listView1.Items.Add(r.FullName);
         li.SubItems.Add(r.BreedName);
         li.Tag = r.ID;
         li.SubItems.Add(r.Tag);
         String sex = "?";
         if (r.Sex == Rabbit.SexType.FEMALE)
         {
             sex = "Ж";
         }
         if (r.Sex == Rabbit.SexType.MALE)
         {
             sex = "М";
         }
         li.SubItems.Add(sex);
         li.SubItems.Add(r.Age.ToString());
         li.SubItems.Add(r.Group.ToString());
         li.SubItems.Add(r.Group.ToString());
     }
     //listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
     cs.RestoreAfterUpdate();
     updateLabels();
 }
예제 #2
0
        /// <summary>
        /// Заполняет ListView возможными кормилицами.
        /// </summary>
        public void updateMothers()
        {
            int ad = Engine.opt().getIntOption(Options.OPT_ID.COMBINE_AGE);

            cs.PrepareForUpdate();
            listView1.Items.Clear();
            foreach (AdultRabbit moth in Engine.db().getMothers(r.Age, ad))
            {
                if (moth.ID != r.ParentID)
                {
                    ListViewItem li = listView1.Items.Add(moth.NameFull);
                    li.SubItems.Add(moth.Age.ToString());
                    li.SubItems.Add(moth.BreedName);
                    li.SubItems.Add(moth.FStatus());
                    li.SubItems.Add(moth.Rate.ToString());
                    li.SubItems.Add(moth.FAddress());
                    li.SubItems.Add(moth.KidsAge.ToString());
                    if (_selmom == moth.ID)
                    {
                        li.SubItems.Add((moth.Group + r.Group).ToString()); //TODO выяснить зачем это
                        li.SubItems.Add(r.Group.ToString());
                        nudCount.Value = 0;
                        li.Selected    = true;
                        li.EnsureVisible();
                    }
                    else
                    {
                        li.SubItems.Add(moth.KidsCount.ToString());
                        li.SubItems.Add("");
                    }
                    li.Tag = moth.ID;
                }
            }
            if (listView1.Items.Count == 0)
            {
                MessageBox.Show("Нет кормилиц, которые сидят с крольчатами приближенного возраста." + Environment.NewLine +
                                "Увеличьте значение параметра \"Объединение группы\"." + Environment.NewLine +
                                "Либо отсадите кормилицу от молодняка.");
                btCancel.PerformClick();
                return;
            }
            String txt = listView1.Items[0].SubItems[REPLCOL].Text;

            listView1.Items[0].SubItems[REPLCOL].Text = "10";
            //listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            listView1.Items[0].SubItems[REPLCOL].Text = txt;
            cs.RestoreAfterUpdate();
        }
예제 #3
0
 private void rsb_OnFinishUpdate()
 {
     cs.RestoreAfterUpdate();
 }
예제 #4
0
        private void fillTable()
        {
            cs.PrepareForUpdate();
            Filters flt = new Filters();
            flt[Filters.RAB_ID] = _rabFemale.ID.ToString();
            flt[Filters.HETEROSIS] = chHetererosis.Checked ? "1" : "0";
            flt[Filters.INBREEDING] = chInbreed.Checked ? "1" : "0";
            flt[Filters.MALE_REST] = _opt_malewait.ToString();
            flt[Filters.MAKE_CANDIDATE] = _opt_makeCand.ToString();
            flt[Filters.SHOW_CANDIDATE] = chCandidates.Checked ? "1" : "0";
            flt[Filters.SHOW_REST] = chRest.Checked ? "1" : "0";
            //TODO здесь трахатели идеалогически неверно передаются через объекты Трахов
            FuckPartner[] fs = Engine.db().GetAllFuckers(flt);
            listView1.BeginUpdate();

            foreach (FuckPartner fP in fs) {
                bool heter = (fP.BreedId != _rabFemale.BreedID);
                bool inbr = RabNetEngHelper.inbreeding(_rabFemale.Genoms, fP.OldGenoms);

                ListViewItem li = listView1.Items.Add(fP.FullName);
                li.UseItemStyleForSubItems = false;
                if (fP.LastFuck != DateTime.MinValue && DateTime.Now < fP.LastFuck.Date.AddDays(_opt_malewait)) {
                    li.SubItems[IND_NAME].ForeColor = chRest.ForeColor;
                }
                li.Tag = fP;
                li.SubItems.Add("Мальчик");
                if (fP.Status == 1 || (fP.Status == 0 && fP.Age >= _opt_makeCand)) {
                    li.SubItems[IND_STATE].Text = "Кандидат";
                    li.SubItems[IND_STATE].ForeColor = chCandidates.ForeColor;
                }
                if (fP.Status == 2) {
                    li.SubItems[IND_STATE].Text = "Производитель";
                }
                li.SubItems.Add(_breeds[fP.BreedId]);
                li.SubItems.Add(fP.F***s.ToString());
                li.SubItems.Add(fP.MutualChildren.ToString());
                li.SubItems.Add(inbr ? "ДА" : "-");

                int inbrLevel = 0;
                if (RabbitGen.DetectInbreeding(_rabFemale.RabGenoms, fP.RabGenoms, ref inbrLevel)) {
                    li.SubItems.Add(inbrLevel.ToString() + " поколение");
                } else {
                    li.SubItems.Add("-");
                }

                if (heter) {
                    li.SubItems[IND_BREED].ForeColor = chHetererosis.ForeColor;
                }
                if (inbr) {
                    li.SubItems[IND_INBR].ForeColor = chInbreed.ForeColor;
                }
                if (_rabMaleId == fP.Id) {
                    li.Selected = true;
                    li.EnsureVisible();
                }
            }
            // если был передан партнер, но его нет в списке, то обнуляем его, т.к. он не был выбран
            if (listView1.SelectedItems.Count == 0) {
                _rabMaleId = 0;
            } else {
                listView1_SelectedIndexChanged(null, null);
            }

            listView1.EndUpdate();
            cs.RestoreAfterUpdate();
        }
예제 #5
0
 protected virtual void onFinishUpdate()
 {
     _colSort.RestoreAfterUpdate();
     this.Enabled = true;
 }