Databaseconnectionclasses  0.5.3
hk_dsgrid.h
1 // ****************************************************************************
2 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org>
3 // This file is part of the hk_classes library.
4 // This file may be distributed and/or modified under the terms of the
5 // GNU Library Public License version 2 as published by the Free Software
6 // Foundation and appearing in the file COPYING included in the
7 // packaging of this file.
8 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
9 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
10 // ****************************************************************************
11 #ifndef HK_DSGRID
12 #define HK_DSGRID
13 #include "hk_dsvisible.h"
14 #include "hk_dsgridcolumn.h"
15 #include <vector>
16 #include <list>
17 using namespace std;
18 class hk_column;
26 class hk_dsgrid:public hk_dsvisible
27 {
28  friend class hk_dsgridcolumn;
29  public:
30  hk_dsgrid(hk_form* form=NULL );
31  virtual ~hk_dsgrid(void);
36  hk_dsgridcolumn* gridcolumn(unsigned int c);
37  hk_dsgridcolumn* gridcolumn(const hk_string& identfier);
41  unsigned int columnscount(void);
47  void set_gridcolumnwidth(unsigned int col,int newwidth);
53  void change_columnposition(unsigned int from,unsigned int to);
58  void set_gridcolumns(vector<hk_dsgridcolumn>& c,bool registerchange=true);
63  void set_gridcolumns(list<hk_string>&sl);
64  void clear_gridcolumn(void);
70  void set_hold_rowdefinition(bool h=true);
77  void set_enablingbehaviour(bool add_col,bool del_col);
78 // bool save_grid(const hk_string& name="",bool ask=true);
79  virtual void savedata(ostream& s,bool saveall);
80  virtual void savedata(ostream&s );
81  virtual void loaddata(xmlNodePtr definition);
82  virtual void set_datasource(hk_datasource*);
83  list <hk_string>* visible_columns(void);
84  list <hk_string>* nonvisible_columns(void);
85  bool save_table(const hk_string& s="",bool ask=true);
86  bool load_table(void);
87  bool save_view(const hk_string& s="",bool ask=true);
88  bool load_view(void);
89  void set_rowheight(int,bool registerchange=true);
90  int rowheight(void);
91 
92 
93 
94 
95  protected:
96  bool datasource_enable(void);
97  bool datasource_disable(void);
98  bool columns_new_created(void);
99  virtual void before_store_changed_data(void);
100  virtual bool table_structure_changes(void);
101  virtual void widget_specific_columns_created(void){}
102  virtual void widget_specific_rowheight_changes(void){}
103 
104 
105 
106  private:
107 
108  void delete_nonexisting_columns(void);
109  void add_new_columns(void);
110  void clear_cols(void);
111  void resize_cols(int n);
112  vector<hk_dsgridcolumn*> p_cols;
113  bool p_automatic_columns;
114  bool p_delete_nonexisting_columns;
115  bool p_add_new_columns;
116  bool p_holdrowdefinition;
117  int p_rowheight;
118  list<hk_string> p_visiblecols;
119  list<hk_string> p_nonvisiblecols;
120 };
121 #endif
base class for widgets which show multi column data in a grid.
Definition: hk_dsgrid.h:26
base class for visible widgets without column data connection
Definition: hk_dsvisible.h:31
structure of a column in a grid
Definition: hk_dsgridcolumn.h:29
base class for forms
Definition: hk_form.h:43
virtual bool datasource_enable(void)
Definition: hk_dsdatavisible.cpp:220
virtual bool datasource_disable(void)
Definition: hk_dsdatavisible.cpp:207
virtual void savedata(ostream &s)
Definition: hk_dsgridcolumn.cpp:173
represents a resultquery or a table of a database.
Definition: hk_datasource.h:45
virtual bool table_structure_changes(void)
Definition: hk_dsvisible.h:196
virtual void set_datasource(hk_datasource *)
Definition: hk_dsgridcolumn.cpp:355
represents one column of a datasource.
Definition: hk_column.h:34
virtual void loaddata(xmlNodePtr definition)
Definition: hk_dsgridcolumn.cpp:211