コード例 #1
0
ファイル: enkf_tui_ranking.c プロジェクト: akva2/ResInsight
void enkf_tui_ranking_menu(void * arg) {
    
  enkf_main_type  * enkf_main  = enkf_main_safe_cast( arg );  
  {
    menu_type * menu = menu_alloc("Ranking of results" , "Back" , "bB");
    menu_item_type * obs_item;
    {
      arg_pack_type * arg_pack = arg_pack_alloc();
      arg_pack_append_ptr( arg_pack , enkf_main );
      menu_add_item(menu , "Create/update misfit table" , "cC"  , enkf_tui_ranking_make_misfit_ensemble   , arg_pack , arg_pack_free__);
      menu_add_separator( menu );
      obs_item = menu_add_item(menu , "New observation based ranking" , "nN" , enkf_tui_ranking_create_obs  , enkf_main , NULL);
      arg_pack_append_ptr( arg_pack , obs_item );
    }
    menu_add_item(menu , "New data based ranking (Sort: increasing)" , "iI" , enkf_tui_ranking_create_data_increasing , enkf_main , NULL);
    menu_add_item(menu , "New data based ranking (Sort: decreasing)" , "dD" , enkf_tui_ranking_create_data_decreasing , enkf_main , NULL);
    menu_add_item(menu , "Show ranking" , "sS" , enkf_tui_ranking_display , enkf_main , NULL);
    {
      enkf_fs_type * fs = enkf_main_get_fs( enkf_main );
      misfit_ensemble_type * misfit_ensemble = enkf_fs_get_misfit_ensemble( fs );
      if (!misfit_ensemble_initialized( misfit_ensemble ))
        menu_item_disable( obs_item );
    }
    menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_rank , enkf_main , NULL);
    menu_run(menu);
    menu_free(menu);
  }
  
}
コード例 #2
0
ファイル: enkf_tui_simple.c プロジェクト: akva2/ert
void enkf_tui_simple_menu(void * arg) {
  enkf_main_type * enkf_main = enkf_main_safe_cast(arg);
  menu_type * menu = menu_alloc("Simple menu" , "Quit" , "qQ");
  menu_add_item(menu , "Sensitivity run: No data conditioning"                , "sS" , enkf_tui_run_exp         , enkf_main , NULL);
  const model_config_type * model_config = enkf_main_get_model_config( enkf_main );
  menu_item_type * ES_item           = menu_add_item(menu , "Assimilation run: Smoother update"               , "aA" , enkf_tui_run_smoother      , enkf_main , NULL);
  menu_item_type * it_ES_item        = menu_add_item(menu , "Assimilation run: Iterated smoother [RML-EnKF]"  , "iI" , enkf_tui_run_iterated_ES   , enkf_main , NULL);

  if (!model_config_has_history( model_config )) {
    menu_item_disable( it_ES_item );
    menu_item_disable( ES_item );
  }
  menu_add_separator( menu );
  menu_add_item(menu , "Help"                                  , "hH" , enkf_tui_help_menu_simple   , enkf_main , NULL);
  menu_add_item(menu , "Advanced menu"                         , "dD" , enkf_tui_main_menu        , enkf_main , NULL);
  menu_run(menu);
  menu_free(menu);

}
コード例 #3
0
ファイル: watchlist.c プロジェクト: glankk/gz
static void anchor_member(struct member_data *member_data)
{
  if (member_data->anchored)
    return;
  member_data->anchored = 1;
  menu_item_disable(member_data->positioning);
  struct menu_item *watch = menu_userwatch_watch(member_data->userwatch);
  watch->x = 13;
  watch->y = 0;
  watch->pxoffset = 0;
  watch->pyoffset = 0;
  menu_item_transfer(watch, member_data->userwatch->imenu);
}
コード例 #4
0
ファイル: watchlist.c プロジェクト: glankk/gz
static void watchfile_view(struct menu *menu)
{
  /* initialize menus */
  watchfile_menu_init();
  watchfile_scroll = 0;
  /* configure menus */
  for (int i = 0; i < WATCHFILE_VIEW_ROWS; ++i) {
    if (i < watchfile_entries.size)
      menu_item_enable(watchfile_items[i]);
    else
      menu_item_disable(watchfile_items[i]);
  }
  if (watchfile_entries.size > 0)
    menu_select(&watchfile_menu, watchfile_items[0]);
  else
    menu_select(&watchfile_menu, watchfile_return);
  menu_enter(menu, &watchfile_menu);
}
コード例 #5
0
ファイル: watchlist.c プロジェクト: glankk/gz
static int add_member(struct item_data *data,
                      uint32_t address, enum watch_type type, int position,
                      _Bool anchored, int x, int y, _Bool position_set)
{
  if (data->members.size >= SETTINGS_WATCHES_MAX ||
      position < 0 || position > data->members.size)
    return 0;
  ++data->add_button->y;
#ifndef WIIVC
  ++data->import_button->y;
#endif
  for (int i = position; i < data->members.size; ++i) {
    struct member_data *member_data = get_member(data, i);
    ++member_data->index;
    ++member_data->member->y;
  }
  struct menu *imenu;
  struct member_data *member_data = malloc(sizeof(*member_data));
  member_data->data = data;
  member_data->index = position;
  member_data->member = menu_add_imenu(data->imenu, 0, position, &imenu);
  member_data->anchor_button = menu_item_add(imenu, 2, 0, NULL, 0xFFFFFF);
  member_data->anchor_button->enter_proc = anchor_button_enter_proc;
  member_data->anchor_button->draw_proc = anchor_button_draw_proc;
  member_data->anchor_button->activate_proc = anchor_button_activate_proc;
  member_data->anchor_button->data = member_data;
  member_data->positioning = menu_add_positioning(imenu, 4, 0,
                                                  position_proc, member_data);
  member_data->userwatch = menu_add_userwatch(imenu, 6, 0, address, type);
  member_data->anchored = 1;
  member_data->anchor_anim_state = 0;
  member_data->x = x;
  member_data->y = y;
  member_data->position_set = 1;
  menu_add_button_icon(imenu, 0, 0, list_icons, 1, 0xFF0000,
                       remove_button_proc, member_data);
  if (anchored)
    menu_item_disable(member_data->positioning);
  else
    release_member(member_data);
  member_data->position_set = position_set;
  vector_insert(&data->members, position, 1, &member_data);
  return 1;
}
コード例 #6
0
ファイル: enkf_tui_run.c プロジェクト: PETECLAM/ResInsight
void enkf_tui_run_menu(void * arg) {
  enkf_main_type  * enkf_main  = enkf_main_safe_cast( arg );
  model_config_type * model_config = enkf_main_get_model_config( enkf_main );
  path_fmt_type     * runpath_fmt  = model_config_get_runpath_fmt( model_config );
  menu_type       * menu;

  {
    char   * title = util_alloc_sprintf("Run menu [case:%s  Runpath:%s]" , enkf_main_get_current_fs( enkf_main ) , path_fmt_get_fmt ( runpath_fmt ));
    menu = menu_alloc(title , "Back" , "bB");
    free(title);
  }
  menu_add_item(menu , "Ensemble run: history"                , "xX" , enkf_tui_run_exp         , enkf_main , NULL);
  menu_add_separator( menu );
  {
    const ecl_config_type * ecl_config = enkf_main_get_ecl_config( enkf_main );
    const model_config_type * model_config = enkf_main_get_model_config( enkf_main );
    const analysis_config_type * analysis_config = enkf_main_get_analysis_config(enkf_main);
    
    menu_item_type * enkf_item         = menu_add_item(menu , "Start EnKF run from beginning"          , "sS" , enkf_tui_run_start         , enkf_main , NULL);
    menu_item_type * restart_enkf_item = menu_add_item(menu , "Restart EnKF run from arbitrary state"  , "rR" , enkf_tui_run_restart__       , enkf_main , NULL);
    menu_item_type * ES_item           = menu_add_item(menu , "Integrated smoother update"             , "iI" , enkf_tui_run_smoother      , enkf_main , NULL);
    menu_item_type * it_ES_item        = menu_add_item(menu , "Iterated smoother [RML-EnKF]"           , "tT" , enkf_tui_run_iterated_ES   , enkf_main , NULL);
    menu_item_type * one_more_item     = menu_add_item(menu , "One more iteration (disabled)"          , "mM" , enkf_tui_run_one_more_iteration , enkf_main , NULL);
              
    if (!ecl_config_has_schedule( ecl_config )) {
      menu_item_disable( enkf_item );
      menu_item_disable( restart_enkf_item );
    }
    
    if (!ecl_config_has_init_section( ecl_config )) 
      menu_item_disable( enkf_item );

    menu_item_disable( one_more_item );
    if (!analysis_config_get_module_option(analysis_config , ANALYSIS_ITERABLE)) {
      menu_item_disable( it_ES_item );
      menu_item_disable( one_more_item );
    } else {
      menu_item_disable( enkf_item );
      menu_item_disable( restart_enkf_item );
      menu_item_disable( ES_item );
    }
      
    if (!model_config_has_history( model_config )) {
      menu_item_disable( it_ES_item );
      menu_item_disable( ES_item );
      menu_item_disable( one_more_item );
    }
  }
  menu_add_separator(menu);
  menu_add_item(menu , "Create runpath directories - NO simulation" , "cC" , enkf_tui_run_create_runpath__ , enkf_main , NULL );
  menu_add_item(menu , "Load results manually"                               , "lL"  , enkf_tui_run_manual_load__ , enkf_main , NULL);
  menu_add_separator(menu);
  {
    menu_item_type * analysis_item = menu_add_item(menu , "Analysis menu"             , "aA" , enkf_tui_analysis_menu , enkf_main , NULL);
    
    if (!enkf_main_have_obs( enkf_main )) 
      menu_item_disable( analysis_item );
  }
  /*
    Option to set runpath runtime - currently dismantled.
    
    menu_add_separator(menu);
    {
    model_config_type * model_config = enkf_main_get_model_config( enkf_main );
    path_fmt_type     * runpath_fmt  = model_config_get_runpath_fmt( model_config );
    arg_pack_type * arg_pack = arg_pack_alloc();  
    char * runpath_label = util_alloc_sprintf("Set new value for RUNPATH:%s" , path_fmt_get_fmt ( runpath_fmt ));
    
    arg_pack_append_ptr(arg_pack , model_config);
    arg_pack_append_ptr(arg_pack , menu_add_item(menu , runpath_label , "dD" , enkf_tui_run_set_runpath , arg_pack , arg_pack_free__));
    
    free(runpath_label);
    }
  */
  menu_add_item(menu , "Help"                                  , "hH" , enkf_tui_help_menu_run   , enkf_main , NULL); 
  menu_run(menu);
  menu_free(menu);
}