Exemplo n.º 1
0
        private void RenderSpinner(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, ITreeModel model, Gtk.TreeIter iter)
        {
            Options temp = (Options)model.GetValue(iter, 0);

            cell.Visible = temp.ValueType == ValueType.Number;
            if (cell.Visible)
            {
                CellRendererSpin spinner = (CellRendererSpin)cell;
                if (temp.Value == null)
                {
                    spinner.Text = (string)temp.DefaultValue;
                }
                else
                {
                    spinner.Text = temp.Value;
                }
            }
        }
Exemplo n.º 2
0
        void ConfigureDlg()
        {
            AutofacScope  = MainClass.AppDIContainer.BeginLifetimeScope();
            interactive   = AutofacScope.Resolve <IInteractiveMessage>();
            navigation    = AutofacScope.Resolve <INavigationManager>();
            orderMessages = AutofacScope.Resolve <OrderMessagesModel>(new TypedParameter(typeof(WorkOrder), Entity));
            validator     = AutofacScope.Resolve <IValidator>();

            labelCreated.LabelProp = $"{Entity.CreatedDate} - {Entity.CreatedBy?.Name}";

            this.Title = String.Format(GetTitleFormat(Entity.OrderTypeClass), UoW.IsNew ? "???" : Entity.Id.ToString(), Entity.Date, Entity.Hour);

            comboStatus.ItemsList = OrderStateRepository.GetStates(UoW, Entity.OrderTypeClass);
            comboStatus.Binding.AddBinding(Entity, e => e.OrderState, w => w.SelectedItem).InitializeFromSource();

            comboMark.ItemsList = UoW.GetAll <CarBrand>();
            if (Entity.CarModel != null)
            {
                comboMark.SelectedItem = Entity.CarModel.Brand;
            }
            comboModel.Binding.AddBinding(Entity, e => e.CarModel, w => w.SelectedItem).InitializeFromSource();

            if (Entity.OrderTypeClass.IsShowAdditionalWidgets)
            {
                comboManufacturer.ShowSpecialStateNot = true;
                comboManufacturer.ItemsList           = UoW.GetAll <Manufacturer>();

                comboStock.ShowSpecialStateNot = true;
                comboStock.ItemsList           = UoW.GetAll <Warehouse>();
            }
            else
            {
                labelGlass.Visible     = labelManufacturer.Visible = comboManufacturer.Visible = labelStock.Visible =
                    comboStock.Visible = labelEurocode.Visible = entryEurocode.Visible = false;
            }

            comboYear.Model      = new ListStore(typeof(string));
            comboYear.TextColumn = 0;

            for (int year = 1980; year <= DateTime.Today.Year; year++)
            {
                comboYear.AppendText(year.ToString());
            }

            comboYear.Binding.AddBinding(Entity, e => e.CarYearText, w => w.Entry.Text).InitializeFromSource();
            comboManufacturer.Binding.AddBinding(Entity, e => e.Manufacturer, w => w.SelectedItem).InitializeFromSource();
            comboStock.Binding.AddBinding(Entity, e => e.Stock, w => w.SelectedItem).InitializeFromSource();
            entryPhone.Binding.AddBinding(Entity, e => e.Phone, w => w.Text).InitializeFromSource();
            entryEurocode.Binding.AddBinding(Entity, e => e.Eurocode, w => w.Text).InitializeFromSource();

            textviewComment.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource();

            yradioInstallNone.BindValueWhenActivated                     = yradioTintingNone.BindValueWhenActivated
                                                                         = yradioArmoringNone.BindValueWhenActivated = yradioPastingNone.BindValueWhenActivated = Warranty.None;
            yradioInstall6Month.BindValueWhenActivated                   = yradioTinting6Month.BindValueWhenActivated
                                                                         = yradioArmoring6Month.BindValueWhenActivated = yradioPasting6Month.BindValueWhenActivated = Warranty.SixMonth;
            yradioInstall1Year.BindValueWhenActivated                    = yradioTinting1Year.BindValueWhenActivated
                                                                         = yradioArmoring1Year.BindValueWhenActivated = yradioPasting1Year.BindValueWhenActivated = Warranty.OneYear;
            yradioInstall2Year.BindValueWhenActivated                    = yradioTinting2Year.BindValueWhenActivated
                                                                         = yradioArmoring2Year.BindValueWhenActivated = yradioPasting2Year.BindValueWhenActivated = Warranty.TwoYear;
            yradioInstall3Year.BindValueWhenActivated                    = yradioTinting3Year.BindValueWhenActivated
                                                                         = yradioArmoring3Year.BindValueWhenActivated = yradioPasting3Year.BindValueWhenActivated = Warranty.ThreeYear;
            yradioInstallIndefinitely.BindValueWhenActivated             = yradioTintingIndefinitely.BindValueWhenActivated
                                                                         = yradioArmoringIndefinitely.BindValueWhenActivated = yradioPastingIndefinitely.BindValueWhenActivated = Warranty.Indefinitely;
            yradioInstallNoWarranty.BindValueWhenActivated               = yradioTintingNoWarranty.BindValueWhenActivated
                                                                         = yradioArmoringNoWarranty.BindValueWhenActivated = yradioPastingNoWarranty.BindValueWhenActivated = Warranty.NoWarranty;

            yradioInstallNone.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstall6Month.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstall1Year.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstall2Year.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstall3Year.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstallIndefinitely.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();
            yradioInstallNoWarranty.Binding.AddBinding(Entity, e => e.WarrantyInstall, w => w.BindedValue).InitializeFromSource();

            yradioTintingNone.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTinting6Month.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTinting1Year.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTinting2Year.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTinting3Year.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTintingIndefinitely.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();
            yradioTintingNoWarranty.Binding.AddBinding(Entity, e => e.WarrantyTinting, w => w.BindedValue).InitializeFromSource();

            yradioArmoringNone.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoring6Month.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoring1Year.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoring2Year.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoring3Year.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoringIndefinitely.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();
            yradioArmoringNoWarranty.Binding.AddBinding(Entity, e => e.WarrantyArmoring, w => w.BindedValue).InitializeFromSource();

            yradioPastingNone.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPasting6Month.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPasting1Year.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPasting2Year.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPasting3Year.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPastingIndefinitely.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();
            yradioPastingNoWarranty.Binding.AddBinding(Entity, e => e.WarrantyPasting, w => w.BindedValue).InitializeFromSource();

            CellRendererToggle CellPay = new CellRendererToggle();

            CellPay.Activatable = true;
            CellPay.Toggled    += onCellPayToggled;

            Gtk.CellRendererSpin CellCost = new CellRendererSpin();
            CellCost.Editable = true;
            CellCost.Digits   = 2;
            Adjustment adjCost = new Adjustment(0, 0, 100000000, 100, 1000, 0);

            CellCost.Adjustment = adjCost;
            CellCost.Edited    += OnCostSpinEdited;

            treeviewCost.AppendColumn("", CellPay, "active", 1);
            treeviewCost.AppendColumn("Название", new CellRendererText(), "text", 2);
            treeviewCost.AppendColumn("Стоимость", CellCost, RenderPriceColumn);

            setInTablePerformers();

            ((CellRendererToggle)treeviewCost.Columns[0].CellRenderers[0]).Activatable = true;

            treeviewCost.Model = ServiceListStore;
            treeviewCost.ShowAll();
            //fixme Изменить запрос
            var sql = "SELECT ser.id, ser.name, ser.price FROM services ser " +
                      "JOIN service_order_type ordt on ser.id = ordt.id_service " +
                      "JOIN order_type ord on ord.id = ordt.id_type_order " +
                      "WHERE ord.name = @order_type ORDER BY ord.name";
            var cmd = new MySqlCommand(sql, QSMain.connectionDB);

            cmd.Parameters.AddWithValue("@order_type", Entity.OrderTypeClass.Name.ToString());
            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    ServiceListStore.AppendValues(rdr.GetInt32("id"),
                                                  false,
                                                  rdr.GetString("name"),
                                                  DBWorks.GetDouble(rdr, "price", 0),
                                                  (long)-1,
                                                  false, false, false
                                                  );
                }
            }

            ytreeOtherOrders.ColumnsConfig = ColumnsConfigFactory.Create <WorkOrder>()
                                             .AddColumn("Тип").AddTextRenderer(x => x.OrderTypeClass.Name) // x.OrderType.GetEnumTitle()
                                             .AddColumn("Состояние").AddTextRenderer(x => x.OrderState != null ? x.OrderState.Name : null)
                                             .AddSetter((c, x) => c.Background = x.OrderState != null ? x.OrderState.Color : null)
                                             .AddColumn("Дата").AddTextRenderer(x => x.Date.ToShortDateString())
                                             .AddColumn("Марка").AddTextRenderer(x => x.CarModel != null ? x.CarModel.Brand.Name : null)
                                             .AddColumn("Модель").AddTextRenderer(x => x.CarModel != null ? x.CarModel.Name : null)
                                             .AddColumn("Еврокод").AddTextRenderer(x => x.Eurocode)
                                             .AddColumn("Производитель").AddTextRenderer(x => x.Manufacturer != null ? x.Manufacturer.Name : null)
                                             .AddColumn("Сумма").AddTextRenderer(x => x.Pays.Sum(p => p.Cost).ToString("C"))
                                             .AddColumn("Комментарий").AddTextRenderer(x => x.Comment)
                                             .AddColumn("Номер").AddTextRenderer(x => x.Id.ToString())
                                             .Finish();

            ytreeEuroCode.ColumnsConfig = ColumnsConfigFactory.Create <StoreItem>()
                                          .AddColumn("Еврокод").AddTextRenderer(x => x.EuroCode)
                                          .AddColumn("Производитель").AddTextRenderer(x => x.Manufacturer.Name)
                                          .AddColumn("Количество").AddNumericRenderer(x => x.Amount)
                                          .AddColumn("Цена").AddNumericRenderer(x => x.Cost)
                                          .Finish();

            buttonPrint.Sensitive    = !Entity.OrderTypeClass.IsOtherType;
            buttonSMSHistory.Visible = orderMessages.CountSentMessages() > 0;
            TestCanSave();
            SetEuroCode();

            Entity.PropertyChanged += Entity_PropertyChanged;
        }
Exemplo n.º 3
0
        protected virtual void Build()
        {
            // Widget MainWindow
            Name                            = "MainWindow";
            Title                           = "Настройки " + ServiceName;
            WindowPosition                  = ((WindowPosition)(4));
            DefaultWidth                    = 700;
            DefaultHeight                   = 800;
            GtkScrolledWindow1              = new ScrolledWindow();
            GtkScrolledWindow1.Name         = "GtkScrolledWindow1";
            GtkScrolledWindow1.ShadowType   = ((ShadowType)(1));
            GtkScrolledWindow1.WidthRequest = 500;

            HBox hbox = new HBox();

            tree = new TreeView();
            tree.RowActivated += new RowActivatedHandler(SelectRow);
            GtkScrolledWindow1.Add(tree);

            TreeViewColumn   col2 = new TreeViewColumn();
            CellRendererText col2TextRendererFirst = new CellRendererText();

            col2.PackStart(col2TextRendererFirst, true);

            TreeViewColumn col3 = new TreeViewColumn();

            col3.Expand = false;
            col3.Title  = "Столбец ввода значений у свойств с bool переменными и простыми записями после них";
            CellRendererText col3TextRenderer = new CellRendererText();

            col3TextRenderer.Editable = true;


            CellRendererToggle col3Toggle = new CellRendererToggle();

            col3Toggle.Activatable = true;

            CellRendererSpin col3SpinR = new CellRendererSpin();

            col3SpinR.Editable = true;
            Adjustment adjCol3SpinR = new Adjustment(0, 0, 100000, 1, 10, 0);

            col3SpinR.Adjustment = adjCol3SpinR;

            CellRendererCombo col3Combo = new CellRendererCombo();

            col3Combo.Editable   = true;
            col3Combo.TextColumn = 0;
            col3Combo.HasEntry   = false;

            //Using the same(no need to create another)
            col3TextRenderer.Edited += Cell_Edited;
            col3SpinR.Edited        += Cell_Edited;
            //Using the same causes abnormal heigth change in selected row
            col3Combo.Edited += Combo_Edited;
            col3Toggle.Xalign = 0;
            col3SpinR.Xalign  = 0;
            col3Combo.Xalign  = 0;

            col3.PackStart(col3TextRenderer, false);
            col3.PackStart(col3Toggle, false);
            col3.PackStart(col3SpinR, false);
            col3.PackStart(col3Combo, false);

            tree.AppendColumn(col2);
            tree.AppendColumn(col3);

            col3.AddAttribute(col3Toggle, "active", 1);
            col3.AddAttribute(col3TextRenderer, "text", 2);
            col3.AddAttribute(col3SpinR, "text", 2);
            col3.AddAttribute(col3Combo, "text", 2);
            //First Option, then there goes values for configs,string below works also for Numbers and ComboBox
            Store = new TreeStore(typeof(Options), typeof(bool), typeof(string));

            //ToggleFunc
            col3Toggle.Toggled += delegate(object o, ToggledArgs args) {
                TreeIter iter;
                if (Store.GetIter(out iter, new TreePath(args.Path)))
                {
                    bool temp = !(bool)Store.GetValue(iter, 1);
                    Store.SetValue(iter, 1, temp);
                    ((Options)Store.GetValue(iter, 0)).Value = temp.ToString();
                }
            };
            Store.AppendValues(Options[0], null, "");
            for (int i = 1; i < Options.Count; i++)
            {
                TreeIter iter    = Store.AppendValues(Options[i], null, null);
                int      length2 = Options[i].childs.Count;
                for (int j = 0; j < length2; j++)
                {
                    fillStore(iter, Options[i].childs[j]);
                }
            }

            col2.SetCellDataFunc(col2TextRendererFirst, new TreeCellDataFunc(RenderText));
            col3.SetCellDataFunc(col3Toggle, new TreeCellDataFunc(RenderToggle));
            col3.SetCellDataFunc(col3TextRenderer, new TreeCellDataFunc(RenderEditableText));
            col3.SetCellDataFunc(col3SpinR, new TreeCellDataFunc(RenderSpinner));
            col3.SetCellDataFunc(col3Combo, new TreeCellDataFunc(RenderCombo));

            tree.Model = Store;

            hbox.Add(GtkScrolledWindow1);

            name.LabelProp      = "";
            name.Wrap           = true;
            name.Justify        = ((Justification)(2));
            name.SingleLineMode = true;


            //ListOrOne
            TreeViewColumn ListCol = new TreeViewColumn();

            ListCol.Title = "Значение(я)";
            CellRendererText ListTextRenderer = new CellRendererText();

            ListTextRenderer.Editable          = true;
            ListTextRenderer.Background        = "white";
            ListTextRenderer.TraceConstruction = true;
            ListTextRenderer.Edited           += ListCell_Edited;
            ListCol.PackStart(ListTextRenderer, true);
            Listtree.AppendColumn(ListCol);
            ListCol.AddAttribute(ListTextRenderer, "text", 0);
            Listtree.Model = ListStore;

            //ListWithValues
            TreeViewColumn ListWithValuesCol1 = new TreeViewColumn();

            ListWithValuesCol1.Title = "1 Значение";
            TreeViewColumn ListWithValuesCol2 = new TreeViewColumn();

            ListWithValuesCol2.Title = "2 Значение";

            CellRendererText ListWithValuesTR = new CellRendererText();

            ListWithValuesTR.Editable          = true;
            ListWithValuesTR.Background        = "white";
            ListWithValuesTR.TraceConstruction = true;
            ListWithValuesTR.Edited           += ListWithValuesCell_Edited;

            CellRendererText ListWithValuesTR2 = new CellRendererText();

            ListWithValuesTR2.Editable          = true;
            ListWithValuesTR2.Background        = "white";
            ListWithValuesTR2.TraceConstruction = true;
            ListWithValuesTR2.Edited           += ListWithValues2Cell_Edited;

            ListWithValuesCol1.PackStart(ListWithValuesTR, true);
            ListWithValuesCol2.PackStart(ListWithValuesTR2, true);
            ListWithValuesTree.AppendColumn(ListWithValuesCol1);
            ListWithValuesTree.AppendColumn(ListWithValuesCol2);
            ListWithValuesCol1.AddAttribute(ListWithValuesTR, "text", 0);
            ListWithValuesCol2.AddAttribute(ListWithValuesTR2, "text", 1);
            ListWithValuesTree.Model = ListWithValuesStore;


            CombinedViewForValueTypes.PackStart(name, false, false, 0);
            CombinedViewForValueTypes.PackStart(Listtree, false, false, 0);
            CombinedViewForValueTypes.PackStart(ListWithValuesTree, false, false, 0);
            hbox.Add(CombinedViewForValueTypes);
            Add(hbox);

            ShowAll();
            CombinedViewForValueTypes.Visible = false;
        }
