Exemple #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);
        }
        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();
            }
        }
Exemple #3
0
        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;
        }