method private _grab_input =
    let ty = SQL_ty.type_of_string
               ?dispsize:  self#_get_dispsize
               ?precision: self#_get_precision
               ~options:   glade#other_opts_combo#entry#text
               glade#ty_combo#entry#text
    and options =
      let fetch_strings = fun parent ->
        if sopts_store#iter_has_child parent then
          let iter = sopts_store#iter_children (Some parent) in
          let result = ref [sopts_store#get_data ~row:iter] in
            while sopts_store#iter_next iter do
              result := (sopts_store#get_data ~row:iter) :: !result
            done;
            List.rev !result
        else
          []
      in
        match sopts_store#get_iter_first with
          | None ->
              Dbf_misc.StringMap.empty
          | Some iter ->
              let rec fetch = fun map ->
                let db   = sopts_store#get_data ~row:iter
                and opts = fetch_strings iter in
                let map  = Dbf_misc.StringMap.add db opts map in
                  match sopts_store#iter_next iter with
                    | true  -> fetch map
                    | false -> map
              in
                fetch Dbf_misc.StringMap.empty

    and spec_ty =
      match tyopts_store#get_iter_first with
        | None ->
            Dbf_misc.StringMap.empty
        | Some iter ->
            let rec fetch = fun map ->
              let (db, ty) = tyopts_store#get_data ~row:iter in
              let map      = Dbf_misc.StringMap.add db ty map in
                match tyopts_store#iter_next iter with
                  | true  -> fetch map
                  | false -> map
            in
              fetch Dbf_misc.StringMap.empty
    in
      { cgi_name       = glade#name_entry#text;
        cgi_comment    = glade#comments_textview#buffer#get_text ();
        cgi_type       = ty;
        cgi_nullable   = glade#nullable_check#active;
        cgi_options    = options;
        cgi_spec_ty    = spec_ty;
        cgi_ocaml_type = glade#ocamlty_combo#entry#text;
        cgi_sql2ml     = glade#sql2ml_combo#entry#text;
        cgi_ml2sql     = glade#ml2sql_combo#entry#text; }