protected override bool OnSave() { // Mutable values string currTypString = GtkHelper.ComboBoxActiveString(cbTyp); origDbText = API_Contract.ConvertEditCategorieToDatabse(textEntry.Buffer); // Save on Database int currRang = int.Parse((string)currTreeStore.GetValue(currTreeIter, (int)CategorieColumnID.Rang)); DatabaseTable origElem, newElem; if (IsCurrParent) { int currTyp = API_Contract.CategorieTextParentTypCR[currTypString]; origElem = new Table_Kategorie_Tab_Titel(tabName, origDbText, origTyp, origRang); newElem = new Table_Kategorie_Tab_Titel(tabName, origDbText, currTyp, currRang); } else { int currTyp = API_Contract.CategorieTextChildTypCR[currTypString]; string tmpTitel = (string)currTreeStore.GetValue(currParentIter, (int)CategorieColumnID.Text); origElem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, this.origDbText, origTyp, origRang); newElem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, origDbText, currTyp, currRang); } origElem.Update(newElem); // Save on UI currTreeStore.SetValue(currTreeIter, (int)CategorieColumnID.Text, origDbText); currTreeStore.SetValue(currTreeIter, (int)CategorieColumnID.Typ, currTypString); // Save on this origTyp = cbTyp.Active; origText = textEntry.Buffer.Text; return(true); }
public override void AddParentEntry() { if (CurrTabIndex == -1) { return; } Entry nameEntry = new Entry(); var cbTyp = new ComboBox(API_Contract.CategorieTextTypParentVal); cbTyp.Active = 0; GetUserArgs[] args = { new GetUserArgs(new Label("Titel"), nameEntry), new GetUserArgs(new Label("Typ"), cbTyp), }; var diag = new GetUserDataDialog(args, null, "Speichern", 0, "Abbrechen", 1); if (diag.Run() == 0 && AssertNotEmpty(diag, nameEntry)) { var treeContent = CurrTreeStore; string text = nameEntry.Text; string typString = GtkHelper.ComboBoxActiveString(cbTyp); int typ = API_Contract.CategorieTextParentTypCR[typString]; int row; TreeIter firstIt; if (treeContent.GetIterFirst(out firstIt)) // Has childs { var lastIt = GtkHelper.GetLastIter(treeContent, firstIt); row = int.Parse((string)treeContent.GetValue(lastIt, (int)CategorieColumnID.Rang)); row += 1; } else // Is empty { row = 0; } // Save on UI treeContent.AppendValues(row, typString, text); // Save in Database var insert = new Table_Kategorie_Tab_Titel(tabNames[CurrTabIndex], text, typ, row); dbAdapter.InsertEntry(insert); } // Free memory diag.Destroy(); foreach (var arg in args) { arg.Dispose(); } }
private void MoveRow(object sender, EventArgs args) { // Moves a Row in the ListView and saves new position if (!init) { return; } int currPos = int.Parse((string)currTreeStore.GetValue(currTreeIter, (int)CategorieColumnID.Rang)); TreeIter changeIter = currTreeIter; bool canChange; if (sender == upButton) // Go up or down { canChange = currTreeStore.IterPrevious(ref changeIter); } else // sender == downButton { canChange = currTreeStore.IterNext(ref changeIter); } if (!canChange) { return; // Nothing to do here! } // Save on Database int changePos = int.Parse((string)currTreeStore.GetValue(changeIter, (int)CategorieColumnID.Rang)); string changeText = (string)currTreeStore.GetValue(changeIter, (int)CategorieColumnID.Text); DatabaseTable orig_Elem, origTmp_Elem, change_Elem, changeTmp_Elem; if (IsCurrParent) { int changeTyp = API_Contract.CategorieTextParentTypCR[ (string)currTreeStore.GetValue(changeIter, (int)CategorieColumnID.Typ)]; orig_Elem = new Table_Kategorie_Tab_Titel(tabName, origDbText, origTyp, currPos); origTmp_Elem = new Table_Kategorie_Tab_Titel(tabName, origDbText, origTyp, int.MaxValue); change_Elem = new Table_Kategorie_Tab_Titel(tabName, changeText, changeTyp, changePos); changeTmp_Elem = new Table_Kategorie_Tab_Titel(tabName, changeText, changeTyp, currPos); } else { int changeTyp = API_Contract.CategorieTextChildTypCR[ (string)currTreeStore.GetValue(changeIter, (int)CategorieColumnID.Typ)]; string tmpTitel = (string)currTreeStore.GetValue(currParentIter, (int)CategorieColumnID.Text); orig_Elem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, this.origDbText, origTyp, currPos); origTmp_Elem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, this.origDbText, origTyp, int.MaxValue); change_Elem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, changeText, changeTyp, changePos); changeTmp_Elem = new Table_Kategorie_Tab_Text(tabName, tmpTitel, changeText, changeTyp, currPos); } // origPos -> Int.Max | changePos -> origPos | origPos -> ChangePos orig_Elem.Update(origTmp_Elem); change_Elem.Update(changeTmp_Elem); if (IsCurrParent) { ((Table_Kategorie_Tab_Titel)orig_Elem).Rang = changePos; } else { ((Table_Kategorie_Tab_Text)orig_Elem).Rang = changePos; } origTmp_Elem.Update(orig_Elem); // Save on UI currTreeStore.SetValue(currTreeIter, (int)CategorieColumnID.Rang, changePos); currTreeStore.SetValue(changeIter, (int)CategorieColumnID.Rang, currPos); // Sort on UI if (sender == upButton) { GtkHelper.SortInByColumn(currTreeStore, (int)CategorieColumnID.Rang, changeIter); } else { GtkHelper.SortInByColumn(currTreeStore, (int)CategorieColumnID.Rang, currTreeIter); } // Save on this origRang = changePos; }