Bundle-PBib

 view release on metacpan or  search on metacpan

lib/PBibTk/Main.pm  view on Meta::CPAN


use vars qw($rootWindow $filename);
#use vars qw($fileselect);
use vars qw($editNewRefsProcess);
our ($queryAuthorItem, @queryAuthorHistory);
our ($queryKeywordItem, @queryKeywordHistory);

# options for processing documents.
our $pbibDocToRtf = 1; # should a .doc file be converted to a .rtf file before processing?
our $pbibShowResult = 1; # should the processed document be opened in an editor?
our $pbibOptions = ''; # options to pass to pbib


#
#
#

sub new {
  my $class = shift;
  my ($litrefs) = @_;
  my $ui = {
    'litRefs' => $litrefs,
  };
  return bless $ui, $class;
}

sub main {
  my $self = shift;
  my $litrefs = $self->litRefs();

  $filename = $litrefs->filename();
  $filename = "" unless defined($filename);

  $self->window();
  $self->updateBiblioRefs();

  MainLoop;
}


sub DESTROY ($) {
  my $self = shift;
  $self->saveQueryHistory();
}

#
# access methods
#

sub window {
  my $self = shift;
  my $win = $self->{'window'};
  return $win if defined($win);

  if( defined($rootWindow) ) {
    # open second window
    $win = $rootWindow->Toplevel();
  } else {
    $win = $rootWindow = MainWindow->new();
#    $fileselect = $win->FileSelect(-directory => $ENV{'DISSDIR'});
    $win->fontCreate(qw/T_bold    -family times  -size 9  -weight bold/);
    $win->fontCreate(qw/H_bold    -family helvetica  -size 9  -weight bold/);
    $win->fontCreate(qw/H_big_bold    -family helvetica  -size 11  -weight bold/);
  }
  $win->configure(
	-title => "PBib",
	);
  $self->{'window'} = $win;
  $self->initWidgets($win);
  $self->initDropSite($win);
#myline zur beschleunigung wird der converter nur bei fensteraktualisierung erstellt
  $self->{'conv'} = $self->make_converter();
  return $win;
}

sub rootWindow {
  my $self = shift;
  my $win = $rootWindow;
  $win = $self->window unless defined($win);
  return $win;
}

sub biblio { my $self = shift; return $self->litRefs()->biblio(); }
sub refs { my $self = shift; return $self->biblio()->queryPapers(); }
#  sub refs { my $self = shift; return $self->litRefs()->refs(); }
sub conv { my $self = shift;
	my $conv = $self->{'conv'};
	if( @_ ) {
		$conv->setArgs(@_);
	}
	return $conv
}

sub make_converter {
	my $self = shift;
	my %args =@_;

	my $doc = new PBib::Document;
#	my $doc = new PBib::Document::PBib;
	my $conv = new PBib::ReferenceConverter(
		'inDoc' => $doc,
		'outDoc' => $doc,
		'refStyle'	=> new PBib::ReferenceStyle::BookmarkLink,
		'labelStyle'	=> new PBib::LabelStyle,
#		'labelStyle'	=> new PBib::LabelStyle::CiteKey,
		'bibStyle'	=> new PBib::BibliographyStyle,
		#  'itemStyle'	=> new PBib::BibItemStyle,
		'refs' => $self->refs(),
		'itemOptions' => {
			'include-label' => 0,
		},
		'itemStyle'	=> new PBib::BibItemStyle::IEEETR,
		%args
	);
	return $conv;
}



#
# widgets
#



( run in 1.190 second using v1.01-cache-2.11-cpan-39bf76dae61 )