App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/big_streams/pre_built_big_stream.pm view on Meta::CPAN
my $message = $msg_director->null_button(0);
$message_w->delete( "1.0", 'end' );
$message_w->insert( 'end', $message );
# Prepare GUI history
gui_history->set_hash_ref($pre_built_big_stream_href);
gui_history->set4start_of_superflow_select();
$pre_built_big_stream_href = gui_history->get_hash_ref();
# Update GUI position and configuration
$whereami->set4superflow_select_button();
$config_superflows->set_program_name($prog_name_sref);
$config_superflows->set_prog_name_config($prog_name_sref);
my $prog_name_config = $config_superflows->get_prog_name_config();
# Handle Project.config or other streams
if ( $prog_name_config eq $Project . '.config' ) {
my $user_constants = L_SU_local_user_constants->new();
if ( $user_constants->user_configuration_Project_config_exists() ) {
# Valid configuration exists
}
elsif ( not $user_constants->user_configuration_Project_config_exists ) {
my $message = $msg_director->superflow(0);
$pre_built_big_stream_href->{_message_w}->delete( "1.0", 'end' );
$pre_built_big_stream_href->{_message_w}->insert( 'end', $message );
}
else {
print("pre_built_big_stream: invalid Project.config file name\n");
}
}
else {
$config_superflows->inbound();
$config_superflows->check2read();
}
# Get parameter data
$pre_built_big_stream_href->{_names_aref} = $config_superflows->get_names();
$pre_built_big_stream_href->{_values_aref} = $config_superflows->get_values();
$pre_built_big_stream_href->{_check_buttons_settings_aref} = $config_superflows->get_check_buttons_settings();
$pre_built_big_stream_href->{_superflow_first_idx} = $config_superflows->first_idx();
$pre_built_big_stream_href->{_superflow_length} = $config_superflows->length();
# GUI refresh
$param_widgets->gui_full_clear();
$param_widgets->range($pre_built_big_stream_href);
$param_widgets->set_labels( $pre_built_big_stream_href->{_names_aref} );
$param_widgets->set_values( $pre_built_big_stream_href->{_values_aref} );
$param_widgets->set_check_buttons( $pre_built_big_stream_href->{_check_buttons_settings_aref} );
$param_widgets->set_current_program($prog_name_sref);
$param_widgets->redisplay_labels();
$param_widgets->redisplay_values();
$param_widgets->redisplay_check_buttons();
# Focus on first entry field (no highlighting)
my @Entry_widget = @{ $param_widgets->get_values_w_aref() };
$Entry_widget[0]->focus;
# Bind callbacks and actions
my $run_name = $internal_name;
$binding->set_prog_name_sref( \$run_name );
$binding->set_values_w_aref( $param_widgets->get_values_w_aref );
$binding->setFileDialog_button_sub_ref($pre_built_big_stream_href_sub_ref);
$binding->set();
# Update reference data for export
$values_aref = $pre_built_big_stream_href->{_values_aref};
gui_history->set_hash_ref($pre_built_big_stream_href);
gui_history->set4end_of_superflow_select();
$pre_built_big_stream_href = gui_history->get_hash_ref();
$names_aref = $pre_built_big_stream_href->{_names_aref};
$values_aref = $pre_built_big_stream_href->{_values_aref};
$check_buttons_settings_aref = $pre_built_big_stream_href->{_check_buttons_settings_aref};
return ();
}
=head2 sub set_hash_ref
Imports an external hash reference into local scope and updates widget references.
=cut
sub set_hash_ref {
my ( $self, $hash_ref ) = @_;
$gui_history->set_defaults($hash_ref);
$pre_built_big_stream_href = $gui_history->get_defaults();
$param_widgets->set_hash_ref($pre_built_big_stream_href);
$message_w = $pre_built_big_stream_href->{_message_w};
return ();
}
=head2 sub set_name_sref
Optionally assigns a program name reference.
=cut
sub set_name_sref {
my ( $self, $prog_name_sref ) = @_;
if ($prog_name_sref) {
$pre_built_big_stream_href->{_prog_name_sref} = $prog_name_sref;
}
else {
print("pre_built_big_stream: missing program name\n");
}
return ();
}
=head2 sub set_sub_ref
( run in 0.311 second using v1.01-cache-2.11-cpan-302cb4679cc )