ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/ActiveDoc/UserQuery.pm
(Generate patch)

Comparing COMP/SCRAM/src/ActiveDoc/UserQuery.pm (file contents):
Revision 1.2 by williamc, Mon Sep 20 16:27:58 1999 UTC vs.
Revision 1.6 by williamc, Fri Dec 17 08:36:23 1999 UTC

# Line 1 | Line 1
1   #
2   #  UserQuery
3   #
4 < #  Set up and record Queries requested fromthe user
4 > #  Set up and record Queries requested from the user
5   #
6   # Interface
7   # ---------
8   # new(UserInterface)    : A new query object with a specific interface
9 + # dump(fh,expr)         : dump out parameters that match expr to filehandle
10 + # store(fh)             : dump every param to fh
11 + # restore(fh)           : restore from filehandle
12 + # params()              : return list of all params
13   # setparam(name,value)  : set a parameter
14   # setifundef(name,value) : only set param to value if undefined
15   # getparam(name)        : return value of named parameter
16 + # getexpandedparam(name) : return the value of the parameter with any
17 + #                          variables expanded in the context of the UserQuery
18 + #                          variables
19   # clearquery()          : remove all queries to be asked
20 < # setquery($type,$parameter,@args) : register a query of type for $parameter
20 > # setquery($type,$parameter,$string,@args) : register a query of type for
21 > #                                               $parameter
22 > # querycheck(name, checkobject) : Set a checksum to be made on each query
23 > # addquerymessage(name,string) : Add an extra message to the query for name
24   # askuser()             : Ask user registered queries
25   # formatquery(args)     : apply formatting information for display
26   #                                 of the query . args dependent on implemtation
# Line 30 | Line 40 | sub new {
40          return $self;
41   }
42  
43 + sub dump {
44 +        my $self=shift;
45 +        my $fh=shift;
46 +        my $string=shift;
47 +
48 +        foreach $key ( keys %{$self->{params}} ) {
49 +          if ( $key=~/$string/ ) {
50 +                print $fh "k:".$key."\n";
51 +                print $fh "v:".$self->{params}{$key}."\n";
52 +          }
53 +        }
54 +        print $fh "#End\n";
55 + }
56 +
57 + sub store {
58 +        my $self=shift;
59 +        my $fh=shift;
60 +
61 +        my $key;
62 +        foreach $key ( keys %{$self->{params}} ) {
63 +          print $fh "k:".$key."\n";
64 +          print $fh "v:".$self->{params}{$key}."\n";
65 +        }
66 +        print $fh "#End\n";
67 + }
68 +
69 + sub restore {
70 +        my $self=shift;
71 +        my $fh=shift;
72 +
73 +        my $check="k:";
74 +        my $key="";
75 +        while ( $line=<$fh> ) {
76 +          chomp $line;
77 +          last if ( $line eq "\#End" );
78 +          if ( $line!~/^$check/ ) {
79 +                die "Data Corruption Error when restoring $self\n";
80 +          }
81 +          if ( $check eq "k:" ) {
82 +                $check="v:";
83 +                ($key=$line)=~s/k://;
84 +          }
85 +          else {
86 +                $check="k:";
87 +                ($value=$line)=~s/v://;
88 +                $self->setparam($key,$value);
89 +          }
90 +        } #end while
91 + }
92 +
93   sub setparam {
94          my $self=shift;
95          my $name=shift;
96          my $value=shift;
97  
98 +        print "Setting $name = $value\n";
99          $self->{params}{$name}=$value;
100   }
101  
102 + sub params {
103 +        my $self=shift;
104 +        return ( keys %{$self->{params}} );
105 + }
106 +
107   sub setifundef {
108          my $self=shift;
109          my $name=shift;
# Line 54 | Line 120 | sub getparam {
120          return $self->{params}{$name};
121   }      
122  
123 + sub getexpandedparam {
124 +        my $self=shift;
125 +        my $name=shift;
126 +        
127 +        my $string=$self->getparam($name);
128 +        $string=~s/\$\((.*?)\)/$self->{paramhash}{$1}/g;
129 +        $string=~s/\$(.*?)( |\/|\Z)/$self->{paramhash}{$1}$2/g;
130 +
131 +        return $string;
132 + }
133 +
134   sub clearquery {
135          my $self=shift;
136          undef %self->{querytype};
# Line 77 | Line 154 | sub setquery {
154          }
155   }
156  
157 + sub querycheck {
158 +        my $self=shift;
159 +        my $name=shift;
160 +        my $check=shift;
161 +
162 +        $self->{querycheck}{$name}=$check;
163 + }
164 +
165 + sub addquerymessage {
166 +        my $self=shift;
167 +        my $name=shift;
168 +        my $string=shift;
169 +        $self->{querystring}{$name}=$self->{querystring}{$name}.$string;        
170 + }
171 +
172   sub formatquery {
173          my $self=shift;
174  
# Line 88 | Line 180 | sub askuser {
180          my $self=shift;
181          my $string=shift;
182  
183 <        $self->{UserInterface}->startform();
183 >        $self->{UserInterface}->startform($string);
184          foreach $query ( @{$self->{queries}} ) {
185 <          $self->{UserInterface}->runquery($self->{querytype}{$query},
186 <                $query, $self->{querystring}{$query},
187 <                $self->{queryvars}{$query}, $self->{queryformat}{$name});
185 >          my @rqargs=($self->{querytype}{$query}, $query,
186 >                $self->{querystring}{$query},
187 >                $self->{queryvars}{$query}, $self->{queryformat}{$query});
188 >          if ( exists $self->{querycheck}{$query} ) {
189 >             $self->{UserInterface}->runcheckedquery(  
190 >                                $self->{querycheck}{$query}, @rqargs);
191 >          }
192 >          else {
193 >             $self->{UserInterface}->runquery(@rqargs);
194 >          }
195          }
196          $self->{UserInterface}->endform($self);
197   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines