App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/misc/L_SU.pm view on Meta::CPAN
# opens file and populates GUI
$L_SU_href->{_flow_color} = $neutral_flow->get_flow_color();
$neutral_flow->set_hash_ref($L_SU_href);
$neutral_flow->FileDialog_button($dialog_type_sref);
# $L_SU_href->{_flow_color} = $grey_flow->get_flow_color();
return ();
}
=head2 sub _FileDialog_button_Open
=cut
sub _FileDialog_button_Open {
my ($dialog_type_sref) = @_;
my $color;
# print("L_SU,FileDialog_button, CASE 1 print gui_history.txt\n");
# $gui_history->view();
# print("CASE 1 in prep for CASE 4; dialog_type=$$dialog_type_sref\n");
# after just working with a pre-built superflow
# but before opening a user-built flow
if ( $$dialog_type_sref eq 'Open'
&& $L_SU_href->{_flow_type} eq 'pre_built_superflow'
&& !( $L_SU_href->{_is_flow_listbox_grey_w} )
&& !( $L_SU_href->{_is_flow_listbox_pink_w} )
&& !( $L_SU_href->{_is_flow_listbox_green_w} )
&& !( $L_SU_href->{_is_flow_listbox_blue_w} ) )
{
## print("CASE 1 L_SU,FileDialog_button, _flow_type: $L_SU_href->{_flow_type}\n");
# print("CASE 1 L_SU, FileDialog_button, color is $color\n");
# Default selected flow box color is 'grey'for now,
# but the default can be changed in L_SU_global_constants
my $which_color = $var->{_color_default};
_set_flow_color($which_color);
_set_flow_listbox_color_w($which_color);
_unset_pre_built_superflow_type();
_set_user_built_flow_type();
$color = $which_color;
}
elsif ( $$dialog_type_sref eq 'Open' ) {
# print("CASE 2 in prep for CASE 4\n");
# After selecting a sunix program and before
# flow selection:
# select the color of the flow to fill automatically
# either picked by user immediately before or, if not,
# pick grey as the default.
# But, if grey is occupied, send a warning message to the user
# to say that the current grey will be overwritten
# and that the prior flow will not be saved automatically
# Color was either
# (1) selected prevsiously, or is
# (2) not yet occupied
## my $next_available_color = $color_listbox->get_next_available_flow_listbox_color();
## $color_listbox->set_next_available_flow_listbox_color($next_available_color);
$color_listbox->set_flow_listbox_next_available_occupancyNvacancy_aref(
$L_SU_gui->{_occupied_listbox_aref} );
my $next_available_color =
$color_listbox->get_flow_listbox_vacancy_color();
my $vacancy = $color_listbox->is_vacant_listbox($next_available_color);
if ( $vacancy eq $true ) {
_set_flow_color($next_available_color);
_set_flow_listbox_color_w($next_available_color);
_unset_pre_built_superflow_type();
_set_user_built_flow_type();
$color = $next_available_color;
# print(
#"CASE 2 I.L_SU,FileDialog_button, $next_available_color will be occupied\n"
# );
}
elsif ( $vacancy eq $false ) {
$color_listbox
->set_flow_listbox_next_available_occupancyNvacancy_aref(
$L_SU_gui->{_occupied_listbox_aref} );
my $which_color = $color_listbox->get_flow_listbox_vacancy_color();
# print(
# "CASE 2 II.L_SU,FileDialog_button, $which_color is available\n"
# );
$color_listbox->set_flow_listbox_color2check($next_available_color);
my $ans = $color_listbox->is_flow_listbox_color_available();
# print("CASE 2 III.L_SU,FileDialog_button, ans=$ans\n");
if ( $ans == $true ) {
# CASE of an unoccupied color listbox
# print("CASE 2A L_SU,FileDialog_button, ans=$ans\n");
_set_flow_color($which_color);
_set_flow_listbox_color_w($which_color);
_unset_pre_built_superflow_type();
_set_user_built_flow_type();
$color = $which_color;
}
elsif ( $ans == $false ) {
# CASE 2B of a selected colored box that is ALREADY occupied
$color_listbox->my_dialogs( 'color_listbox', 0 );
$L_SU_gui->{_my_dialogs_ans4cancel} =
$color_listbox->get_my_dialog_cancel_click();
$L_SU_gui->{_my_dialogs_ans4ok} =
$color_listbox->get_my_dialog_ok_click();
( run in 0.994 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )