00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HK_DSVISIBLE
00012 #define HK_DSVISIBLE
00013 #include "hk_definitions.h"
00014 #include "hk_visible.h"
00015 #include "hk_datetime.h"
00016
00017 using namespace std;
00018 class hk_datasource;
00019 class hk_dsvisiblemodeprivate;
00020 class hk_dsvisibleprivate;
00031 class hk_dsvisible:public hk_visible
00032
00033 {
00034 friend class hk_datasource;
00035 public:
00036 hk_dsvisible(hk_presentation* presentation=NULL);
00037 virtual ~hk_dsvisible(void);
00038 virtual void set_datasource(hk_datasource* d);
00039 virtual bool set_presentationdatasource(long n, bool registerchange=true);
00040 long presentationdatasource(void);
00041 hk_datasource* datasource(void);
00042 virtual void savedata(ostream& s, bool savedatasource,bool saveall);
00043 virtual void savedata(ostream& s );
00044 virtual void loaddata(xmlNodePtr definition);
00045 void set_readonly(bool readonly);
00046 bool is_readonly(void) const;
00051 void set_before_row_change_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00052 hk_string before_row_change_action(void);
00057 void set_after_row_change_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00058 hk_string after_row_change_action(void);
00063 void set_before_update_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00064 hk_string before_update_action(void);
00069 void set_after_update_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00070 hk_string after_update_action(void);
00075 void set_before_delete_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00076 hk_string before_delete_action(void);
00081 void set_after_delete_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00082 hk_string after_delete_action(void);
00087 void set_before_insert_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00088 hk_string before_insert_action(void);
00093 void set_after_insert_action(const hk_string&, bool registerchange=true,bool force_setting=true);
00094 hk_string after_insert_action(void);
00095
00096
00097
00098 virtual hk_string tag_value(int tagnumber, bool& ok);
00099
00100 virtual void action_before_store_changed_data(void);
00101 virtual void action_after_store_changed_data(void);
00102 virtual void action_before_row_change(void);
00103 virtual void action_after_row_change(void);
00104 virtual void action_before_delete(void);
00105 virtual void action_after_delete(void);
00106 virtual void action_before_insert(void);
00107 virtual void action_after_insert(void);
00108
00109
00110
00111
00112
00113 protected:
00114 void row_change(void);
00115 void batch_next(void);
00116 void batch_previous(void);
00117
00118 void insert_mode(void);
00126 virtual void widget_specific_insert_mode(void){}
00134 virtual bool widget_specific_row_change(void) {return false;}
00135 virtual void widget_specific_batch_next(void) {}
00136 virtual void widget_specific_batch_previous(void) {}
00142 virtual void widget_specific_enable_disable(void){}
00143 virtual void widget_specific_enable(void){}
00144 virtual void widget_specific_disable(void){}
00145 virtual void widget_specific_row_added(void){}
00146 virtual void widget_specific_row_deleted(void){}
00152 virtual void before_row_change(void);
00153 virtual void before_store_changed_data(void);
00154 virtual void after_store_changed_data(void);
00155 virtual void before_insert_row(void){}
00156 virtual void before_datasource_enables(void){}
00161 virtual bool datasource_disable(void);
00166 virtual bool datasource_enable(void);
00171 virtual void datasource_delete(void);
00178 virtual void row_added(void);
00179 virtual void row_deleted(void);
00180 virtual bool columns_new_created(void){return true;}
00181 virtual void list_changes(listtype type);
00190 virtual bool before_columns_deleted(void){return true;}
00196 virtual bool table_structure_changes(void){return true;}
00203 virtual void before_source_vanishes(void);
00209 virtual void widget_specific_presentationdatasource(long){}
00210 virtual bool presentationmode_changed(void);
00211 hk_datasource* p_datasource;
00212 hk_datetime p_date;
00213 #ifdef HK_DEBUG
00214 hk_string debug_p_columnname;
00215 #endif
00216
00217
00218
00219 private:
00220 hk_dsvisiblemodeprivate* p_designdata;
00221 hk_dsvisiblemodeprivate* p_viewdata;
00222 hk_dsvisibleprivate* p_private;
00223
00224 bool p_already_handled;
00225
00226 };
00227 #endif