Exemplo n.º 4
0
        public DialogNewGame()
        {
            this.Build();

            // ====================
            // Pixel Initialization
            // ====================

            pixelGrid.CenterGridHorizontally = false;
            pixelGrid.HeightRequest          = 150;
            tablePixel.Add(pixelGrid);

            var pixelGridChild = (Gtk.Table.TableChild)tablePixel[pixelGrid];

            pixelGridChild.LeftAttach   = 1;
            pixelGridChild.RightAttach  = 3;
            pixelGridChild.TopAttach    = 3;
            pixelGridChild.BottomAttach = 4;

            pixelGrid.Tiles = 12;
            pixelGrid.Show();

            // =======================
            // Flatland Initialization
            // =======================

            treeViewFlatlandTeams.Model = flatlandTeamStore;
            treeViewFlatlandTeams.AppendColumn("Team", new CellRendererText(),
                                               delegate(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
            {
                var teamIndex = (int)model.GetValue(iter, 0);
                ((CellRendererText)cell).Text = ((char)(((int)'A') + teamIndex)).ToString();
            }
                                               );

            // Set up "Color" column
            var themeModel = new ListStore(typeof(string));

            foreach (var colorName in Enum.GetNames(typeof(ThemeColor)).OrderBy(x => x))
            {
                themeModel.AppendValues(colorName);
            }

            var colorColumnRenderer = new CellRendererCombo()
            {
                Model      = themeModel,
                TextColumn = 0,
                Editable   = true,
                HasEntry   = false,
            };

            colorColumnRenderer.Edited += delegate(object ds, EditedArgs de)
            {
                TreeIter iter;

                if (flatlandTeamStore.GetIterFromString(out iter, de.Path))
                {
                    flatlandTeamStore.SetValue(iter, 1, de.NewText);
                }
            };

            treeViewFlatlandTeams.AppendColumn("Color", colorColumnRenderer, "text", 1);
            treeViewFlatlandTeams.Columns[1].MinWidth = 100;

            // Set up "Kind" column
            var kindModel = new ListStore(typeof(string));

            kindModel.AppendValues("Normal");
            kindModel.AppendValues("Predator");
            kindModel.AppendValues("Prey");

            var kindColumnRenderer = new CellRendererCombo()
            {
                Model      = kindModel,
                TextColumn = 0,
                Editable   = true,
                HasEntry   = false
            };

            kindColumnRenderer.Edited += delegate(object ds, EditedArgs de)
            {
                TreeIter iter;

                if (flatlandTeamStore.GetIterFromString(out iter, de.Path))
                {
                    flatlandTeamStore.SetValue(iter, 2, de.NewText);
                }
            };

            treeViewFlatlandTeams.AppendColumn("Kind", kindColumnRenderer, "text", 2);
            treeViewFlatlandTeams.Columns[2].MinWidth = 100;

            // Set up "Move Delay" column
            var moveDelayColumnRenderer = new CellRendererSpin();

            moveDelayColumnRenderer.Editable   = true;
            moveDelayColumnRenderer.Adjustment = new Adjustment(3, 1, 9999, 1, 5, 1);
            moveDelayColumnRenderer.Edited    += delegate(object ds, EditedArgs de)
            {
                TreeIter iter;

                if (flatlandTeamStore.GetIterFromString(out iter, de.Path))
                {
                    flatlandTeamStore.SetValue(iter, 3, Convert.ToInt32(de.NewText));
                }
            };

            treeViewFlatlandTeams.AppendColumn("Move Delay", moveDelayColumnRenderer, "text", 3);

            // Set up "Wrap" column
            var wrapColumnRenderer = new CellRendererToggle()
            {
                Activatable = true
            };

            wrapColumnRenderer.Toggled += delegate(object ds, ToggledArgs de)
            {
                TreeIter iter;

                if (flatlandTeamStore.GetIterFromString(out iter, de.Path))
                {
                    flatlandTeamStore.SetValue(iter, 4, !Convert.ToBoolean(flatlandTeamStore.GetValue(iter, 4)));
                }
            };

            treeViewFlatlandTeams.AppendColumn("Wrap", wrapColumnRenderer, "active", 4);

            // Set up "Scoring" column
            var scoringModel = new ListStore(typeof(string));

            scoringModel.AppendValues("None");
            scoringModel.AppendValues("Selfish");
            scoringModel.AppendValues("Communal");

            var scoringColumnRenderer = new CellRendererCombo()
            {
                Model      = scoringModel,
                TextColumn = 0,
                Editable   = true,
                HasEntry   = false
            };

            scoringColumnRenderer.Edited += delegate(object ds, EditedArgs de)
            {
                TreeIter iter;

                if (flatlandTeamStore.GetIterFromString(out iter, de.Path))
                {
                    flatlandTeamStore.SetValue(iter, 5, de.NewText);
                }
            };

            treeViewFlatlandTeams.AppendColumn("Scoring", scoringColumnRenderer, "text", 5);
            treeViewFlatlandTeams.Columns[2].MinWidth = 100;

            // Add default team
            flatlandTeamStore.AppendValues(0, "Black", "Normal", 3, false, "None");

            // ======================
            // Forager Initialization
            // ======================

            treeViewForagerProbabilities.Model = foragerProbabilityStore;
            treeViewForagerProbabilities.AppendColumn("Plot", new CellRendererText(), "text", 0);

            // Probability column
            var probabilityColumnRenderer = new CellRendererSpin();

            probabilityColumnRenderer.Editable   = true;
            probabilityColumnRenderer.Adjustment = new Adjustment(1, 0, 100, 1, 5, 1);
            probabilityColumnRenderer.Edited    += delegate(object ds, EditedArgs de)
            {
                TreeIter iter;

                if (foragerProbabilityStore.GetIterFromString(out iter, de.Path))
                {
                    var setIndex       = comboBoxForagerProbabilitySet.Active;
                    var plotNumber     = (int)foragerProbabilityStore.GetValue(iter, 0);
                    var newProbability = Convert.ToInt32(de.NewText);

                    foragerProbabilities[setIndex][plotNumber - 1] = newProbability;
                    foragerProbabilityStore.SetValue(iter, 1, newProbability);
                }
            };

            treeViewForagerProbabilities.AppendColumn("Probability",
                                                      probabilityColumnRenderer, "text", 1);

            // Add default probability set
            foragerProbabilities.Add(GetDefaultForagerProbabilitySet());

            comboBoxForagerProbabilitySet.AppendText("1");
            comboBoxForagerProbabilitySet.Active = 0;
        }