ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/ActiveDoc/UserQuery.pm
Revision: 1.1
Committed: Wed Sep 1 14:52:39 1999 UTC (25 years, 8 months ago) by williamc
Content type: text/plain
Branch: MAIN
Log Message:
Basic Testing OK

File Contents

# Content
1 #
2 # UserQuery
3 #
4 # Set up and record Queries requested fromthe user
5 #
6 # Interface
7 # ---------
8 # new(UserInterface) : A new query object with a specific interface
9 # setparam(name,value) : set a parameter
10 # getparam(name) : return value of named parameter
11 # clearquery() : remove all queries to be asked
12 # setquery($type,$parameter,@args) : register a query of type for $parameter
13 # askuser() : Ask user registered queries
14 # formatquery(args) : apply formatting information for display
15 # of the query . args dependent on implemtation
16 # query type etc.
17 # interface() : Return the interface object for the query
18
19 package ActiveDoc::UserQuery;
20 require 5.001;
21
22 sub new {
23 my $class=shift;
24 my $interface=shift;
25 $self={};
26 bless $self, $class;
27 $self->{params}={};
28 $self->{UserInterface}=$interface;
29 return $self;
30 }
31
32 sub setparam {
33 my $self=shift;
34 my $name=shift;
35 my $value=shift;
36
37 $self->{params}{$name}=$value;
38 }
39
40 sub getparam {
41 my $self=shift;
42 my $name=shift;
43 return $self->{params}{$name};
44 }
45
46 sub clearquery {
47 my $self=shift;
48 undef %self->{querytype};
49 undef %self->{queryvars};
50 undef @{$self->{queries}};
51 undef %{$self->{queryformat}};
52 }
53
54 sub setquery {
55 my $self=shift;
56 my $type=shift;
57 my $name=shift;
58 my $string=shift;
59 my @vars=@_;
60
61 push @{$self->{queries}},$name;
62 $self->{querytype}{$name}=$type;
63 $self->{querystring}{$name}=$string;
64 for ( $i=0; $i<=$#vars; $i++ ) {
65 $self->{queryvars}{$name}[$i]=$vars[$i];
66 }
67 }
68
69 sub formatquery {
70 my $self=shift;
71
72 my $name=$self->{queries}[$#$self->{queries}];
73 $self->{queryformat}{$name}= @_;
74 }
75
76 sub askuser {
77 my $self=shift;
78 my $string=shift;
79
80 $self->{UserInterface}->startform();
81 foreach $query ( @{$self->{queries}} ) {
82 $self->{UserInterface}->runquery($self->{querytype}{$query},
83 $query, $self->{querystring}{$query},
84 $self->{queryvars}{$query}, $self->{queryformat}{$name});
85 }
86 $self->{UserInterface}->endform($self);
87 }
88
89 sub interface {
90 my $self=shift;
91 return $self->{UserInterface};
92 }