Example #1
0
        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);
        }
Example #2
0
        protected override void OnCancel(object sender, EventArgs args)
        {
            cbTyp.Active = origTyp;
            textEntry.Buffer.Clear();
            var buff = textEntry.Buffer;

            API_Contract.ConvertDatabaseToEditCategorie(origDbText, ref buff);
        }
Example #3
0
        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;
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }