public void selektovanjeBodovanihCellClick() { // TODO: U rezimu selektovanja vezbi koje se boduju, trebalo bi da se // sakrije trenutno selektovana celija, i da ne bude moguce menjanje celija // U normalnom rezimu, kada se selektuje celija u read onlu koloni, boja bi // trebala da bude kao i boja vrste (ili bela ili boja bodovanog // elementa) - dakle ne bi trebala da se vidi selekcija ElementVezbe selectedElement = view.SelectedElement; if (selectedElement != null) { if (!selectedElement.BodujeSe) { // TODO: Mozda bi trebalo prikazati poruku ukoliko uslov // if naredbe nije ispunjen if (vezba.canSelektujElement(selectedElement.RedBroj)) { selectedElement.BodujeSe = true; view.markSelectedElementRow(true); view.updateGridFooter(); modified = true; } } else { selectedElement.BodujeSe = false; view.markSelectedElementRow(false); view.updateGridFooter(); modified = true; } } }
private void dodajElemente(List <Element> elementi) { bool dodajNaTrenutnuPoziciju = true; int index = vezba.Elementi.Count; if (dodajNaTrenutnuPoziciju) { ElementVezbe selectedElement = view.SelectedElement; if (selectedElement != null) { index = selectedElement.RedBroj - 1; } } view.startBatchUpdate(); foreach (Element elem in elementi) { ElementVezbe ev = new ElementVezbe(elem.Naziv, elem.EngleskiNaziv, elem.IsTablicniElement, elem.Grupa, elem.Tezina, elem.Broj, elem.PodBroj); vezba.DodajElement(index++, ev); view.insertElementRow(ev); } if (dodajNaTrenutnuPoziciju) { view.updateRedBrojColumn(); } // selektuj zadnji dodat element view.selectElementCell(index, view.getSelectedColumn()); view.endBatchUpdate(); modified = true; }
public void deleteElement() { ElementVezbe selectedElement = view.SelectedElement; if (selectedElement != null) { string message = string.Format("Da li zelite da izbrisete " + "element \"{0}\"?", selectedElement.NazivElementa); bool choice = view.queryConfirmation(message); if (choice) { try { vezba.UkloniElement(selectedElement); view.ukloniElementGridRow(selectedElement.RedBroj); view.updateRedBrojColumn(); view.updateGridFooter(); modified = true; } catch (Exception ex) { message = string.Format("Problem prilikom pokusaja brisanja " + "elementa \"{0}\". \n{1}", selectedElement.NazivElementa, ex.Message); view.showMessage(message); } } } }
public override void insertElementRow(ElementVezbe e) { vezbaTabela = null; if (!batchUpdate) { updateGrid(); } }
public void moveElementDown() { ElementVezbe selectedElement = view.SelectedElement; if (selectedElement != null) { byte redBroj = selectedElement.RedBroj; if (vezba.moveElementUp(redBroj)) { view.updateElementRow(redBroj, vezba.Elementi[redBroj - 1]); view.updateElementRow(redBroj + 1, vezba.Elementi[redBroj]); view.selectElementCell(redBroj + 1, view.getSelectedColumn()); modified = true; } } }
private object[] getRowValues(ElementVezbe e) { if (e.Tezina != TezinaElementa.Undefined) { return new object[] { e.RedBroj, e.NazivElementa, e.Tezina, e.GrupaBroj, e.Vrednost, e.VezaSaPrethodnim, e.Zahtev, e.Odbitak, e.Penalizacija } } ; else { return new object[] { e.RedBroj, e.NazivElementa, null, e.GrupaBroj, e.Vrednost, e.VezaSaPrethodnim, e.Zahtev, e.Odbitak, e.Penalizacija } }; }
private void updateElementFromCell(int redBroj, int col) { ElementVezbe element = vezba.Elementi[redBroj - 1]; string columnName = ""; string errMsg = ""; object cellValue = view.getElementCellValue(redBroj, col); try { columnName = view.getColumnName(col); switch (columnName) { case "Zahtev": errMsg = "Vrednost za zahtev mora da bude broj."; element.Zahtev = parseFloatCell(cellValue); break; case "Odbitak": errMsg = "Vrednost za odbitak mora da bude broj."; element.Odbitak = parseFloatCell(cellValue); break; case "Penalizacija": errMsg = "Vrednost za penalizaciju mora da bude broj."; element.Penalizacija = parseFloatCell(cellValue); break; default: break; } } catch (FormatException) { throw new GridException(errMsg, redBroj, columnName); } catch (InvalidPropertyException ex) { throw new GridException(ex.Message, redBroj, columnName, ex); } }
private void gridElementi_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { // TODO: Ispitaj kako moze da se optimizuje formatiranje if (isElementRow(e.RowIndex)) { ElementVezbe elem = Vezba.Elementi[e.RowIndex]; DataGridViewRow row = gridElementi.Rows[e.RowIndex]; if (elem.BodujeSe) { row.DefaultCellStyle.BackColor = bodujeSeBackColor; row.DefaultCellStyle.ForeColor = bodujeSeForeColor; } else { row.DefaultCellStyle.BackColor = gridElementi.DefaultCellStyle.BackColor; row.DefaultCellStyle.ForeColor = gridElementi.DefaultCellStyle.ForeColor; } } string columnName = gridElementi.Columns[e.ColumnIndex].Name; if (isFloatCell(e.RowIndex, columnName)) { if (e.Value != null) { string format = gridElementi.Columns[e.ColumnIndex]. DefaultCellStyle.Format; string formattedValue; if (tryFormatFloatCell(e.Value, format, out formattedValue)) { e.Value = formattedValue; e.FormattingApplied = true; } } } }
private string getItemCellText(int rowIndex, string column) { ElementVezbe element = vezba.Elementi[rowIndex]; switch (column) { case "RedBroj": return(element.RedBroj.ToString()); case "NazivElementa": return(element.NazivElementa); case "Tezina": if (element.Tezina != TezinaElementa.Undefined) { return(element.Tezina.ToString()); } else { return(""); } case "GrupaBroj": return(element.GrupaBroj); case "Vrednost": if (element.Vrednost != null) { return(element.Vrednost.Value.ToString(getColumnFormatString("Vrednost"))); } else { return(""); } case "VezaSaPrethodnim": // poseban se obradjuje return(""); case "Zahtev": if (element.Zahtev != null) { return(element.Zahtev.Value.ToString(getColumnFormatString("Zahtev"))); } else { return(""); } case "Odbitak": if (element.Odbitak != null) { return(element.Odbitak.Value.ToString(getColumnFormatString("Odbitak"))); } else { return(""); } case "Penalizacija": if (element.Penalizacija != null) { return(element.Penalizacija.Value.ToString(getColumnFormatString("Penalizacija"))); } else { return(""); } default: return(""); } }
public override void updateElementRow(int redBroj, ElementVezbe element) { throw new Exception("The method or operation should be implemented in inherited class."); }
public override void updateElementRow(int redBroj, ElementVezbe element) { disableAutomaticGridFooterUpdate(); gridElementi.Rows[redBroj - 1].SetValues(getRowValues(element)); enableAutomaticGridFooterUpdate(); }
public override void insertElementRow(ElementVezbe e) { // ovo ne generise CellValueChanged event gridElementi.Rows.Insert(e.RedBroj - 1, getRowValues(e)); }
public virtual void insertElementRow(ElementVezbe e) { throw new Exception("The method or operation should be implemented in inherited class."); }