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); }
protected override void OnCancel(object sender, EventArgs args) { cbTyp.Active = origTyp; textEntry.Buffer.Clear(); var buff = textEntry.Buffer; API_Contract.ConvertDatabaseToEditCategorie(origDbText, ref buff); }
public override void AddParentEntry() // Add a Termin { TimeBox timeBox = new TimeBox(true); timeBox.posEntry.Text = "0"; // Default pos Entry textEntry = new Entry(); ComboBox cbType = new ComboBox(API_Contract.ProgrammTerminTypVal); cbType.Active = 1; // Default is 'Programm' GetUserArgs[] args = new GetUserArgs[] { new GetUserArgs(new Label("Text"), textEntry), new GetUserArgs(new Label("Sichtbarkeit"), cbType), }; var diag = new GetUserDataDialog(args, timeBox, "Speichern", 0, "Abbruch", 1); if (diag.Run() == 0) { bool validated; while (!(validated = timeBox.ValidateTime())) { if (diag.Run() == 1) { validated = false; break; } } if (validated) // There is valid user data { var treeContent = CurrTreeStore; string finalTime; string tmpTime = timeBox.Time; string text = textEntry.Text; string typString = GtkHelper.ComboBoxActiveString(cbType); int typ = cbType.Active; // Save on UI TreeIter insertIter; insertIter = treeContent.AppendValues(tmpTime, text, typString); GtkHelper.SortInByColumn(treeContent, (int)ProgrammColumnID.Uhrzeit, insertIter); finalTime = API_Contract.ClearTimeConflicts(treeContent, insertIter); // Save on Database var insert = new Table_Termin(CurrTabIndex, finalTime, text, typ); dbAdapter.InsertEntry(insert); } } // Free Memory diag.Destroy(); foreach (var arg in args) // Free args { arg.Dispose(); } }
protected override void HookEditTreeRow(TreeView treeView, RowActivatedArgs args, object tabData) { this.day = (int)tabData; CurrText = (string)currTreeStore .GetValue(currTreeIter, (int)ProgrammColumnID.Text); string typString = (string)currTreeStore .GetValue(currTreeIter, (int)ProgrammColumnID.Typ); string timeString; if (IsParent(args)) { // Parent Node, just set flags currParentIter = currTreeIter; timeBox.IsEditable = true; } else { // Child Node, get Parent iter, set flags TreeIter parentIter; currTreeStore.IterParent(out parentIter, currTreeIter); currParentIter = parentIter; timeBox.IsEditable = false; CurrText = API_Contract.ConvertTreeViewToEditView(CurrText); } // Time is depending from parentIter timeString = (string)currTreeStore .GetValue(currParentIter, (int)ProgrammColumnID.Uhrzeit); // Set Type Arrays if (IsParent(args)) { // Termin is parent GtkHelper.FillComboBox(cbTyp, API_Contract.ProgrammTerminTypVal); cbTyp.Active = API_Contract.ProgrammTerminTypCR[typString]; } else { GtkHelper.FillComboBox(cbTyp, API_Contract.ProgrammDescrTypVal); cbTyp.Active = API_Contract.ProgrammDescrTypCR[typString]; } // Set new values timeBox.Time = timeString; // Set default values origTyp = cbTyp.Active; }
public TreeStore GetListFrameDataFor(int day, int veranstaltungs_id, int instanz_id, string sprache) { // Populates a treeStore with the data from @programm[day] // Check if data is already cached if (cached_ProgrammQuery == null || (veranstaltungs_id != cached_veranstaltungs_id || instanz_id != cached_instanz_id || sprache != null || !sprache.Equals(cached_sprache))) { CacheProgrammData(veranstaltungs_id, instanz_id, sprache); } // No more data will be needed if (day >= cached_ProgrammQuery.Length) { cached_ProgrammQuery = null; // Free cached_programm return(null); } TreeStore treeStore = new TreeStore(typeof(string), typeof(string), typeof(string)); ProgramQuery[] dayList = cached_ProgrammQuery[day]; for (uint i = 0; i < dayList.Length;) { var currItem = dayList[i]; var iter = treeStore.AppendValues( "" + currItem.termin_Uhrzeit, "" + currItem.termin_Titel, "" + API_Contract.ProgrammTerminTypHR[currItem.termin_Typ]); if (currItem.beschreibung_Text != null) { // While has childs do { treeStore.AppendValues(iter, "└──", "" + API_Contract.ConvertDatabaseToTreeChild(dayList[i].beschreibung_Text), "" + API_Contract.ProgrammDescrTypHR[currItem.beschreibung_Typ]); i++; } while (i < dayList.Length && currItem.termin_Uhrzeit.Equals(dayList[i].termin_Uhrzeit) && currItem.termin_Tag == dayList[i].termin_Tag); continue; // No need to count up } i++; } return(treeStore); }
protected override void EditTreeRow(TreeView treeView, RowActivatedArgs args, object tabData) { this.tabName = (string)tabData; string typString = (string)currTreeStore.GetValue(currTreeIter, (int)CategorieColumnID.Typ); origDbText = (string)currTreeStore.GetValue(currTreeIter, (int)CategorieColumnID.Text); origRang = int.Parse((string)currTreeStore.GetValue(currTreeIter, (int)CategorieColumnID.Rang)); int activeTyp; // Get ParentIter and Type if (IsParent(args)) { // Parent Node, just get values currParentIter = currTreeIter; GtkHelper.FillComboBox(cbTyp, API_Contract.CategorieTextTypParentVal); activeTyp = API_Contract.CategorieTextParentTypCR[typString]; } else { // Child Node, get parent and values TreeIter parentIter; currTreeStore.IterParent(out parentIter, currTreeIter); currParentIter = parentIter; GtkHelper.FillComboBox(cbTyp, API_Contract.CategorieTextTypChildVal); activeTyp = API_Contract.CategorieTextChildTypCR[typString]; } // Set new values cbTyp.Active = activeTyp; textEntry.Buffer.Clear(); var buff = textEntry.Buffer; API_Contract.ConvertDatabaseToEditCategorie(origDbText, ref buff); // Set default values origText = buff.Text; origTyp = activeTyp; boldButton.Active = italicButton.Active = false; }
protected override bool HookOnSave() { // Assert data integrity if (!timeBox.ValidateTime()) { return(false); } // Mutable values string validTime; string textString = CurrText; string origTime = timeBox.OrigTime; string typString = GtkHelper.ComboBoxActiveString(cbTyp); int typ = cbTyp.Active; // Save on Database DatabaseTable orig, newElem; if (IsCurrParent) { validTime = timeBox.Time; orig = new Table_Termin(day, origTime, OrigText, origTyp); newElem = new Table_Termin(day, validTime, textString, typ); } else { validTime = origTime; // Parent time, we got on EditTreeRow() textString = API_Contract.ConvertEditViewToDatabase(textString); orig = new Table_Beschreibung(day, origTime, OrigText, origTyp); newElem = new Table_Beschreibung(day, validTime, textString, typ); } orig.Update(newElem); // Save on UI if (IsCurrParent) // Only Parent time can change { currTreeStore.SetValue(currTreeIter, (int)ProgrammColumnID.Uhrzeit, validTime); } currTreeStore.SetValue(currTreeIter, (int)ProgrammColumnID.Typ, typString); // Set UI text value and sort in if (IsCurrParent) { // Sort by time, and clear conflicts currTreeStore.SetValue(currTreeIter, (int)ProgrammColumnID.Text, textString); var iter = GtkHelper.SortInByColumn(currTreeStore, (int)ProgrammColumnID.Uhrzeit, currTreeIter); validTime = API_Contract.ClearTimeConflicts(currTreeStore, iter); } else { // Sort by text currTreeStore.SetValue(currTreeIter, (int)ProgrammColumnID.Text, API_Contract.ConvertDatabaseToTreeChild(textString)); GtkHelper.SortInByColumn(currTreeStore, (int)ProgrammColumnID.Text, currTreeIter); } // Save on this timeBox.Time = validTime; origTyp = cbTyp.Active; return(true); }