[Bio] / Sprout / SHSubSearch.pm Repository:
ViewVC logotype

Diff of /Sprout/SHSubSearch.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2, Sat Nov 18 00:52:59 2006 UTC revision 1.7, Mon Nov 5 21:31:01 2007 UTC
# Line 4  Line 4 
4    
5      use strict;      use strict;
6      use Tracer;      use Tracer;
     use SearchHelper;  
7      use CGI;      use CGI;
8      use HTML;      use HTML;
9      use Sprout;      use Sprout;
10      use FeatureData;      use RHFeatures;
11      use FeatureQuery;      use base 'SearchHelper';
   
     our @ISA = qw(SearchHelper);  
12    
13  =head1 Subsystem Feature Search Helper  =head1 Subsystem Feature Search Helper
14    
# Line 62  Line 59 
59                                                  selected => $cgi->param("specification"));                                                  selected => $cgi->param("specification"));
60      # We'll accumulate the form table in here.      # We'll accumulate the form table in here.
61      my @rows = ();      my @rows = ();
62      # Start with a keyword search box.      # Start with the subsystem tree.
     my $expressionString = $cgi->param('keywords') || "";  
     push @rows, $cgi->Tr($cgi->th("Search Words"),  
                          $cgi->td({ colspan => 2 },  
                                   $cgi->textfield(-name => 'keywords',  
                                                   -value => $expressionString,  
                                                   -size => 60)));  
     # Add the subsystem tree.  
63      push @rows, $cgi->Tr($cgi->th({ colspan => 3, align => "center" }, "Subsystem Tree")),      push @rows, $cgi->Tr($cgi->th({ colspan => 3, align => "center" }, "Subsystem Tree")),
64                  $cgi->Tr($cgi->td({ colspan => 3 }, $treeField));                  $cgi->Tr($cgi->td({ colspan => 3 }, $treeField));
65        # Put in the keyword search box.
66        my $expressionString = $cgi->param('keywords') || "";
67        push @rows, RHFeatures::WordSearchRow($self);
68      # Add the special options.      # Add the special options.
69      push @rows, FeatureQuery::SpecialOptions($self);      push @rows, RHFeatures::FeatureFilterFormRows($self, 'options');
70      # Finish it off with the submit row.      # Finish it off with the submit row.
71      push @rows, $self->SubmitRow();      push @rows, $self->SubmitRow();
72      # Convert the form rows into a table.      # Convert the form rows into a table.
# Line 108  Line 101 
101      if (! $spec) {      if (! $spec) {
102          $self->SetMessage("No subsystem or class selected.");          $self->SetMessage("No subsystem or class selected.");
103      } else {      } else {
104          # Create a feature data object to store our results.          # We need to build a query to get our features. This involves building
105          my $fd = FeatureData->new($self);          # a filter clause and a parameter list.
         # We need to build a query to get our features. We need to remember  
         # the filter clause format and the parameter.  
106          my ($filterClause, $parameter);          my ($filterClause, $parameter);
107          if ($spec =~ /^id=(.+)$/) {          if ($spec =~ /^id=(.+)$/) {
108              # Here we're filtering for a single subsystem.              # Here we're filtering for a single subsystem.
# Line 134  Line 125 
125              # any keywords were specified.              # any keywords were specified.
126              my $query;              my $query;
127              if ($keywords) {              if ($keywords) {
128                    $self->PrintLine("Word search query submitted.<br />");
129                  $query = $sprout->Search($keywords, 2, @majorParms);                  $query = $sprout->Search($keywords, 2, @majorParms);
130              } else {              } else {
131                    $self->PrintLine("Standard search query submitted.<br />");
132                  $query = $sprout->Get(@majorParms);                  $query = $sprout->Get(@majorParms);
133              }              }
134                # Get the result helper for a feature search.
135                my $rhelp = RHFeatures->new($self);
136                # Compute the default columns. This is a very simple search which
137                # has no extra columns.
138                $self->DefaultColumns($rhelp);
139              # Initialize the session file.              # Initialize the session file.
140              $self->OpenSession();              $self->OpenSession($rhelp);
141              # Initialize the result counter.              # Clear the result counter.
142              $retVal = 0;              $retVal = 0;
143              # Loop through the selected features.              # Process the query results.
144              while (my $record = $query->Fetch()) {              while (my $record = $query->Fetch()) {
145                  $fd->Store($record);                  # Compute the sort key.
146                  $self->PutFeature($fd);                  my $sort = $rhelp->SortKey($record);
147                    # Store this feature.
148                    $rhelp->PutData($sort, $record->PrimaryValue('Feature(id)'), $record);
149                    # Increment the result counter.
150                  $retVal++;                  $retVal++;
151              }              }
152              # Close the session file.              # Close the session file.

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3