34 #define AD_F_ALL AWM_ALL
42 return gb_experiment_data;
47 char *slash = strchr(name,
'/');
64 char *exp = strchr(organism,
'/');
82 if (old_species_marks) {
84 freenull(old_species_marks);
167 free(experiment_name);
170 return gb_experiment;
228 aws->
init(aw_root,
"EXPERIMENT_QUERY",
"Experiment SEARCH and QUERY");
260 GLOBAL_experiment_query = query;
280 if (
aw_ask_sure(
"experiment_delete",
"Are you sure to delete the experiment")) {
286 error = ta.
close(error);
299 if (!gb_experiment_data) error =
"Please select an organism";
321 if (strcmp(source, dest) != 0) {
326 if (!gb_experiment_data) error =
"Please select an organism";
331 if (!gb_source) error =
"Please select an experiment";
332 else if (gb_dest) error =
GB_export_errorf(
"Experiment '%s' already exists", dest);
356 if (!gb_experiment_data) error =
"Please select an organism";
361 if (!gb_source) error =
"Please select an experiment";
362 else if (gb_dest) error =
GB_export_errorf(
"Experiment '%s' already exists", dest);
382 AWT_activate_prompt(
"Create experiment",
"Enter name of new experiment:", source,
"Create", handler);
387 AWT_activate_prompt(
"Rename experiment",
"Enter new experiment name:", source,
"Rename", handler);
392 AWT_activate_prompt(
"Copy experiment",
"Enter name of new experiment:", source,
"Copy", handler);
444 aws,
"box",
"field",
"enable",
DB_KEYVIEWER,
"mark", itemType);
GB_ERROR GB_begin_transaction(GBDATA *gbd)
GB_ERROR GB_copy_dropProtectMarksAndTempstate(GBDATA *dest, GBDATA *source)
static void popup_detached_experiment_window(AW_window *aw_parent, const InfoWindow *infoWin)
static char * old_species_marks
const InfoWindow * find_reusable_of_same_type_as(const InfoWindow &other)
static GBDATA * EXP_get_next_experiment_data(GBDATA *gb_experiment_data, QUERY_RANGE range)
void button_length(int length)
static GBDATA * get_current_experiment_data(GBDATA *gb_main)
const char * config_pos_fig
void insert_menu_topic(const char *id, const char *name, const char *mnemonic, const char *help_text_, AW_active mask, const WindowCallback &wcb)
GB_ERROR GBT_restore_marked_species(GBDATA *gb_main, const char *stored_marked)
GB_ERROR GB_write_string(GBDATA *gbd, const char *s)
void load_xfig(const char *file, bool resize=true)
ItemSelector & ORGANISM_get_selector()
static const int MAIN_WINDOW
#define AWAR_ORGANISM_NAME
int allocate_detach_id(const InfoWindow &other)
GB_ERROR GB_end_transaction(GBDATA *gbd, GB_ERROR error)
static AW_window * popup_new_experiment_window(AW_root *aw_root, GBDATA *gb_main, int detach_id)
static void refresh_displayed_experiments()
GBDATA * EXP_first_experiment_rel_exp_data(GBDATA *gb_experiment_data)
GBDATA * GEN_get_current_organism(GBDATA *gb_main)
NOT4PERL GB_ERROR GBT_with_stored_species(GBDATA *gb_main, const char *stored, species_callback doit, int *clientdata)
void(* add_selection_changed_cb)(AW_root *aw_root, const RootCallback &cb)
const char * where_pos_fig
char * ARB_strdup(const char *str)
DbQuery * create_query_box(AW_window *aws, query_spec *awtqs, const char *query_id)
const char * GBS_global_string(const char *templat,...)
const char * result_pos_fig
void AW_POPDOWN(AW_window *window)
GBDATA * GEN_find_organism(GBDATA *gb_main, const char *name)
const char * open_parser_pos_fig
GBDATA * GB_get_grandfather(GBDATA *gbd)
GBDATA * GB_get_father(GBDATA *gbd)
static void experiment_copy_cb(AW_window *aww, GBDATA *gb_main)
AW_window * EXP_create_experiment_query_window(AW_root *aw_root, GBDATA *gb_main)
AW_awar * add_callback(const RootCallback &cb)
GB_ERROR GB_delete(GBDATA *&source)
GBDATA * EXP_next_experiment(GBDATA *gb_experiment)
GBDATA * EXP_find_experiment(GBDATA *gb_species, const char *name)
const char * read_char_pntr() const
GB_ERROR GB_export_error(const char *error)
const char * do_mark_nt_pos_fig
GB_ERROR GB_await_error()
static AW_root * SINGLETON
GBDATA * GB_create_container(GBDATA *father, const char *key)
WindowCallback makeHelpCallback(const char *helpfile)
static struct MutableItemSelector EXP_item_selector
static void experiment_delete_cb(AW_window *aww, GBDATA *gb_main)
GBDATA * get_gbmain() const
static GBDATA * first_experiment_in_range(GBDATA *gb_experiment_data, QUERY_RANGE range)
void create_menu(const char *name, const char *mnemonic, AW_active mask=AWM_ALL)
const char * qbox_pos_fig
void init_info_window(AW_root *aw_root, AW_window_simple_menu *aws, const ItemSelector &itemType, int detach_id)
GBDATA * GEN_next_marked_organism(GBDATA *gb_organism)
ItemSelector & EXP_get_selector()
static void error(const char *msg)
GBDATA * GB_get_root(GBDATA *gbd)
#define AWAR_EXPERIMENT_NAME
static void add_selected_experiment_changed_cb(AW_root *aw_root, const RootCallback &cb)
static InfoWindowRegistry infowin
static QUERY::DbQuery * GLOBAL_experiment_query
static GBDATA * next_experiment_in_range(GBDATA *gb_prev, QUERY_RANGE range)
static void reactivate(AW_window *aww)
#define AWAR_SPECIES_NAME
const char * count_pos_fig
void attach_selected_item() const
static GB_ERROR experiment_rename_handler(const char *dest, GBDATA *gb_main)
static DbScanner * create(GBDATA *gb_main, const char *scanner_id, AW_window *aws, const char *box_pos_fig, const char *edit_pos_fig, const char *edit_enable_pos_fig, DB_SCANNERMODE scannermode, const char *mark_pos_fig, ItemSelector &selector)
char * read_string() const
static void EXP_select_experiment(GBDATA *, AW_root *aw_root, const char *item_name)
static void experiment_create_cb(AW_window *aww, GBDATA *gb_main)
AW_awar * awar(const char *awar)
static GB_ERROR experiment_create_handler(const char *dest, GBDATA *gb_main)
static GB_ERROR experiment_copy_handler(const char *dest, GBDATA *gb_main)
AW_window * create_fields_reorder_window(AW_root *root, BoundItemSel *bound_selector)
void search_duplicated_field_content(AW_window *dummy, DbQuery *query, bool tokenize)
static GBDATA * EXP_get_current_experiment(GBDATA *gb_main, AW_root *aw_root)
void exp_restore_old_species_marks(GBDATA *gb_main)
bool aw_ask_sure(const char *unique_id, const char *msg)
static void EXP_create_field_items(AW_window *aws, GBDATA *gb_main)
GB_ERROR GB_export_errorf(const char *templat,...)
static GBDATA * EXP_find_experiment_by_id(GBDATA *gb_main, const char *id)
GBDATA * EXP_find_or_create_experiment_rel_exp_data(GBDATA *gb_experiment_data, const char *name)
popup_info_window_cb popup_info_window
void EXP_popup_experiment_window(AW_root *aw_root, GBDATA *gb_main)
GB_ERROR close(GB_ERROR error)
GBDATA * GB_next_marked(GBDATA *gbd, const char *keystring)
static char * EXP_get_experiment_id(GBDATA *, GBDATA *gb_experiment)
GB_ERROR GBT_write_string(GBDATA *gb_container, const char *fieldpath, const char *content)
AW_window * create_field_create_window(AW_root *root, BoundItemSel *bound_selector)
const char * do_mark_pos_fig
const char * do_unmark_nt_pos_fig
static GBDATA * EXP_get_first_experiment_data(GBDATA *gb_main, AW_root *aw_root, QUERY_RANGE range)
GBDATA * GBT_first_species(GBDATA *gb_main)
AW_window * create_field_delete_window(AW_root *root, BoundItemSel *bound_selector)
const char * query_pos_fig
#define CHANGE_KEY_PATH_EXPERIMENTS
void aw_message(const char *msg)
const char * do_query_pos_fig
void add_detach_area(detached_uppopper popup_detached_cb) const
GBDATA * GBT_next_species(GBDATA *gb_species)
GBDATA * EXP_get_experiment_data(GBDATA *gb_species)
GBDATA * GBT_find_species(GBDATA *gb_main, const char *name)
GBDATA * EXP_find_experiment_rel_exp_data(GBDATA *gb_experiment_data, const char *name)
GB_ERROR write_string(const char *aw_string)
#define GB_USERFLAG_QUERY
static void experiment_rename_cb(AW_window *aww, GBDATA *gb_main)
const char * local_id(const char *id) const
char * GBT_store_marked_species(GBDATA *gb_main, bool unmark_all)
GBDATA * GB_first_marked(GBDATA *gbd, const char *keystring)
GB_transaction ta(gb_var)
void callback(const WindowCallback &cb)
GBDATA * GEN_first_marked_organism(GBDATA *gb_main)
GBDATA * GB_search(GBDATA *gbd, const char *fieldpath, GB_TYPES create)
GB_CSTR GBT_get_name_or_description(GBDATA *gb_item)
const char * do_set_pos_fig
GBDATA * GEN_first_marked_pseudo_species(GBDATA *gb_main)
void experiment_field_selection_list_update_cb(AW_window *, GBDATA *gb_main)
GB_ERROR GEN_mark_organism_or_corresponding_organism(GBDATA *gb_species, int *)
const MutableBoundItemSel BoundItemSel
void experiment_field_selection_list_unhide_all_cb(AW_window *, GBDATA *gb_main)
const InfoWindow & registerInfoWindow(AW_window *aww, DbScanner *scanner, int detach_id)
const char * do_delete_pos_fig
const char * do_unmark_pos_fig
char * GBS_global_string_copy(const char *templat,...)
const char * do_refresh_pos_fig
static const char * localize_scanner_id(const char *scanner_id, int detach_id)
void create_button(const char *macro_name, AW_label label, const char *mnemonic=NULp, const char *color=NULp)
void AWT_activate_prompt(const char *title, const char *prompt, const char *defaultResult, const char *button, const ResultHandler &handle_result, const char *helpfile, const char *srt)