22
22
#ifndef BOX_DB_TABLE_H
23
23
#define BOX_DB_TABLE_H
25
#include <glom/box_withbuttons.h>
26
#include <glom/base_db_table.h>
26
27
#include <glom/libglom/data_structure/field.h>
28
#include <libglademm.h>
27
29
#include <algorithm> //find_if used in various places.
32
class Box_DB_Table : public Box_DB
34
/** A Box that has access to a database table's structure.
37
: public Box_WithButtons,
36
42
Box_DB_Table(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
37
43
virtual ~Box_DB_Table();
39
virtual bool init_db_details(const Glib::ustring& table_name);
40
virtual bool refresh_data_from_database();
42
virtual Glib::ustring get_table_name();
44
//TODO: Put this somewhere more sensible:
45
typedef std::map<GType, Glib::ustring> type_map_valuetypes;
49
//virtual Glib::RefPtr<Gnome::Gda::DataModel> record_new(Gnome::Gda::Value primary_key_value);
51
Gnome::Gda::Value get_entered_field_data_field_only(const sharedptr<const Field>& field) const;
52
virtual Gnome::Gda::Value get_entered_field_data(const sharedptr<const LayoutItem_Field>& field) const;
54
//static sharedptr<Field> get_field_primary_key(const type_vecFields& fields);
56
unsigned long get_last_auto_increment_value(const Glib::RefPtr<Gnome::Gda::DataModel>& data_model, const Glib::ustring& field_name);
59
//static type_vecFields get_fields_for_datamodel(const Glib::RefPtr<Gnome::Gda::DataModel>& data_model);
60
static Glib::ustring postgres_get_field_definition_for_sql(const Glib::RefPtr<const Gnome::Gda::Column>& field_info);
62
Glib::ustring m_table_name;
45
Gtk::Window* get_app_window();
46
const Gtk::Window* get_app_window() const;