[Gtk-sharp-list] Is there an sample on how to fill a ComboBoxEntry with data from ADO.Net?

Grant Goodyear grant at grantgoodyear.org
Thu Mar 9 17:31:18 EST 2006


Victor Rafael Rivarola Soerensen (FANATICO y LOCO por Cristo) wrote:
> I have spent the last few days trying to fill a simple combo box with
> data from a database but without success. Is there any free software
> out there that does this under Mono and Gtk#?

I've attached a file that has a set of combobox "set" properties that do
successfully fill a combobox.  I assume that there is a better way, but
I don't know what it is.

-Grant Goodyear-
-------------- next part --------------
// guiview.cs -- Just what's needed to create, populate, and retrieve
//               data from the Gui.
using System;
using System.Collections.Generic;
using Gtk;
using Glade;

public class GuiView {
    // widgets that get filled or read
    [Glade.Widget] private Window window1;
    [Glade.Widget] private MenuItem menuQuit;
    [Glade.Widget] private MenuItem menuAbout;
    [Glade.Widget] private CheckMenuItem menuSab;
    [Glade.Widget] private CheckMenuItem menuGenerateWW;
    [Glade.Widget] private RadioMenuItem menuUseWW;
    [Glade.Widget] private RadioMenuItem menuUseImpCards;
    [Glade.Widget] private Label labelJobNum;
    [Glade.Widget] private Label labelThickness;
    [Glade.Widget] private Label labelWater;
    [Glade.Widget] private ComboBox comboFormation;
    [Glade.Widget] private ComboBox comboTemp;
    [Glade.Widget] private ComboBox comboPressure;
    [Glade.Widget] private ComboBox comboMatrix;
    [Glade.Widget] private ComboBox comboMatrixBoron;
    [Glade.Widget] private ComboBox comboPorosity;
    [Glade.Widget] private ComboBox comboSalinity;
    [Glade.Widget] private ComboBox comboOilSat;
    [Glade.Widget] private ComboBox comboOilDensity;
    [Glade.Widget] private ComboBox comboBoreholeDiam;
    [Glade.Widget] private ComboBox comboCasingOd;
    [Glade.Widget] private ComboBox comboCement;
    [Glade.Widget] private ComboBox comboCasingWt;
    [Glade.Widget] private ComboBox comboStandoff;
    [Glade.Widget] private ComboBox comboFluid;
    [Glade.Widget] private Entry entryDensity;
    [Glade.Widget] private Entry entryNaCl;
    [Glade.Widget] private Entry entryKCl;
    [Glade.Widget] private Entry entryKCOOH;
    [Glade.Widget] private Entry entryNaCOOH;
    [Glade.Widget] private Entry entryCsCOOH;
    [Glade.Widget] private Entry entryTime;
    [Glade.Widget] private Entry entryHistories;
    [Glade.Widget] private Button buttonGenerateMCNP;
    // about box
    private Gtk.AboutDialog myabout;
    private void BuildAbout() {
        Gdk.Pixbuf mcnpicon = Gdk.Pixbuf.LoadFromResource("sxmcnp.ico");
        myabout = new AboutDialog();
        myabout.Name = "TMD-L";
        myabout.Version = "0.1";
        myabout.Copyright = "\u00a9 2006 Grant Goodyear";
        myabout.Logo = mcnpicon;
        myabout.Hide();
        myabout.DeleteEvent += delegate(object o, DeleteEventArgs a) {
            a.RetVal = true;
            myabout.Hide();
        };
    }
    // Fill or read widgets
    // .. menu items
    public bool Sab { 
        get { return menuSab.Active; }
        set { menuSab.Active = value; }
    }
    public bool GenerateWW {
        get { return menuGenerateWW.Active; }
        set { menuGenerateWW.Active = value; }
    }
    public bool UseWW {
        get { return menuUseWW.Active; }
        set { menuUseWW.Active = value; }
    }
    public bool UseImpCards {
        get { return menuUseImpCards.Active; }
        set { menuUseImpCards.Active = value; }
    }
    // .. labels (write-only)
    public string LabelJobNum {
        set { labelJobNum.Text = value; }
    }
    public string LabelThickness {
        set { labelThickness.Text = value; }
    }
    public string LabelWater {
        set { labelWater.Text = value; }
    }
    // .. combo boxes
    //    .. helper function to save typing
    private static void setComboText<T>(ComboBox cb, List<T> items) {
        cb.Clear();
        CellRendererText cell = new CellRendererText();
        cb.PackStart(cell, false);
        cb.AddAttribute(cell, "text", 0);
        ListStore store = new ListStore(typeof (string));
        cb.Model = store;
        foreach (T item in items) { 
            store.AppendValues(item.ToString()); 
        }
        cb.Active = 0;
    }
    //    .. Set the combobox values
    public List<string> ComboFormation {
        set { setComboText(comboFormation, value); }
    }
    //    .. read or set the active item index of the combobox
    public int ComboFormationActive {
        get { return comboFormation.Active; }
        set { comboFormation.Active = value; }
    }
    public List<float> ComboTemp {
        set { setComboText(comboTemp, value); }
    }
    public int ComboTempActive {
        get { return comboTemp.Active; }
        set { comboTemp.Active = value; }
    }
    public List<float> ComboPressure {
        set { setComboText(comboPressure, value); }
    }
    public int ComboPressureActive {
        get { return comboPressure.Active; }
        set { comboPressure.Active = value; }
    }
    public List<string> ComboMatrix {
        set { setComboText(comboMatrix, value); }
    }
    public int ComboMatrixActive {
        get { return comboMatrix.Active; }
        set { comboMatrix.Active = value; }
    }
    public List<float> ComboMatrixBoron {
        set { setComboText(comboMatrixBoron, value); }
    }
    public int ComboMatrixBoronActive {
        get { return comboMatrixBoron.Active; }
        set { comboMatrixBoron.Active = value; }
    }
    public List<float> ComboPorosity {
        set { setComboText(comboPorosity, value); }
    }
    public int ComboPorosityActive {
        get { return comboPorosity.Active; }
        set { comboPorosity.Active = value; }
    }
    public List<float> ComboSalinity {
        set { setComboText(comboSalinity, value); }
    }
    public int ComboSalinityActive {
        get { return comboSalinity.Active; }
        set { comboSalinity.Active = value; }
    }
    public List<float> ComboOilSat {
        set { setComboText(comboOilSat, value); }
    }
    public int ComboOilSatActive {
        get { return comboOilSat.Active; }
        set { comboOilSat.Active = value; }
    }
    public List<float> ComboOilDensity {
        set { setComboText(comboOilDensity, value); }
    }
    public int ComboOilDensityActive {
        get { return comboOilDensity.Active; }
        set { comboOilDensity.Active = value; }
    }
    public List<float> ComboBoreholeDiam {
        set { setComboText(comboBoreholeDiam, value); }
    }
    public int ComboBoreholeDiamActive {
        get { return comboBoreholeDiam.Active; }
        set { comboBoreholeDiam.Active = value; }
    }
    public List<float> ComboCasingOd {
        set { setComboText(comboCasingOd, value); }
    }
    public int ComboCasingOdActive {
        get { return comboCasingOd.Active; }
        set { comboCasingOd.Active = value; }
    }
    public List<string> ComboCement {
        set { setComboText(comboCement, value); }
    }
    public int ComboCementActive {
        get { return comboCement.Active; }
        set { comboCement.Active = value; }
    }
    public List<float> ComboCasingWt {
        set { setComboText(comboCasingWt, value); }
    }
    public int ComboCasingWtActive {
        get { return comboCasingWt.Active; }
        set { comboCasingWt.Active = value; }
    }
    public List<float> ComboStandoff {
        set { setComboText(comboStandoff, value); }
    }
    public int ComboStandoffActive {
        get { return comboStandoff.Active; }
        set { comboStandoff.Active = value; }
    }
    public List<string> ComboFluid {
        set { setComboText(comboFluid, value); }
    }
    public int ComboFluidActive {
        get { return comboFluid.Active; }
        set { comboFluid.Active = value; }
    }
    // .. entries
    public string EntryDensity {
        get { return entryDensity.Text; }
        set { entryDensity.Text = value; }
    }
    public string EntryNaCl {
        get { return entryNaCl.Text; }
        set { entryNaCl.Text = value; }
    }
    public string EntryKCl {
        get { return entryKCl.Text; }
        set { entryKCl.Text = value; }
    }
    public string EntryKCOOH {
        get { return entryKCOOH.Text; }
        set { entryKCOOH.Text = value; }
    }
    public string EntryNaCOOH {
        get { return entryNaCOOH.Text; }
        set { entryNaCOOH.Text = value; }
    }
    public string EntryCsCOOH {
        get { return entryCsCOOH.Text; }
        set { entryCsCOOH.Text = value; }
    }
    public string EntryTime {
        get { return entryTime.Text; }
        set { entryTime.Text = value; }
    }
    public string EntryHistories {
        get { return entryHistories.Text; }
        set { entryHistories.Text = value; }
    }
    // .. sensitivities (for widgets we want to "grey out")
    public bool ComboTempSensitive { 
        set { comboTemp.Sensitive = value; }
    }
    public bool ComboPressureSensitive { 
        set { comboPressure.Sensitive = value; }
    }
    public bool ComboMatrixSensitive { 
        set { comboMatrix.Sensitive = value; }
    }
    public bool ComboMatrixBoronSensitive { 
        set { comboMatrixBoron.Sensitive = value; }
    }
    public bool ComboPorositySensitive { 
        set { comboPorosity.Sensitive = value; }
    }
    public bool ComboSalinitySensitive { 
        set { comboSalinity.Sensitive = value; }
    }
    public bool ComboOilSatSensitive { 
        set { comboOilSat.Sensitive = value; }
    }
    public bool ComboOilDensitySensitive { 
        set { comboOilDensity.Sensitive = value; }
    }
    public bool ComboCasingOdSensitive { 
        set { comboCasingOd.Sensitive = value; }
    }
    public bool ComboCementSensitive { 
        set { comboCement.Sensitive = value; }
    }
    public bool ComboCasingWtSensitive { 
        set { comboCasingWt.Sensitive = value; }
    }
    public bool EntryDensitySensitive { 
        set { entryDensity.Sensitive = value; }
    }
    public bool EntryNaClSensitive { 
        set { entryNaCl.Sensitive = value; }
    }
    public bool EntryKClSensitive { 
        set { entryKCl.Sensitive = value; }
    }
    public bool EntryKCOOHSensitive { 
        set { entryKCOOH.Sensitive = value; }
    }
    public bool EntryNaCOOHSensitive { 
        set { entryNaCOOH.Sensitive = value; }
    }
    public bool EntryCsCOOHSensitive { 
        set { entryCsCOOH.Sensitive = value; }
    }
    public GuiView() {
        Application.Init();
        Glade.XML gxml = new Glade.XML(null, "tmdl.glade", "window1", null);
        gxml.Autoconnect(this);
        BuildAbout();
        // events
        window1.DeleteEvent += delegate { Application.Quit(); };
        menuQuit.Activated += delegate { Application.Quit(); };
        menuAbout.Activated += delegate { myabout.Show(); };
        myabout.DeleteEvent += delegate(object o, DeleteEventArgs args) {
            args.RetVal = true;
            myabout.Hide();
        };
        buttonGenerateMCNP.Clicked += delegate {};
        comboFormation.Changed += ComboChanged;
        comboFluid.Changed += ComboChanged;
    }
    public void Run() {
        Application.Run();
    }
    public event System.EventHandler ComboUpdated;
    public event System.EventHandler FieldsUpdated;
    public event System.EventHandler Execute;
    private void ComboChanged(object o, EventArgs args) {
        if (ComboUpdated != null) 
            ComboUpdated(o, args);
    }
}


More information about the Gtk-sharp-list mailing list