source: tags/svn.1.5.4/NTREE/ad_fields.cxx

Last change on this file was 7801, checked in by westram, 14 years ago

merge from dev [7710]

  • resolve some nesting in library dependencies
    • allows unit tests in GENOM and GENOM_IMPORT
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
1// =============================================================== //
2//                                                                 //
3//   File      : ad_fields.cxx                                     //
4//   Purpose   :                                                   //
5//                                                                 //
6//   Institute of Microbiology (Technical University Munich)       //
7//   http://www.arb-home.de/                                       //
8//                                                                 //
9// =============================================================== //
10
11#include <arbdbt.h>
12
13extern GBDATA *GLOBAL_gb_main;
14
15void fields_vars_callback(AW_root *aw_root) {
16    GB_push_transaction(gb_main);
17    char    *use = aw_root->awar("tmp/fields/use")->read_string();
18    GBDATA *ali_cont = GBT_get_fields(gb_main, use);
19    if (!ali_cont) {
20        aw_root->awar("tmp/fields/fields_name")->unmap();
21        aw_root->awar("tmp/fields/fields_father")->unmap();
22        aw_root->awar("tmp/fields/fields_type")->unmap();
23        aw_root->awar("tmp/fields/fields_rem")->unmap();
24        aw_root->awar("tmp/fields/security")->unmap();
25    }
26    else {
27        GBDATA *ali_name     = GB_search(ali_cont, "fields_name",           GB_STRING);
28        GBDATA *ali_father   = GB_search(ali_cont, "fields_father",         GB_STRING);
29        GBDATA *ali_type     = GB_search(ali_cont, "fields_type",           GB_INT);
30        GBDATA *ali_security = GB_search(ali_cont, "fields_write_security", GB_INT);
31        GBDATA *ali_rem      = GB_search(ali_cont, "fields_rem",            GB_STRING);
32
33        aw_root->awar("tmp/fields/fields_name")->map((void*)ali_name);
34        aw_root->awar("tmp/fields/fields_type")->map((void*)ali_type);
35        aw_root->awar("tmp/fields/fields_father")->map((void*)ali_father);
36        aw_root->awar("tmp/fields/fields_rem")->map((void*)ali_rem);
37        aw_root->awar("tmp/fields/security")->map((void*)ali_security);
38    }
39    GB_pop_transaction(gb_main);
40    free(use);
41}
42
43void create_fields_vars(AW_root *aw_root) {
44    GB_push_transaction(gb_main);
45
46    aw_root->awar_string("tmp/fields/use",         "", aw_def);
47    aw_root->awar_string("tmp/fields/fields_name", "", aw_def);
48    aw_root->awar_string("tmp/fields/fields_rem");
49    aw_root->awar_string("tmp/fields/fields_father", "", aw_def);
50    aw_root->awar_int   ("tmp/fields/fields_type",   "", aw_def);
51    aw_root->awar_int   ("tmp/fields/aligned",       0,  aw_def);
52    aw_root->awar_int   ("tmp/fields/security",      0,  aw_def);
53
54    aw_root->awar("tmp/fields/use")->add_callback(fields_vars_callback);
55    fields_vars_callback(aw_root);
56    GB_pop_transaction(gb_main);
57}
58
59AW_window *create_fields_window(AW_root *root, AW_default /*aw_def*/) {
60    create_fields_vars(root);
61    AW_window_simple *aws = new AW_window_simple;
62    aws->init(root, "INFO_OF_FIELD", "FIELDS INFORMATION", 100, 0);
63    aws->load_xfig("ad_align.fig");
64
65    aws->callback((AW_CB0)AW_POPDOWN);
66    aws->at("close");
67    aws->create_button("CLOSE", "CLOSE", "C");
68
69    aws->callback(AW_POPUP_HELP, (AW_CL)"ad_align.hlp");
70    aws->at("help");
71    aws->create_button("HELP", "HELP", "H");
72
73    aws->button_length(13);
74
75    aws->at("delete");
76    aws->callback(ad_al_delete_cb);
77    aws->create_button("DELETE", "DELETE", "D");
78
79    aws->at("rename");
80    aws->callback(AW_POPUP, (AW_CL)create_fields_rename_window, 0);
81    aws->create_button("RENAME", "RENAME", "R");
82
83    aws->at("create");
84    aws->callback(AW_POPUP, (AW_CL)create_fields_create_window, 0);
85    aws->create_button("CREATE", "CREATE", "N");
86
87    aws->at("copy");
88    aws->callback(AW_POPUP, (AW_CL)create_fields_copy_window, 0);
89    aws->create_button("COPY", "COPY", "C");
90
91    aws->at("check_len");
92    aws->callback(ed_al_check_len_cb);
93    aws->create_button("CHECK_LEN", "CHECK LEN", "L");
94
95    aws->at("align");
96    aws->callback(ed_al_align_cb);
97    aws->create_button("FORMAT", "FORMAT", "F");
98
99    aws->at("list");
100    awt_create_selection_list_on_alignments(gb_main, (AW_window *)aws, "tmp/fields/use", "*=");
101
102    aws->at("aligned");
103    aws->create_option_menu("tmp/fields/aligned");
104    aws->callback(ed_al_check_len_cb); aws->insert_default_option("not formatted", "n", 0);
105    aws->callback(ed_al_align_cb);     aws->insert_option        ("formatted",     "j", 1);
106    aws->update_option_menu();
107
108    aws->at("len");
109    aws->create_input_field("tmp/fields/fields_len", 5);
110
111    aws->at("type");
112    aws->create_option_menu("tmp/fields/fields_type");
113    aws->insert_option("dna", "d", "dna");
114    aws->insert_option("rna", "r", "rna");
115    aws->insert_option("pro", "p", "ami");
116    aws->insert_default_option("???", "?", "usr");
117    aws->update_option_menu();
118
119    aws->at("security");
120    aws->create_option_menu("tmp/fields/security");
121    aws->callback(ed_al_check_len_cb); aws->insert_option("0", "0", 0);
122    aws->callback(ed_al_check_len_cb); aws->insert_option("1", "1", 1);
123    aws->callback(ed_al_check_len_cb); aws->insert_option("2", "2", 2);
124    aws->callback(ed_al_check_len_cb); aws->insert_option("3", "3", 3);
125    aws->callback(ed_al_check_len_cb); aws->insert_option("4", "4", 4);
126    aws->callback(ed_al_check_len_cb); aws->insert_option("5", "5", 5);
127    aws->callback(ed_al_check_len_cb); aws->insert_default_option("6", "6", 6);
128    aws->update_option_menu();
129
130    aws->at("rem");
131    aws->create_text_field("tmp/fields/fields_rem");
132
133
134    return aws;
135}
Note: See TracBrowser for help on using the repository browser.