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

# User Rev Content
1 williamc 1.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     }