DBR

 view release on metacpan or  search on metacpan

lib/DBR/Admin/Window/FieldList.pm  view on Meta::CPAN

	my $labels;
	my $values;


	foreach my $e (sort { $a->{name} cmp $b->{name} } @$data) {
	    next if $existing_enums{$e->{enum_id}};
	    push @{$values}, $e->{enum_id};
	    $labels->{$e->{enum_id}} = "$e->{name} (handle: $e->{handle}, id: $e->{enum_id}, override: $e->{override_id})";
	}
	my $label = $edit_window->add(
				      "enum_popup_label", 'Label',
				      -text => 'Add Enum: ',
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

	my $enum_popup = $edit_window->add(
					 "type_popup", 'Popupmenu',
					 -y => $y,
					 -x => ($x + 16) ,
					 -values => $values,
					 -labels => $labels,
					);
					 
	
	$enum_popup->focus();
	
	$y += 3;


	# submit - cancel
	my $submit_button = $edit_window->add(
					      'submit', 'Buttonbox',
					      -buttons   => [
							   { 
							    -label => '< Submit >',
							    -value => 1,
							    -shortcut => 1 ,
							    -onpress => sub {
								$self->submit_new_enum(original_args => $_args{original_args},
										       enum_id => $enum_popup->get(),
										       name => 'new_enum_window',
										       edit_window => $edit_window,
										       max_sortval => $max_sortval,
										      );
							    }
							   },
							   { 
							    -label => '< Cancel >',
							    -value => 2,
							    -shortcut => 2 ,

lib/DBR/Admin/Window/FieldList.pm  view on Meta::CPAN

	$label = $edit_window->add(
				      "trans_id_label", 'Label',
				      -text => "trans_id: ",
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

	
	my ($values, $labels, $selected) = _get_popup_menu_values(DBR::Config::Trans::list_translators(), $field_hash, 'trans_id');

	my $trans_id = $edit_window->add(
					 "trans_id_popup", 'Popupmenu',
					 -y => $y,
					 -x => ($x + 16) ,
					 -values => $values,
					 -labels => $labels,
					 -selected => $selected,
					);
					 
	
	$trans_id->draw();

lib/DBR/Admin/Window/FieldList.pm  view on Meta::CPAN

    sub close_edit_window {

	my ($self,  %_args) = @_;

	$_args{edit_window}->parent->delete($_args{name});
	$_args{edit_window}->parent->draw();
	$_args{edit_window}->parent->focus();
    }

     #############
      sub _get_popup_menu_values {
	  my ($value_ref, $lookup, $key) = @_;

	my %values;
	foreach my $t (@$value_ref) {
	    $values{$t->{id}} = $t->{name} || $t->{handle};
	}
	my @vals = keys %values;
	# find the index of the selected value in @vals
	my $index = 0;
	my $found = 0;

lib/DBR/Admin/Window/RelationshipList.pm  view on Meta::CPAN

	######
	$label = $edit_window->add(
				      "from_table_id_label", 'Label',
				      -text => "from_table: ",
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

 	my ($values, $labels, $selected) = _get_table_popup_menu_values($relationship_hash, $self->get_schema_id(), 'from_table_id', $self->get_win->root());
 	my $from_field_id_popup; # need to declare this now and use it later
 	my $from_field_popup_x = $x+16;
 	my $from_field_popup_y = $y+1;
 	my $from_table_id_popup = $edit_window->add(
 						    "from_table_id_popup", 'Popupmenu',
 						    -y => $y,
 						    -x => ($x + 16) ,
 						    -values => $values,
 						    -labels => $labels,
 						    -selected => $selected,
 						    -onchange => sub {$from_field_id_popup =  $self->reload_field_popup(popup => $from_field_id_popup, 
 														  relationship_hash => $relationship_hash, 
 														  key => 'from_field_id',
 														  table_popup => shift,
 														  y => $from_field_popup_y,
 														  x => $from_field_popup_x,
 														  name => 'from_field_id_popup',
 														  edit_window => $edit_window,
 														 );
 								  }
 						   );
					 
	
 	$from_table_id_popup->draw();

 	$y += 1;

 	######
 	$label = $edit_window->add(
 				      "from_field_label", 'Label',
 				      -text => "from_field: ",
 				      -x => $x,
 				      -y => $y
 				     );

 	$label->draw;

	
 	my ($values, $labels, $selected) = _get_field_popup_menu_values($relationship_hash, 
 									$from_table_id_popup->get(), 
 									'from_field_id', 
 									$self->get_win->root()
 								       );

 	$from_field_id_popup = $edit_window->add(
 						 "from_field_id_popup", 'Popupmenu',
 						 -y => $y,
 						 -x => ($x + 16) ,
 						 -values => $values,
 						 -labels => $labels,
 						 -selected => $selected,
 						);
					 
	
 	$from_field_id_popup->draw();


	$y += 1;


	#################
	# to
	my $label = $edit_window->add(
				      "to_name_label", 'Label',
				      -text => "to_name: ",

lib/DBR/Admin/Window/RelationshipList.pm  view on Meta::CPAN

	$label = $edit_window->add(
				      "to_table_id_label", 'Label',
				      -text => "to_table: ",
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

	
	my ($values, $labels, $selected) = _get_table_popup_menu_values($relationship_hash, $self->get_schema_id(), 'to_table_id', $self->get_win->root());
	my $to_field_id_popup; # need to declare this now and use it later
	my $to_field_popup_x = $x+16;
	my $to_field_popup_y = $y+1;
	my $to_table_id_popup = $edit_window->add(
					      "to_table_id_popup", 'Popupmenu',
					      -y => $y,
					      -x => ($x + 16) ,
					      -values => $values,
					      -labels => $labels,
					      -selected => $selected,
					      -onchange => sub { $to_field_id_popup = $self->reload_field_popup(popup => $to_field_id_popup, 
														relationship_hash => $relationship_hash, 
														key => 'to_field_id',
														table_popup => shift,
														y => $to_field_popup_y,
														x => $to_field_popup_x,
														name => 'to_field_id_popup',
														edit_window => $edit_window,
													       );
					      }
						   );
					 
	
	$to_table_id_popup->draw();

	$y += 1;

	######
	$label = $edit_window->add(
				      "to_field_label", 'Label',
				      -text => "to_field: ",
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

	
	my ($values, $labels, $selected) = _get_field_popup_menu_values($relationship_hash, $to_table_id_popup->get(), 'to_field_id', $self->get_win->root());

	$to_field_id_popup = $edit_window->add(
					 "to_field_id_popup", 'Popupmenu',
					 -y => $y,
					 -x => ($x + 16) ,
					 -values => $values,
					 -labels => $labels,
					 -selected => $selected,
					);
					 
	
	$to_field_id_popup->draw();

	$y += 1;

	#############
	# type
	$label = $edit_window->add(
				      "type_label", 'Label',
				      -text => "type: ",
				      -x => $x,
				      -y => $y
				     );

	$label->draw;

	
	my ($values, $labels, $selected) = _get_popup_menu_values(DBR::Config::Relation::list_types(), $relationship_hash, 'type');

	my $type_popup = $edit_window->add(
					 "type_popup", 'Popupmenu',
					 -y => $y,
					 -x => ($x + 16) ,
					 -values => $values,
					 -labels => $labels,
					 -selected => $selected,
					);
					 
	
	$to_field_id_popup->draw();
	
	$y += 1;

	#####
	# buttons
	my $submit_button = $edit_window->add(
					      'submit', 'Buttonbox',
					      -buttons   => [
							   { 
							    -label => '< Submit >',
							    -value => 1,
							    -shortcut => 1 ,
							    -onpress => sub {
								$self->submit_edit(
										   add => $_args{add},
										   relationship_id => $_args{listbox} ? $_args{listbox}->get() : undef,
										   edit_window => $edit_window,
										   from_name => $from_text_box->get(),
										   from_table_id => $from_table_id_popup->get(),
										   from_field_id => $from_field_id_popup->get(),
										   to_name => $to_text_box->get(),
										   to_table_id => $to_table_id_popup->get(),
										   to_field_id => $to_field_id_popup->get(),
										   type => $type_popup->get(),
										   
										  );
							    }
							   },
							   { 
							    -label => '< Cancel >',
							    -value => 2,
							    -shortcut => 2 ,
							    -onpress => sub {$self->close_edit_window(edit_window => $edit_window)}
							   }

lib/DBR/Admin/Window/RelationshipList.pm  view on Meta::CPAN


	my ($self,  %_args) = @_;

	$_args{edit_window}->parent->delete('relationshipeditwindow');
	$_args{edit_window}->parent->draw();
	$_args{edit_window}->parent->focus();
    }


    #########################
    sub reload_field_popup{
	my ($self,  %_args) = @_;

	my ($values, $labels, $selected) = _get_field_popup_menu_values($_args{relationship_hash}, $_args{table_popup}->get(), $_args{key}, $self->get_win->root());


	# have to do it this way beacause Curses::UI::Popupmenu doesn't have values, labels and selected
	# methods like listbox does.  :(

	$_args{edit_window}->delete($_args{name});

	$_args{popup} = $_args{edit_window}->add(
					 $_args{name}, 'Popupmenu',
					 -y => $_args{y},
					 -x => $_args{x} ,
					 -values => $values,
					 -labels => $labels,
					 -selected => $selected,
					);
					 
	$_args{popup}->draw();


	$_args{edit_window}->set_focusorder('from_name_text_box', 
					    'from_table_id_popup', 
					    'from_field_id_popup', 
					    'to_name_text_box', 
					    'to_table_id_popup', 
					    'to_field_id_popup',
					    'type_popup',
					    'submit');
	return $_args{popup};
    }



    #############
    sub _get_table_popup_menu_values {
	my ($relationship_hash, $schema_id, $key, $root) = @_;



	my $dbrh = DBR::Admin::Utility::get_dbrh();

	my $data = $dbrh->select(
				 -table => 'dbr_tables',
				 -fields => 'table_id  name display_name ',
				 -where => {schema_id => $schema_id},

lib/DBR/Admin/Window/RelationshipList.pm  view on Meta::CPAN

	    $index = undef;
	}
	  
	return (\@vals, \%values, $index);
    }




    #############
    sub _get_field_popup_menu_values {
	my ($relationship_hash, $table_id, $key, $root) = @_;



	my $dbrh = DBR::Admin::Utility::get_dbrh();

	my $data = $dbrh->select(
				 -table => 'dbr_fields',
				 -fields => 'field_id  name display_name ',
				 -where => {table_id => $table_id},

lib/DBR/Admin/Window/RelationshipList.pm  view on Meta::CPAN

	}

	if (!$found) {
	    $index = undef;
	}
	  
	return (\@vals, \%values, $index);
    }

     #############
      sub _get_popup_menu_values {
	  my ($value_ref, $lookup, $key) = @_;

	my %values;
	foreach my $t (@$value_ref) {
	    $values{$t->{type_id}} = $t->{name} || $t->{handle};
	}
	my @vals = keys %values;
	# find the index of the selected value in @vals
	my $index = 0;
	my $found = 0;



( run in 1.299 second using v1.01-cache-2.11-cpan-364913b4093 )