public static Sprava[] getSpraveIPauze(int pauzeMask, Gimnastika gim) { List <Sprava> result = new List <Sprava>(); int spravaIndex = 1; int pauzaIndex = 1; int maxPauzaIndex = 12; // 6 sprava + 6 pauza if (gim == Gimnastika.ZSG) { maxPauzaIndex = 10; } for (int i = 1; i <= maxPauzaIndex; ++i) { if (RasporedNastupa.isPauzaSet(pauzeMask, i)) { result.Add((Sprava)((int)Sprava.PraznaSprava1 + pauzaIndex - 1)); ++pauzaIndex; } else { if ((gim == Gimnastika.MSG && spravaIndex <= 6) || (gim == Gimnastika.ZSG && spravaIndex <= 4)) { result.Add(Sprave.getSprava(spravaIndex, gim)); ++spravaIndex; } } } return(result.ToArray()); }
public RasporedSudija(IList <TakmicarskaKategorija> kategorije, DeoTakmicenjaKod deoTakKod, Gimnastika gimnastika) { if (kategorije.Count == 0) { throw new ArgumentException("Kategorije ne smeju da budu prazne."); } this.Naziv = RasporedNastupa.kreirajNaziv(kategorije); this.deoTakKod = deoTakKod; this.takmicenje = kategorije[0].Takmicenje; Sprava[] sprave = Sprave.getSprave(gimnastika); foreach (Sprava s in sprave) { odbori.Add(new SudijskiOdborNaSpravi(s)); } }
public StartListaRotEditorForm(int rasporedId, Sprava sprava, int grupa, int rotacija, int takmicenjeId, Color[] bojeZaEkipe) { InitializeComponent(); this.takmicenjeId = takmicenjeId; this.rotacija = rotacija; this.bojeZaEkipe = bojeZaEkipe; spravaGridUserControl1.init(sprava); spravaGridUserControl1.DataGridViewUserControl.DataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting); try { DataAccessProviderFactory factory = new DataAccessProviderFactory(); dataContext = factory.GetDataContext(); dataContext.BeginTransaction(); raspored = loadRaspored(rasporedId); startLista = raspored.getStartLista(sprava, grupa, rotacija); foreach (NastupNaSpravi n in startLista.Nastupi) { // potrebno za slucaj kada se u start listi nalaze i gimnasticari iz kategorija razlicitih od kategorija // za koje start lista vazi. NHibernateUtil.Initialize(n.Gimnasticar.TakmicarskaKategorija); } initUI(); spravaGridUserControl1.setItems(startLista.Nastupi); // dataContext.Commit(); } catch (Exception ex) { if (dataContext != null && dataContext.IsInTransaction) dataContext.Rollback(); throw new InfrastructureException( Strings.getFullDatabaseAccessExceptionMessage(ex), ex); } finally { if (dataContext != null) dataContext.Dispose(); dataContext = null; } }
private string getTabText(RasporedNastupa rasporedNastupa) { List<TakmicarskaKategorija> kategorije = new List<TakmicarskaKategorija>(rasporedNastupa.Kategorije); if (kategorije.Count == 0) return String.Empty; PropertyDescriptor propDesc = TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"]; kategorije.Sort(new SortComparer<TakmicarskaKategorija>( propDesc, ListSortDirection.Ascending)); string retValue = kategorije[0].ToString(); for (int i = 1; i < kategorije.Count; i++) retValue = retValue + ", " + kategorije[i].ToString(); return retValue; }
private StartListaNaSpravi getStartListaPrethRot(RasporedNastupa ActiveRaspored, int ActiveGrupa, int rot, Sprava sprava, List<List<Sprava>> aktivneSprave) { List<Sprava> sprave = aktivneSprave[rot - 1]; int i = sprave.IndexOf(sprava); if (i == -1) // Sprava nije aktivna u rotaciji. return null; List<Sprava> prethSprave = aktivneSprave[rot - 2]; Sprava prethSprava = (i == 0) ? prethSprave[prethSprave.Count - 1] : prethSprave[i - 1]; StartListaNaSpravi result = ActiveRaspored.getStartLista(prethSprava, ActiveGrupa, rot - 1); return result; }
private void createTab(RasporedNastupa raspored) { if (rasporedi.IndexOf(raspored) == 0) // prvi tab { // init first tab if (tabControl1.TabPages.IndexOf(tabPage1) < 0) tabControl1.TabPages.Add(tabPage1); spravaGridGroupUserControl1.Location = USER_CONTROL_LOCATION; spravaGridGroupUserControl1.SpravaGridRightClick += new EventHandler<SpravaGridRightClickEventArgs>(spravaGridGroupUserControl1_SpravaGridRightClick); spravaGridGroupUserControl1.init(rasporedi[0].Pol); foreach (SpravaGridUserControl c in spravaGridGroupUserControl1.SpravaGridUserControls) { c.DataGridViewUserControl.DataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting); c.DataGridViewUserControl.DataGridView.ColumnWidthChanged += new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged); c.DataGridViewUserControl.DataGridView.KeyDown += DataGridView_KeyDown; c.DataGridViewUserControl.DataGridView.MouseDoubleClick += DataGridView_MouseDoubleClick; } tabPage1.AutoScroll = true; tabPage1.AutoScrollMinSize = new Size( spravaGridGroupUserControl1.Right, spravaGridGroupUserControl1.Bottom); tabPage1.AutoScrollMargin = new Size(spravaGridGroupUserControl1.Location); tabPage1.Text = getTabText(raspored); } else { // init other tabs TabPage newTab = new TabPage(); tabControl1.Controls.Add(newTab); initTab(newTab, raspored); } }
private void btnNew_Click(object sender, EventArgs e) { IList<TakmicarskaKategorija> dodeljeneKategorije = getDodeljeneKategorije(); if (dodeljeneKategorije.Count == kategorijeCount) { MessageDialogs.showMessage( "Vec su odredjene start liste za sve kategorije.", this.Text); return; } string msg = "Izaberite kategorije za koje vazi start lista"; DialogResult dlgResult = DialogResult.None; SelectKategorijaForm form = null; try { form = new SelectKategorijaForm(takmicenje.Id, dodeljeneKategorije, false, msg); dlgResult = form.ShowDialog(); } catch (InfrastructureException ex) { MessageDialogs.showError(ex.Message, this.Text); return; } if (dlgResult != DialogResult.OK || form.SelektovaneKategorije.Count == 0) return; RasporedNastupa newRaspored = null; bool added = false; try { DataAccessProviderFactory factory = new DataAccessProviderFactory(); dataContext = factory.GetDataContext(); dataContext.BeginTransaction(); newRaspored = new RasporedNastupa(form.SelektovaneKategorije, deoTakKod); dataContext.Add(newRaspored); dataContext.Commit(); added = true; } catch (Exception ex) { if (dataContext != null && dataContext.IsInTransaction) dataContext.Rollback(); MessageDialogs.showMessage( Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text); } finally { if (dataContext != null) dataContext.Dispose(); dataContext = null; } if (!added) { Close(); return; } rasporedi.Add(newRaspored); tabOpened.Add(false); grupa.Add(0); rot.Add(0); createTab(newRaspored); if (tabControl1.SelectedIndex != tabControl1.TabPages.Count - 1) tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1; else onSelectedTabIndexChanged(); }
private void setStartListe(RasporedNastupa raspored, int g, int r) { SpravaGridGroupUserControl c = getActiveSpravaGridGroupUserControl(); foreach (SpravaGridUserControl c2 in c.SpravaGridUserControls) c2.clearItems(); foreach (StartListaNaSpravi s in raspored.getStartListe(g, r)) c[s.Sprava].setItems(s.Nastupi); }
private void initTab(TabPage tabPage, RasporedNastupa raspored) { // TODO: Kod u ovom metodu je prekopiran iz Designer.cs fajla (plus ono // sto sam dodao u createTab metodu). Proveri da li je u Designer.cs fajlu // nesto menjano, i ako jeste promeni ovde. SpravaGridGroupUserControl spravaGridGroupUserControl = new SpravaGridGroupUserControl(); spravaGridGroupUserControl.Location = USER_CONTROL_LOCATION; spravaGridGroupUserControl.SpravaGridRightClick += new EventHandler<SpravaGridRightClickEventArgs>(spravaGridGroupUserControl1_SpravaGridRightClick); //spravaGridGroupUserControl.Size = this.rasporedSudijaUserControl1.Size; spravaGridGroupUserControl.init(raspored.Pol); // odredjuje i Size foreach (SpravaGridUserControl c in spravaGridGroupUserControl.SpravaGridUserControls) { c.DataGridViewUserControl.DataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting); c.DataGridViewUserControl.DataGridView.ColumnWidthChanged += new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged); c.DataGridViewUserControl.DataGridView.KeyDown += DataGridView_KeyDown; c.DataGridViewUserControl.DataGridView.MouseDoubleClick += DataGridView_MouseDoubleClick; } spravaGridGroupUserControl.TabIndex = this.spravaGridGroupUserControl1.TabIndex; tabPage.SuspendLayout(); tabPage.Controls.Add(spravaGridGroupUserControl); tabPage.BackColor = this.tabPage1.BackColor; tabPage.Location = this.tabPage1.Location; tabPage.Padding = this.tabPage1.Padding; tabPage.Size = this.tabPage1.Size; //tabPage.TabIndex = rasporedi.IndexOf(raspored); // This property is not // meaningful for this control. tabPage.AutoScroll = true; tabPage.AutoScrollMinSize = new Size( spravaGridGroupUserControl.Right, spravaGridGroupUserControl.Bottom); tabPage.AutoScrollMargin = new Size(spravaGridGroupUserControl.Location); tabPage.Text = getTabText(raspored); //tabPage.UseVisualStyleBackColor = this.tabPage1.UseVisualStyleBackColor; tabPage.ResumeLayout(false); }
private void insertStartListe() { Takmicenje takmicenje = loadTakmicenje("Milano"); TakmicarskaKategorija seniori = loadKategorija(takmicenje); Query q = new Query(); q.Criteria.Add(new Criterion("Takmicenje", CriteriaOperator.Equal, takmicenje)); IList<GimnasticarUcesnik> gim_uces = dataContext.GetByCriteria<GimnasticarUcesnik>(q); Dictionary<int, GimnasticarUcesnik> gim_ucesnici = new Dictionary<int, GimnasticarUcesnik>(); foreach (GimnasticarUcesnik g in gim_uces) gim_ucesnici.Add(g.TakmicarskiBroj.Value, g); DeoTakmicenjaKod[] deoTakmicenja = { DeoTakmicenjaKod.Takmicenje1, DeoTakmicenjaKod.Takmicenje2, DeoTakmicenjaKod.Takmicenje3 }; string[] fileNames; if (gimnastika == Gimnastika.MSG) fileNames = new string[] { @"..\..\test\Data\StartListaKvalifikacijeMuskarci.txt", @"..\..\test\Data\StartListaVisebojMuskarci.txt", @"..\..\test\Data\StartListaSpraveMuskarci.txt" }; else fileNames = new string[] { @"..\..\test\Data\StartListaKvalifikacijeZene.txt", @"..\..\test\Data\StartListaVisebojZene.txt", @"..\..\test\Data\StartListaSpraveZene.txt" }; for (int i = 0; i < deoTakmicenja.Length; i++) { List<TakmicarskaKategorija> list = new List<TakmicarskaKategorija>(); list.Add(seniori); RasporedNastupa raspored = new RasporedNastupa(list, deoTakmicenja[i]); StartListaParser parser = new StartListaParser(); parser.parse(fileNames[i]); foreach (object[] o in parser.NastupiNaSpravi) { Sprava sprava = Sprave.parse((string)o[0]); int grupa = (int)o[1]; int rot = (int)o[2]; int broj = (int)o[3]; bool nastupaDvaPuta = (bool)o[4]; GimnasticarUcesnik gimnasticar = gim_ucesnici[broj]; if (gimnasticar == null) throw new Exception("Greska prilikom dodavanja rasporeda nastupa."); NastupNaSpravi nastup = new NastupNaSpravi(gimnasticar, 0); while (raspored.getStartLista(sprava, grupa, rot) == null) raspored.addNewGrupa(); raspored.getStartLista(sprava, grupa, rot).addNastup(nastup); } /* dataContext.Evict(takmicenje); foreach (GimnasticarUcesnik g in gim_uces) dataContext.Evict(g); dataContext.Evict(seniori); */ dataContext.Add(raspored); } }