ARB
NT_cb.cxx
Go to the documentation of this file.
1 // =============================================================== //
2 // //
3 // File : NT_cb.cxx //
4 // Purpose : //
5 // //
6 // Institute of Microbiology (Technical University Munich) //
7 // http://www.arb-home.de/ //
8 // //
9 // =============================================================== //
10 
11 #include "NT_local.h"
12 #include "ad_trees.h"
13 
14 #include <TreeDisplay.hxx>
15 
16 #include <sel_boxes.hxx>
17 #include <aw_awars.hxx>
18 #include <aw_root.hxx>
19 #include <aw_question.hxx>
20 #include <aw_msg.hxx>
21 
22 #include <map>
23 #include <AliAdmin.h>
24 
25 // AISC_MKPT_PROMOTE:#ifndef ARBDB_BASE_H
26 // AISC_MKPT_PROMOTE:#include <arbdb_base.h>
27 // AISC_MKPT_PROMOTE:#endif
28 // AISC_MKPT_PROMOTE:class TREE_canvas;
29 
31  if (aw_ask_sure("delete_marked_species",
32  "Are you sure to delete species ??\n"
33  "This will destroy primary data !!!"))
34  {
35  {
38 
39  GBDATA *gb_species, *gb_next;
40  for (gb_species = GBT_first_marked_species(ntw->gb_main);
41  gb_species && !error;
42  gb_species = gb_next)
43  {
44  gb_next = GBT_next_marked_species(gb_species);
45  error = GB_delete(gb_species);
46  }
47 
48  if (error) {
49  error = ta.close(error);
50  aw_message(error);
51  }
52  }
53  AWT_auto_refresh allowed_on(ntw);
54  ntw->request_refresh();
55  }
56 }
57 
58 
59 AW_window *NT_create_select_tree_window(AW_root *awr, const char *awar_tree) {
60  static std::map<std::string,AW_window*> tree_select_windows;
61  if (tree_select_windows.find(awar_tree) == tree_select_windows.end()) {
62  AW_window_simple *aws = new AW_window_simple;
63 
64  const char *id = strrchr(awar_tree, '/');
65  nt_assert(id);
66  id++; // use name-part of awar_tree as id (results in 'SELECT_tree_name', 'SELECT_tree_name_1', ...)
67 
68  aws->init(awr, GBS_global_string("SELECT_%s", id), "SELECT A TREE");
69  aws->load_xfig("select_simple.fig");
70 
71  aws->at("selection");
72  awr->awar(awar_tree)->add_callback(makeRootCallback(awt_auto_popdown_cb, aws));
74 
75  aws->auto_space(5, 5);
76  aws->button_length(6);
77 
78  aws->at("button");
79  aws->callback(AW_POPDOWN);
80  aws->create_button("CLOSE", "CLOSE", "C");
81 
82  aws->callback(popup_tree_admin_window);
83  aws->help_text("treeadm.hlp");
84  aws->create_button("MODIFY", "ADMIN", "A");
85 
86  tree_select_windows[awar_tree] = aws;
87  }
88  return tree_select_windows[awar_tree];
89 }
90 
91 void NT_select_bottom_tree(AW_window *aww, const char *awar_tree) {
93  const char *ltree = GBT_name_of_bottom_tree(GLOBAL.gb_main);
94  if (ltree) aww->get_root()->awar(awar_tree)->write_string(ltree);
95 }
96 
98  // map awar containing selected alignment with db-entry (both contain same value; historical)
99  // - allows access via AWAR_DEFAULT_ALIGNMENT and GBT_get_default_alignment
100 
101  AW_awar *awar_def_ali = aw_root->awar_string(AWAR_DEFAULT_ALIGNMENT, "", aw_def);
102  GB_transaction ta(gb_main);
103  GBDATA *gb_use = GB_search(gb_main, GB_DEFAULT_ALIGNMENT, GB_STRING);
104 
105  awar_def_ali->map(gb_use);
106 }
107 
109  // if 'aw_popmedown' points to a window, that window is popped down
110  if (aw_popmedown) aw_popmedown->hide();
111 
112  static AliAdmin *ntreeAliAdmin = NULp;
113  if (!ntreeAliAdmin) ntreeAliAdmin = new AliAdmin(MAIN_ADMIN, GLOBAL.gb_main, AWAR_DEFAULT_ALIGNMENT, "tmp/presets/");
114 
115  return ALI_create_admin_window(root, ntreeAliAdmin);
116 }
117 
119  static AW_window_simple *aws = NULp;
120  if (!aws) {
121  aws = new AW_window_simple;
122 
123  aws->init(awr, "SELECT_ALIGNMENT", "SELECT AN ALIGNMENT");
124  aws->load_xfig("select_simple.fig");
125 
126  aws->at("selection");
127  awr->awar(AWAR_DEFAULT_ALIGNMENT)->add_callback(makeRootCallback(awt_auto_popdown_cb, aws));
129 
130  aws->auto_space(5, 5);
131  aws->button_length(6);
132 
133  aws->at("button");
134  aws->callback(AW_POPDOWN);
135  aws->create_button("CLOSE", "CLOSE", "C");
136 
137  aws->callback(makeCreateWindowCallback(NT_create_alignment_admin_window, static_cast<AW_window*>(aws)));
138  aws->help_text("ad_align.hlp");
139  aws->create_button("MODIFY", "ADMIN", "A");
140 
141  aws->window_fit();
142  }
143  return aws;
144 }
145 
const char * GB_ERROR
Definition: arb_core.h:25
GBDATA * GBT_first_marked_species(GBDATA *gb_main)
Definition: aditem.cxx:113
AW_window * ALI_create_admin_window(AW_root *root, AliAdmin *admin)
Definition: AdminGui.cxx:162
#define GB_DEFAULT_ALIGNMENT
Definition: arbdb.h:30
void request_refresh()
Definition: canvas.hxx:372
const char * GBT_name_of_bottom_tree(GBDATA *gb_main)
Definition: adtree.cxx:1107
#define AWAR_DEFAULT_ALIGNMENT
Definition: aw_awar_defs.hxx:8
const char * GBS_global_string(const char *templat,...)
Definition: arb_msg.cxx:203
void AW_POPDOWN(AW_window *window)
Definition: AW_window.cxx:52
void NT_create_alignment_vars(AW_root *aw_root, AW_default aw_def, GBDATA *gb_main)
Definition: NT_cb.cxx:97
void NT_delete_mark_all_cb(AW_window *, TREE_canvas *ntw)
Definition: NT_cb.cxx:30
AW_awar * add_callback(const RootCallback &cb)
Definition: AW_awar.cxx:231
GB_ERROR GB_delete(GBDATA *&source)
Definition: arbdb.cxx:1916
AW_window * NT_create_select_alignment_window(AW_root *awr)
Definition: NT_cb.cxx:118
void popup_tree_admin_window(AW_window *awp)
Definition: ad_trees.cxx:796
AW_window * NT_create_select_tree_window(AW_root *awr, const char *awar_tree)
Definition: NT_cb.cxx:59
AW_window * NT_create_alignment_admin_window(AW_root *root, AW_window *aw_popmedown)
Definition: NT_cb.cxx:108
static void error(const char *msg)
Definition: mkptypes.cxx:96
GBDATA * GBT_next_marked_species(GBDATA *gb_species)
Definition: aditem.cxx:116
AW_awar * awar(const char *awar)
Definition: AW_root.cxx:554
AW_DB_selection * awt_create_TREE_selection_list(GBDATA *gb_main, AW_window *aws, const char *varname)
Definition: sel_boxes.cxx:225
#define nt_assert(cond)
Definition: NT_local.h:27
bool aw_ask_sure(const char *unique_id, const char *msg)
GB_ERROR close(GB_ERROR error)
Definition: arbdbpp.cxx:35
void awt_auto_popdown_cb(AW_root *, AW_window_simple *aw_popup)
Definition: sel_boxes.cxx:304
AW_DB_selection * awt_create_ALI_selection_list(GBDATA *gb_main, AW_window *aws, const char *varname, const char *ali_type_match)
Definition: sel_boxes.cxx:168
AW_awar * map(const char *awarn)
Definition: AW_awar.cxx:521
void aw_message(const char *msg)
Definition: AW_status.cxx:1142
void hide()
Definition: AW_window.cxx:1835
AW_root * get_root()
Definition: aw_window.hxx:359
#define NULp
Definition: cxxforward.h:116
GBDATA * gb_main
Definition: NT_local.h:37
void NT_select_bottom_tree(AW_window *aww, const char *awar_tree)
Definition: NT_cb.cxx:91
GB_ERROR write_string(const char *aw_string)
GB_transaction ta(gb_var)
GBDATA * gb_main
Definition: adname.cxx:32
AW_awar * awar_string(const char *var_name, const char *default_value="", AW_default default_file=AW_ROOT_DEFAULT)
Definition: AW_root.cxx:570
GBDATA * GB_search(GBDATA *gbd, const char *fieldpath, GB_TYPES create)
Definition: adquery.cxx:531
NT_global GLOBAL
Definition: NT_main.cxx:46
GBDATA * gb_main
Definition: canvas.hxx:346