ARB
db_query.h
Go to the documentation of this file.
1 // ============================================================ //
2 // //
3 // File : db_query.h //
4 // Purpose : Database queries //
5 // //
6 // Institute of Microbiology (Technical University Munich) //
7 // http://www.arb-home.de/ //
8 // //
9 // ============================================================ //
10 
11 #ifndef DB_QUERY_H
12 #define DB_QUERY_H
13 
14 #ifndef ITEMS_H
15 #include <items.h>
16 #endif
17 #ifndef AW_BASE_HXX
18 #include <aw_base.hxx>
19 #endif
20 
21 
22 class AW_selection_list;
23 
24 namespace QUERY {
25 
26  typedef const char *AwarName;
27  typedef void (*popup_info_window_cb)(AW_root *aw_root, GBDATA *gb_main);
28 
29  class DbQuery;
30 
31  class query_spec {
32  ItemSelector& selector; // which kind of item do we handle?
33 
34  public:
35  query_spec(ItemSelector& selector_);
36 
37  ItemSelector& get_queried_itemtype() const { return selector; }
38 
39  GBDATA *gb_main; // the main database (in merge tool: source db in left query; dest db in right query)
40  GBDATA *gb_ref; // second reference database (only used by merge tool; dest db in left query; source db in right query)
41  bool expect_hit_in_ref_list; // merge-tool: when searching dups in fields: match only if hit exists in other DBs hitlist (true for target-DB-query)
42  AwarName species_name; // awar containing current species name
43  AwarName tree_name; // awar containing current tree name
44 
45  int select_bit; // one of 1 2 4 8 .. 128 (one for each query box)
46 
47  const char *ere_pos_fig; // rebuild enlarge reduce
48  const char *where_pos_fig; // current, marked or all species (used for sub-items of species)
49  const char *by_pos_fig; // fit query don't fit, marked
50 
51  const char *qbox_pos_fig; // key box for queries
52  const char *key_pos_fig; // the key
53  const char *query_pos_fig; // the query
54 
55 
56  const char *result_pos_fig; // the result box
57  const char *count_pos_fig;
58 
59  const char *do_query_pos_fig;
60  const char *config_pos_fig;
61 
62  const char *do_mark_pos_fig; // mark listed, unmark rest
63  const char *do_unmark_pos_fig;
64  const char *do_mark_nt_pos_fig; // mark listed, dont touch rest
65  const char *do_unmark_nt_pos_fig;
66 
67  const char *do_delete_pos_fig;
68  const char *do_set_pos_fig; // multi set a key
69  const char *do_refresh_pos_fig;
70 
72 
73  const char *info_box_pos_fig;
74 
75  bool is_queried(GBDATA *gb_item) const;
76  };
77 
78  void copy_selection_list_2_query_box(DbQuery *query, AW_selection_list *srclist, const char *hit_description);
79  DbQuery *create_query_box(AW_window *aws, query_spec *awtqs, const char *query_id); // create the query box
80  void search_duplicated_field_content(AW_window *dummy, DbQuery *query, bool tokenize);
81  long count_queried_items(DbQuery *query, QUERY_RANGE range);
82  void unquery_all(void *dummy, DbQuery *query);
83 
85 
86  inline bool IS_QUERIED(GBDATA *gb_item, const query_spec *aqs) { return aqs->is_queried(gb_item); }
87  bool IS_QUERIED(GBDATA *gb_item, const DbQuery *query);
88 
89  void DbQuery_update_list(DbQuery *query);
90 
92 
93  GBDATA *query_get_gb_main(DbQuery *query);
94 
95 };
96 
97 #else
98 #error db_query.h included twice
99 #endif // DB_QUERY_H
const char * config_pos_fig
Definition: db_query.h:60
AwarName species_name
Definition: db_query.h:42
void DbQuery_update_list(DbQuery *query)
Definition: db_query.cxx:484
const char * key_pos_fig
Definition: db_query.h:52
GBDATA * query_get_gb_main(DbQuery *query)
Definition: db_query.cxx:108
const char * ere_pos_fig
Definition: db_query.h:47
void copy_selection_list_2_query_box(DbQuery *query, AW_selection_list *srclist, const char *hit_description)
Definition: db_query.cxx:1129
const char * where_pos_fig
Definition: db_query.h:48
const char * AwarName
Definition: db_query.h:26
DbQuery * create_query_box(AW_window *aws, query_spec *awtqs, const char *query_id)
Definition: db_query.cxx:2336
const char * result_pos_fig
Definition: db_query.h:56
void unquery_all(void *dummy, DbQuery *query)
Definition: db_query.cxx:619
long count_queried_items(DbQuery *query, QUERY_RANGE range)
Definition: db_query.cxx:161
const char * do_mark_nt_pos_fig
Definition: db_query.h:64
ItemSelector & get_queried_itemtype(DbQuery *query)
Definition: db_query.cxx:112
GBDATA * gb_ref
Definition: db_query.h:40
const char * qbox_pos_fig
Definition: db_query.h:51
void(* popup_info_window_cb)(AW_root *aw_root, GBDATA *gb_main)
Definition: db_query.h:27
const char * count_pos_fig
Definition: db_query.h:57
const char * by_pos_fig
Definition: db_query.h:49
bool expect_hit_in_ref_list
Definition: db_query.h:41
void search_duplicated_field_content(AW_window *dummy, DbQuery *query, bool tokenize)
Definition: db_query.cxx:1193
Definition: db_query.h:24
QUERY_RANGE
Definition: items.h:40
TokLPtr tokenize(const std::string &description, TokLPtr tokenLP)
AW_window * create_colorize_items_window(AW_root *aw_root, GBDATA *gb_main, ItemSelector &sel)
Definition: db_query.cxx:1953
popup_info_window_cb popup_info_window
Definition: db_query.h:71
const char * do_mark_pos_fig
Definition: db_query.h:62
bool IS_QUERIED(GBDATA *gb_item, const query_spec *aqs)
Definition: db_query.h:86
const char * do_unmark_nt_pos_fig
Definition: db_query.h:65
query_spec(ItemSelector &selector_)
Definition: db_query.cxx:122
const char * query_pos_fig
Definition: db_query.h:53
const char * do_query_pos_fig
Definition: db_query.h:59
const char * info_box_pos_fig
Definition: db_query.h:73
GBDATA * gb_main
Definition: db_query.h:39
GBDATA * gb_main
Definition: adname.cxx:32
ItemSelector & get_queried_itemtype() const
Definition: db_query.h:37
const char * do_set_pos_fig
Definition: db_query.h:68
bool is_queried(GBDATA *gb_item) const
Definition: db_query.cxx:153
AwarName tree_name
Definition: db_query.h:43
const char * do_delete_pos_fig
Definition: db_query.h:67
const char * do_unmark_pos_fig
Definition: db_query.h:63
const char * do_refresh_pos_fig
Definition: db_query.h:69