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 )